加仓时为什么要加循环?是因为buy指令会失败?
while(High >= preEntryPrice + 0.5*N && CurrentEntries < nEntries) // 以最高价为标准,判断能进行几次增仓
{
myEntryPrice = preEntryPrice + 0.5 * N;
preEntryPrice = myEntryPrice;
if(False == Buy(TurtleUnits,myEntryPrice))
{
break;
}
SendOrderThisBar = True;
}
个人理解 ,使用循环可以让代码更简洁易用。
海龟的最大加仓次数是不定的,由交易者自己来决定最大加仓次数即 Nentries的值。如果不用循环,那么每加一次仓就写一条加仓语句?这样代码会 很多条且重复,且若要修改加仓次数时还得从代码里进行处理?
相比而言,使用循环仅需一段代码,即可通过修改参数Nentries的值来修改加仓的次数,不是更方便嘛。
因为有可能一根bar的涨幅较大,导致价格区间覆盖了多次加仓价差
比如bar的开盘价1000,海龟加仓区间30,这根bar最后涨到了1100
那么实际上这根bar应该是加仓了3次,分别是1030 1060 1090
循环就是要把这些加仓全部体现出来
谢谢,每个tick都会执行一次onbar函数,难道不是每次满足条件都执行?
历史bar只会运行一次
盘中bar每次运行都是从上一根bar结束状态开始运行的
海龟交易系统是有加仓的
加仓我知道,不明白为什么要加循环。每个tick都会执行一次onbar函数,难道不是每次满足条件都执行?可否解释一下运行机制?