buycond:=count(平空开多条件,0);
这个啥意思?为了实现什么目的? 正是因为错误啊,没法实现策略。所以请求正确的写法。再发一遍吧,漏了。 variable:maxprofit=0,qc=0,win:=0,ht:=0; exittime:=time>=145000; ND:stkindi('','A',0,22,45); XD:stkindi('',''B,0,11,0); 平空开多条件:=ND>XD; 平多开空条件:=ND<XD; if holding=0 and 平空开多条件 then begin buy(1,1,MARKET); maxprofit:=0; end //限时清仓 if exittime then begin sell(1,0,MARKET); sellshort(1,0,MARKET); qc:=0; end //多仓止损 if holding>0 and low<enterprice-3 then sell(1,1,market); win:=0; ht:=0; if holding > 0 and enterbars > 0 then begin win:=(high-enterprice); //记录多仓浮动盈利 if win > maxprofit then maxprofit:=win; //最大获利 ht:=maxprofit-win; //最大盈利后的回调幅度 end if maxprofit<3 and holding>0 then 平多:SELL(平多开空条件,0,market);// 盈利小于3点,采用指标平仓。 if maxprofit>=3 and maxprofit<10 and holding>0 then 止赢1:SELL(ht<1+0.1*(maxprofit-2),0,market); // 3至10点盈利保护1点几利润盈平 if maxprofit>=10 and maxprofit<20 and holding>0 then 止赢2:SELL(ht<0.5*maxprofit,0,market); // 10至20点盈利保50%浮盈利润盈平 if maxprofit>=20 and maxprofit<40 and holding>0 then 止赢3:SELL(ht<maxprofit-10,0,market); // 20点至40点盈利,浮盈回撤10点盈平 if maxprofit>40 and holding>0 then 止赢4:SELL(ht<maxprofit-5 or 平多开空条件,0,market); // 大于40点盈利,浮盈回撤5点或指标平仓,哪个先达到执行哪个 关于SELL()里面的maxprofit,这里三种用法 {1+0.1*(maxprofit-2)} {0.5*maxprofit} {maxprofit-10} 是否正确?为什么要在前面加上“ht<”呢? 另外止盈止损后满足某条件之后重新恢复持仓策略怎么写? 例:即持多仓时,如果止盈(止损)后,趋势没有向空条件发展,在仍然保持多条件情况下,价格重新回调到大于止盈价(止损价)时,重新恢复持多仓。 不可行,即放弃。 请老师帮修改一个上述完整策略。 开平空仓盈损,是否是将上述策略中的low,high和开平空改一下即可?还有什么要改变的吗?
|