软件使用中遇到的问题,请老师帮忙看看
简单的突破策略,编写后在主连复权合约上测试发现有个百思不得其解的问题,两种编写方式差距巨大,具体代码如下:第一种,最高点>=指标线,发单用指标线作为信号价。代码如下: Bool HUpBand1=H>=UpperBand; Bool LDownBand1=L<=LowerBand; If(MarketPosition>0 && L<=AveMa && BarsSinceEntry>0) { Sell(0,Min(Open,AveMa)); } If(MarketPosition<0 && H>=AveMa && BarsSinceEntry>0) { BuyToCover(0,Max(Open,AveMa)); } //==============================================================//判断是否开仓 If(MarketPosition<1 && HUpBand1 ) { Buy(Lots,max(Open,UpperBand )); } If(MarketPosition>-1 && LDownBand1 ) { SellShort(Lots,min(Open,LowerBand)); } }第二种写法:最高点>指标线,越过才算信号,发单用信号价加减最小跳动,代码如下: Bool HUpBand=H>UpperBand; Bool LDownBand=L<LowerBand; //==============================================================//先进行平仓 If(MarketPosition>0 && L<AveMa && BarsSinceEntry>0) { Sell(0,Min(Open,AveMa-MinMove*pricescale*rollover)); } If(MarketPosition<0 && H>AveMa && BarsSinceEntry>0) { BuyToCover(0,Max(Open,AveMa+MinMove*pricescale*rollover)); } //==============================================================//判断是否开仓 If(MarketPosition<1 && HUpBand) { Buy(Lots,max(Open,UpperBand+MinMove*pricescale*rollover )); } If(MarketPosition>-1 && LDownBand ) { SellShort(Lots,min(Open,LowerBand-MinMove*pricescale*rollover)); }测试结果显示,第二种写法结果很差,由于是在主连复权上测试,刘风老师也在论坛上回复过这里的指标价需要乘以复权系数,所以逻辑上应该是没问题的。1、这两种写法哪种写法的发单逻辑是准确的?2、第一种写法好于第二种是否有偷价的嫌疑?