-- 作者:渴望知识
-- 发布时间:2015/2/27 11:40:44
-- [求助]请教一下止盈止损
老师好
下面是我写的一个止盈止损策略:
input:tq(10,3,60,1); abb:=(time0-timetot0(dynainfo(207))<=tq) or not(islastbar);
KD:BUY(holding=0 and 做多条件 and abb and time<145500,1,limitr,c); //开多 KK:BUYSHORT(holding=0 and 做空条件 and abb and time<145500,1,limitr,c);//开空
//图表时使用的语句 kcwzl:=valuewhen(kd,low);//开多单时的最低价 kcwzh:=valuewhen(kk,high);//开空单时的最高价
//止损点差为最(高)低点的ZS个点,止赢点差为TP,追踪点差为DTP ZS:=3; TP:=3; DTP:=8; A:=mindiff;//取模组交易合约的最小变动价位
kdzs:=C<(kcwzl-zs);//多单止损条件 kkzs:=c>(kcwzh+zs);//空单止损条件
sell(kdzs,0,marketr); buyshort(holding=0 && kdzs,1,marketr); //多单止损后反手 sellshort(kkzs,0,marketr); buy(holding=0 && kkzs,1,marketr); //空单止损后反手
//多单止盈止损计算 HH:=HHV(H,enterbars+1); //买开仓位置到现在最高价 A1:=ENTERPRICE+TP*A; //止盈点差起始位置 A2:=A1+DTP*A; //追踪点差起始位置 A3:=A1-2*A; //最小止盈位置 A4:=HH-DTP*A; //以上为根据止赢点差计算多单追踪止赢位置 if ((HH>=A1 && HH<=A2 && C<=A3)||(HH>A2 && C<=A4)) && holding>0 then sell(1,0,marketr);//多单止盈和追踪止盈
但是我发现实际跑盘时,这个好像都不执行,我单独看了一下他们的线,都是一条直线,而不随着行情的变动而变动。
请问一下,我这个策略的写法有没有问题?里面的那个ETERBARS这个函数加1是否是对的。
另外,我是否需要来声明:HH,A1,A2,A3,A4他们为全局变量呢?
|