为什么我复制官方文档上的代码测试,它会在当前k线开仓立刻又平仓,看着代码逻辑上好像没什么问题?
http://www.tbquant.net/dist/index.html#/?navigate=tbl&cid=479&position=toc46
不是,我是说这里应该有个bug, 前面Series<Numeric> buylasthigh(0,2);定义了默认值为0的序列,然后
If(MarketPosition==1 and Low<=buylasthigh*(1-0.01*hcrate) and buylasthigh>EntryPrice*(1+0.01*6)) Sell(0,Min(Open,buylasthigh*(1-0.01*hcrate)));
这里直接用buylasthigh的默认值0去算,就造成了当前k线开仓之后立刻平仓的bug,这是官方文档的例子,我没有修改。
通过开仓之后就立刻赋值到buylasthigh则没问题。
所以说这个逻辑没有问题,正确来说应该不执行if下面的语句,因为low不会小于等于0对吧?
length放大一点,否则就没意义了