在sellatstop函数中有这么一个说明: If prices open below the StopPrice, the Position is closed at market open price. 可我写程的时候用的是一小时的外汇数,一般开盘价都是低于Stopprice的,它会自动平在开盘价平掉多头单,总是达不到目标价位。 不知道怎么解决? if pricehigh(bar)>=(DH+0.0025) then sellAtStop( Bar, DH+0.0025, #all, '' );
哦,再看了一下你的 if pricehigh(bar)>=(DH+0.0025) then sellAtStop( Bar, DH+0.0025, #all, '' ); 这个本身就是错误的。得到本bar的pricehigh后,就不可能对本bar做操作了,否则是用了未来数据。 把操作放在bar+1 就可以了 sellAtStop( Bar+1, DH+0.0025, #all, '' );
这样还是不行,我试过了~ 这样的话不管bar+1价格有达到PositionEntryPrice-0.005它都会执行一次SellAtstop。 我要的是,一天24根K线中只要有一根K线达到PositionEntryPrice-0.005这个价才执行SellAtstop。而这根K线是不可预知的,只有通过IF来判断出来~~!
这样还是不行,我试过了~ 这样的话不管bar+1价格有达到PositionEntryPrice-0.005它都会执行一次SellAtstop。 我要的是,一天24根K线中只要有一根K线达到PositionEntryPrice-0.005这个价才执行SellAtstop。而这根K线是不可预知的,只有通过IF来判断出来~~!
也没什么不方便说的,只是这样交流有点慢. 我晕了,试好久都不行麻烦帮我写这一句: "如果K线突向上突破一个价格A就买进,获利50点或亏损50点后出来;如果K线突向下突破一个价格B就空,获利50点或亏损50点后出来;"