教学示例中HighestAfterEntry代码问题
我看帮助都关于HighestAfterEntry的计算代码如下:OnBar(ArrayRef<Integer> indexs){ //... If(BarsSinceEntry == 0) { HighestAfterEntry = Close; LowestAfterEntry = Close; If(MarketPosition <> 0) { HighestAfterEntry = Max(HighestAfterEntry,AvgEntryPrice); LowestAfterEntry = Min(LowestAfterEntry,AvgEntryPrice); } }Else { HighestAfterEntry = Max(HighestAfterEntry,High); LowestAfterEntry = Min(LowestAfterEntry,Low); }上面代码中为什么要加上 If(MarketPosition <> 0) ,在BarsSinceEntry == 0时,不就表示是当前开仓第一根吗?此时MarketPosition 就应该是不等于1的. 这里代码是不是不需要的,是不是可以改为下面这样? If(BarsSinceEntry == 0) { HighestAfterEntry = Max(Close,AvgEntryPrice); LowestAfterEntry = Min(Close,AvgEntryPrice); }Else { HighestAfterEntry = Max(HighestAfterEntry,High); LowestAfterEntry = Min(LowestAfterEntry,Low); }