期货量化软件:赫兹量化中开发 EA 构造函数的一次尝试

期货量化软件:赫兹量化中开发 EA 构造函数的一次尝试

从一开始,我的预定目标就是使用标准库。我的首要任务是实现最简单的功能:包括

CTrade

交易类,及执行

买入

卖出

的方法。

#晒出上学时的你#

我之所以选择标准库,是因为它可以生成更简洁的代码。以下以脚本形式执行的短代码以交易量1.0手执行开多头仓位:

//+——————————————————————+// Open Buy.mq5// Copyright [gf]a9[/gf]2018-2021, Vladimir Karputov //+——————————————————————+#property copyright “Copyright [gf]a9[/gf]2018-2021, Vladimir Karputov”#property version “1.001”//—#include CTrade mtrade;// trading object//+——————————————————————+// Script program start function //+——————————————————————+void OnStart(){//— mtrade.Buy(1.0);// open Buy position, volume 1.0 lot }

渐渐地,需求变得越来越复杂,我几乎每次在编写新的智能交易系统(EA)时都会遇到交易错误。故此,我对编写正确代码的渴望变得越来越强烈。最终,一篇非常重要的文章《交易机器人在市场发布前必须通过的检查》问世了。当这篇文章发表时,我已经意识到需要针对交易指令的执行进行可靠控制的函数。从那一刻起,我开始逐渐积攒了大量经过验证的函数,这些函数可以通过

复制

->

粘贴

轻松添加到 EA 之中。

由于 EA 的操作几乎总是涉及到使用指标,因此我开始积攒创建正确指标句柄,以及接收指标数据的函数。

NB

MQL5样式意味着指标句柄只能创建一次。作为一条规定,这是在 OnInit 中完成的。

自2.XXX,版起,我开始维护两个开发分支— 正常的面向过程代码,和类形式的代码(类的主要目标是实现多币种 EA)。

在我的工作动向中,构造函数逐渐接受了最流行的设置:

止损和止盈,尾随,依据风险百分比、或恒定/最小手数计算手数,控制交易运作内的时间间隔,场内只存在一笔持仓,反转交易信号,在出现翻转信号的情况下强制平仓…

每个输入都牵扯到创建代码模块和新函数。

对于日常使用,我决定在 Trading engine 3.mq5 EA 当中收集所有最流行的函数和完整的输入集合。事实上,这是一个成品 EA,它能把我们从大量日常工作中解脱出来。我们所要做的就是在每种特定情况下添加/删除函数,或更改代码模块之间的交互。

1.构造函数之后的 EA 功能

由构造函数创建的 EA 立即拥有多个设置,可以组合这些设置来创建独特的策略。版本4.XXX 应用了以下规则:

使用当前品种符号(EA 启动时所在图表的品种符号)止盈、止损和尾随都在输入中设定。 Points —依据报价货币计量的当前品种符号点数大小,例如“EURSD”1.00055-1.00045=10个点。

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

Proudly powered by WordPress | Theme: HoneyWaves by SpiceThemes