- 显示:
- 1072
- 等级:
- 已发布:
- 2018.04.27 10:14
-
需要基于此代码的EA交易或指标吗?请在自由职业者服务中订购 进入自由职业者服务
基于 SerialMA 指标的智能交易系统。
指标的计算周期自指标线与价格的交点开始不断增加,直到下一个交点。 指标计算自每个交叉点后的最小值重新开始。
智能交易系统使用的此指标属性:
- 如果信号柱线上的蜡烛条收盘价高于信号柱线的指标线,且前一根柱线的指标点位于指标线上,则为一个开多头仓位的信号。
- 如果信号柱线上的蜡烛条收盘价低于信号柱线的指标线,且前一根柱线的指标点位于指标线上,则为一个开空头仓位的信号。
可以选择两种开仓模式:
- 每个信号相应开仓。 相反的持仓平仓。
- 一个方向只能开一仓。 第一个信号这样开仓。 如果有相反的持仓,则应在此信号时平仓。 所有后来信号若方向相同则被忽略,直到出现相反的信号 - 在这种情况下,持仓将被反转 (摆动)。
智能交易系统是专为对冲账户而设计的。 如果您在净持帐户上启动 EA,则会弹出警告消息,EA 将被卸载。
为了智能交易系统的正确操作, 将完整的指标文件 SerialMA.ex5 保存到您终端里的标准指标文件夹 (您的终端目录\MQL5\Indicators)。
智能交易系统允许启用/禁用多头/空头持仓,也可以反转指标信号以空头替代多头,反之亦然。 您也可以设置以点数为单位的止损和止盈。 如果指定了无效的止损和止盈值, EA 将调整为品种允许的最小 StopLevel。
如果指定的手数值不正确,智能交易系统也会调整。 如果手数太大,EA 会调整它以便能够开仓。 如果资金不足以开仓,信号将被跳过。
请注意,智能交易系统是专为培训目的而设计的。
EA 有 12 个输入参数:
- Experts magic number - EA 仓位的唯一标识符;
- Mode of opening positions - 开仓模式 (每个信号或只允许有一笔持仓);
- Long positions is enabled - 启用多头仓位;
- Short positions is enabled - 启用空头仓位;
- Reverse trade - 选择反向模式 (Yes, No): 如果 Yes,多头信号会开空头仓位,反之亦然;
- Lots - 开仓交易量;
- Stop loss in points - 以点数为单位的止损;
- Take profit in points - 以点数为单位的止盈;
- Slippage of price - 开仓时允许的最大滑点;
- Multiplier spread for stops - 计算停止订单 (*) 的适当距离时应用的点差乘数。
- Waiting for environment update (in seconds) - 以秒为单位的交易环境更新等待时间 (**);
- Number of attempts to get the state of the environment - 获得准确交易环境的尝试次数 (***)。
* 对于止损和止盈订单 (以及挂单),放置此类订单的最小允许距离为 StopLevel。 即,止损和止盈 (以及挂单) 不能放在离这个价格距离更近的位置。 如果 StopLevel 为零, 它并非意味着它不存在,它只意味着 StopLevel 是浮动的。 在这种情况下,最小距离通常等于点差*,但有时甚至双倍点差也不够。 因此,为计算放置止损订单的最小距离,此参数允许指定一个点差的自定义乘数。
** 当交易指令发送到服务器时,执行时的偶尔延迟可能会导致市价开仓数量的计数错误。 如果检测到这种 "未定义 (undefined)" 状态,则智能交易系统将等待指定的秒数,然后再次读取环境。
*** 一次逐笔报价内的等待周期数量在 EA 参数中设置。 在所有获得准确环境的允许尝试之后,智能交易系统退出处理并等待下一次逐笔报价。 如果此时交易环境无法更新,EA 将在这次新的逐笔报价上重复这些尝试。
在 2017.01.04 至 2018.02.09 区间内的数据上以默认设置测试策略。 不幸的是,EA 默认设置没有表现出好的结果。 因此,又在反向模式下进行了测试。 反向模式下的结果更好。 智能交易系统从动态计算的移动平均线中接收信号,因此没有优化的参数。 但您可以考虑添加到 EA 中的内容。 例如,在持仓上应用尾随停止。
图例1,2 测试结果。
由MetaQuotes Ltd译自俄语
原代码: https://www.mql5.com/ru/code/20089