文章 "从头开始开发智能交易系统(第 11 部分):交叉订单系统"

 

新文章 从头开始开发智能交易系统(第 11 部分):交叉订单系统已发布:

在本文中,我们将创建一个交叉订单系统。 有一种类型的资产让交易员的生涯变得非常困难 — 那就是期货合约。 但为什么令他们的职业生涯变得如此困难?

左侧的图片是一个典型的期货合约,在这种情况下,它是迷你美元期货,从图表中可以看出,它是几天前开始的。 右侧的图表示意的是同一份合约,其包含的附加数据实际上代表了过期合约的数值,因此右侧的图表是一个历史图表。 右侧的图表更适合分析旧日的支撑和阻力价位。 但如果我们需要进行交易的话,一个问题就会出现。 如下所示:

          

作者:Daniel Jose

 

恭喜你写出了这篇出色的文章,丹尼尔。


我认为唯一的问题是在年末,"CurrentSymbol "函数需要查找下一年的符号名称。在我看来,i1 的值总是返回当年的数字(22),但到了 12 月,我们已经开始使用以 23 结尾的符号了。


 
Guilherme Mendonca 符号名称。在我看来,i1 的值总是返回当年的数字(22),但到了 12 月,我们已经开始使用以 23 结尾的符号了。


实际上,这个问题不会发生,这也是循环结束 .... 的原因

                                for (int i0 = 0, i1 = mdt1.year - 2000;;)
                                {
                                        m_Infos.szSymbol = StringFormat("%s%s%d", sz0, StringSubstr(sz1, i0, 1), i1);
                                        m_Infos.szFullSymbol = StringFormat("%s%s%d", sz2, StringSubstr(sz1, i0, 1), i1);
                                        if (i0 < StringLen(sz1)) i0++; else
                                        {
                                                i0 = 0;
                                                i1++;
                                        }
                                        if (macroGetDate(dt) < macroGetDate(SymbolInfoInteger(m_Infos.szSymbol, SYMBOL_EXPIRATION_TIME))) break;
                                }

只有满足这个条件,循环才会结束,而i1 的值将一直递增......因此,当年份改变时,资产将自动修改 ....

 
Daniel Jose #:

事实上,这个问题不会发生,其原因就是导致 TIE 结束....

只有达到这个突出显示的条件,循环才会结束,而i1 的值将一直递增...因此,当年份改变时,资产将自动修改 ....

你说得对。

我没有注意 i1 值递增那行。