代码求助,恒温器代码求助!急急急 [文华财经]
- 咨询内容:
代码
//策略:恒温器系统
//类型:中长期通道突破
//版本:1.0
//修订时间:2012.11.6
//Designed By Rogarz//中间变量
input:m(50,5,300,30),N(1.25,0.1,10,0.1),ss(1,1,100,1),k1(0.5,0.1,1,0.1),k2(0.75,0.1,1,0.1);
variable:A:=0;//0表示仓位是在趋势模式下下单 1表示在震荡模式下下单
MID : MA(CLOSE,M);//布林中轨
UPPER:MID + N*STD(CLOSE,M);//布林上轨
LOWER:MID - N*STD(CLOSE,M);//布林下轨
今开:=callstock(stklabel,vtopen,6,0);
CMI:=abs(close-ref(close,29))/(hhv(high,30)-LLV(L,30))*100;//0-100 取值越大,说明趋势越强,CMI<20震荡模式,反之为趋势
关键价:(high+low+close)/3;//关键价的计算,国外常称作中枢价格(pivot point)
ATR10:=ma(tr,10);
3日均低价:=ma(L,3);3日均高价:=ma(h,3);
手数:=ss;
//交易条件
if C<关键价 then begin
趋买市开多平空条件:=C>max(今开+k1*ATR10,3日均低价);
趋买市开空平多条件:=C<min(今开-k2*ATR10,3日均高价);
end
if c>关键价 then begin
趋卖市开多平空条件:=C>max(今开+k2*atr10,3日均低价);
趋卖市开空平多条件:=C<min(今开-k1*atr10,3日均高价);
end趋势开多条件:=c>upper;
趋势开空条件:=c<lower;
趋势平多条件:=c<mid;
趋势平空条件:=c>mid;震荡多单平仓条件:=c<=enterprice-3*atr10;
震荡空单平仓条件:=c>=enterprice+3*ATR10;
//交易系统
if cmi<20 then begin {震荡模式}
if C<关键价 then begin
趋买市平空:sellshort(趋买市开多平空条件 and holding<=0,手数,market);
趋买市平多:sell(趋买市开空平多条件 and holding>=0,手数,market);
趋买市开多:buy(趋买市开多平空条件 and holding<=0,手数,market);
趋买市开空:buyshort(趋买市开空平多条件 and holding>=0,手数,market);
A:=1;
end
if c>关键价 then begin
趋卖市平空:sellshort(趋卖市开多平空条件 and holding<=0,手数,market);
趋卖市平多:sell(趋卖市开空平多条件 and holding>=0,手数,market);
趋卖市开多:buy(趋卖市开多平空条件 and holding<=0,手数,market);
趋卖市开空:buyshort(趋卖市开空平多条件 and holding>=0,手数,market);
a:=1;
end
ENdif cmi>=20 then BEGIN {趋势模式}
if a=1 then begin //趋势模式下 原震荡模式下 仓位处理
震荡多单平仓:sell(震荡多单平仓条件 and holding>0,手数,market);
震荡空单平仓:sellshort(震荡空单平仓条件 and holding<0,手数,market);
a:=0;
end
if a=0 then begin
趋势平空:sellshort(趋势平空条件 and holding<0,手数,market);
趋势平多:sell(趋势平多条件 and holding>0,手数,market);
趋势开多:buy(趋势开多条件 and holding<=0,手数,market);
趋势开空:buyshort(趋势开空条件 and holding>=0,手数,market);
A:=0;
end
ENd
//注意先平后开原则
在论坛看见写的代码如下,可是不能识别代码啊,看看能否帮我改写一下,在wh6上使用谢谢!
//新建指标 JZT3ZD:=HHV(L,3);
3ZG:=LLV(H,3);
3JD:=MA(L,3);
3JG:=MA(H,3);GJJ:REF((HIGH+LOW+CLOSE)/3,1);
//
M:=50;
N:=1.25;
K1:=0.5;
K2:=0.75;
MID :MA(CLOSE,M);//布林中轨
TOP:MID + N*STD(CLOSE,M);//布林上轨
BOTTOM:MID - N*STD(CLOSE,M);//布林下轨
N1:=BARSLAST(DATE<>REF(DATE,1))+1;
KP:=REF(O,N1-1);
CMIA:=ABS(CLOSE-REF(CLOSE,29))/(HHV(HIGH,30)-LLV(L,30))*100;
CMI:=MA(CMIA,2);//TR:=MAX(MAX((HIGH-LOW),ABS(REF(CLOSE,1)-HIGH)),ABS(REF(CLOSE,1)-LOW));
ATR:=MA(TR,10);#IMPORT[DAY,1,JZT] AS VAR
3D:=VAR.3JD;
3G:=VAR.3JG;
ZG:=VAR.3ZG;
ZD:=VAR.3ZD;
PIVOT:VAR.GJJ;
QS:MAX(KP+0.5*ATR,3D);
QX:MIN(KP-0.5*ATR,3G);
//引用日周期均线
//震荡市1
CMI<=20&&C<PIVOT&&C>MAX(KP+0.5*ATR,3D)&&BKVOL=0,BPK('A');//
CMI<=20&&C<PIVOT&&C<MIN(KP-0.75*ATR,3G)&&SKVOL=0,SPK('A');
//震荡市2
CMI<=20&&C>PIVOT&&C>MAX(KP+0.75*ATR,ZD)&&BKVOL=0,BPK('A');
CMI<=20&&C>PIVOT&&C<MIN(KP-0.5*ATR,ZG)&&SKVOL=0,SPK('A');//
C<BKPRICE-3*ATR,SP('A');
C>SKPRICE+3*ATR,BP('A');//趋势
C>TOP&&BKVOL=0,BK('B');
C<BOTTOM&&SKVOL=0,SK('B');
C<MID,SP('B');
C>MID,BP('B');AUTOFILTER;
- 文华技术人员:
wh6不支持跨周期引用的,您需要加载在wh4或wh8.2实现
- 文华客服:
我在wh8 也用不上
- 网友回复:
//新建指标 JZT
3ZD:=HHV(L,3);
3ZG:=LLV(H,3);
3JD:=MA(L,3);
3JG:=MA(H,3);GJJ:REF((HIGH+LOW+CLOSE)/3,1);
//
这一段是需要新建一个名称为JZT的指标的。
下面的程序再加载在主图上。
我们这里是测试成功的。
有思路,想编写各种指标公式,程序化交易模型,选股公式,预警公式的朋友
可联系技术人员 QQ: 511411198 进行 有偿 编写!(不贵!点击查看价格!)
相关文章
-
没有相关内容