欢迎光临散文网 会员登陆 & 注册

期货量化软件:赫兹量化晋升为一款智能交易系统

2023-08-21 15:16 作者:大牛啊呢  | 我要投稿

计划

我们已经有了自定义指标,也就是说,我们的对象类已经功能齐备,而且由于这是一个对象类,我们可以轻松地将其转换到其它模型。 然而,在我们的 EA 中简单地声明并尝试使用这个类,并不能让事情如同我们在自定义指标中一样工作,原因是我们的 EA 中未提供子窗口功能。 但又冒出了这样一个想法:“如果我们用一个已经编译过,且可工作的自定义指标,然后用 iCustom 命令从 EA 调用它,会怎么样? 好吧,这也许是可行的,因为这样不需要子窗口,命令如下所示:

#property copyright "Daniel Jose" //+------------------------------------------------------------------+ input string user01 = "";                //Used indicators input string user02 = "";                //Assets to follow //+------------------------------------------------------------------+ int OnInit() {        int m_handleSub; //... Expert Advisor code ...        if ((m_handleSub = iCustom(NULL, 0, "Chart In SubWindows\\Chart In SubWindow.ex5", user01, user02)) == INVALID_HANDLE) return INIT_FAILED;        if (!ChartIndicatorAdd(ChartID(), 0, m_handleSub)) return INIT_FAILED; //... Expert Advisor code ...        ChartRedraw();                return(INIT_SUCCEEDED); } //...The rest of the Expert Advisor code ...

这个简单的代码片段能够加载我们的自定义指标,然而它还不能正常工作,因为我们没有子窗口。 在这种情况下,当代码在 EA 里执行时,EA 将直接在主窗口中应用我们的指标,这意味着图表会被指标加载的模板掩盖,这绝对不是我们想要的。

因此,我们真正的主要问题是创建一个可用的子窗口,以便我们可以使用已经功能齐备的指标。 但为何我们要为随后启动的指标创建一个子窗口呢? 这没有意义,最好直接往 EA 里添加功能,从而克服可能出现的任何限制。

有基于此,我们需要执行若干个任务:

任务

目的

1 => 创建一个通用指标。

它允许在不污染图表的情况下创建和使用 iCustom 命令。

2 => 在 EA 里以某种方式包含该指标。

这令您能够毫无问题地将其转换为具有完整功能的智能交易系统。

3 => 针对子窗口生成通用对象类

允许经由 EA 添加子窗口

4 => 获取已绑定到 window 类的 C_TemplateChart 类。

这允许我们管理子窗口的内容,而无需更改功能齐备的代码中的任何内容。

虽然这看起来很难,但困难很简单就解决了。 那好,我们来逐点处理。


期货量化软件:赫兹量化晋升为一款智能交易系统的评论 (共 条)

分享到微博请遵守国家法律