全部 智大领峰 TBQuant功能 TBL语言 TB开户 问答专区 高手圈 其他
海龟模板加仓时为什么要加循环
2021-03-09 02:09

加仓时为什么要加循环?是因为buy指令会失败?

                    while(High >= preEntryPrice + 0.5*N && CurrentEntries < nEntries) // 以最高价为标准,判断能进行几次增仓
                    {
                        myEntryPrice = preEntryPrice + 0.5 * N;
                        preEntryPrice = myEntryPrice;
                        if(False == Buy(TurtleUnits,myEntryPrice))
                        {
                            break;
                        }
                        SendOrderThisBar = True;
                    }

tblaocai

海龟交易系统是有加仓的

2021-03-09 08:58
justinshan
@tblaocai

加仓我知道,不明白为什么要加循环。每个tick都会执行一次onbar函数,难道不是每次满足条件都执行?可否解释一下运行机制?

2021-03-09 11:27
kyover

因为有可能一根bar的涨幅较大,导致价格区间覆盖了多次加仓价差

比如bar的开盘价1000,海龟加仓区间30,这根bar最后涨到了1100

那么实际上这根bar应该是加仓了3次,分别是1030 1060 1090

循环就是要把这些加仓全部体现出来

2021-03-09 09:40
justinshan
@kyover

谢谢,每个tick都会执行一次onbar函数,难道不是每次满足条件都执行?

2021-03-09 11:23
kyover
@justinshan

历史bar只会运行一次

盘中bar每次运行都是从上一根bar结束状态开始运行的

 

2021-03-10 15:10
cll

个人理解 ,使用循环可以让代码更简洁易用。

海龟的最大加仓次数是不定的,由交易者自己来决定最大加仓次数即 Nentries的值。如果不用循环,那么每加一次仓就写一条加仓语句?这样代码会 很多条且重复,且若要修改加仓次数时还得从代码里进行处理?

相比而言,使用循环仅需一段代码,即可通过修改参数Nentries的值来修改加仓的次数,不是更方便嘛。

2021-03-09 17:32
您未登录,请先 登录注册 后发表评论
顶部