文章 "MQL5 向导:如何教导 EA 以任意价格建立挂单"

 

新文章 MQL5 向导:如何教导 EA 以任意价格建立挂单已发布:

本文讲述允许您以距当前价格的任意距离设置挂单的功能实现的交易信号模块代码的修改方法:它可以是上一个柱的收盘价或开盘价,或者是移动平均线的值。有很多的选择。重要的是,您可以为挂单设置任意的开盘价。本文对于使用挂单交易的交易人员而言会有所帮助。

使用 MQL5 向导生成的“EA 交易”只能以距当前价格的固定距离建立挂单。这意味着如果市场情况发生变化(例如市场波动中的变化),“EA 交易”不得不以新的参数重新运行。

这对于许多交易系统而言是不合适的。在大多数情形中,挂单的价格水平由交易系统动态决定。而且与当前价格的距离一直都在变化。在本文中,我们将探讨如何修改使用 MQL5 向导生成的“EA 交易”,使其能够以与当前价格的可变距离建立挂单。

Fig. 1. Signal_PriceLevel=-50

作者:Karputov Vladimir

 

感谢作者提供了有用的文章,但我认为有必要再次检查代码,例如,我注意到在 CMySignalEnvelopes::LongCondition 和 CMySignalEnvelopes::ShortCondition 方法中,调用对象 m_signal 的未选中 NULL 指针,而在 CMySignalEnvelopes::GetPriceLevelStopp 方法中,应用了未初始化局部变量 temp... 的当前值减法。


我的疑虑如下:
首先,您的参数更改会抹平 Signal_PriceLevel Expert Advisor 外部设置的值,这会误导用户;
其次,这种更改会经过主模块的字段,这会影响其他模块的工作;
第三,更改参数的方法在功能上有一定的用途。

在本例中,为了更改开仓订单的参数,基类 CExpertSignal 拥有特定的虚拟方法 - OpenLongParams、OpenShortParams,开发人员可能希望在后代类、自定义信号模块中重载这些方法,为了调用这些方法,只需在初始化时调用 General 方法,并将其类中的对象索引传递给该方法即可。

一般来说,我希望像您或我 这样提出对系统库进行扩展的文章,至少能附带这些库的 MQ 开发人员的一点评论,因为这样的文章并不多。

 

谢谢你的代码,非常有用。

顺便说一下,我正在尝试运行代码,结果包括以不同价格买入和卖出,但利润栏总是零,即使有一些交易。

不同的符号和时间都会出现这种情况。

非常感谢您的帮助。

附加的文件:
 
谢谢分享  功德无量 新人学习 
 
hongtao:
谢谢分享  功德无量 新人学习 
感谢分析啊,牛人!!!!!!
 
我看了一下,此EA是在当前点位上下几十个点位设置挂单。请问,如何在此挂单EA中如何设置支撑阻力点位挂单呢?比如,计算前几根k线的最低价,最高价,在最低价、最高价处挂单。
 

你好,卡尔普托夫

感谢您的精彩教程。我想问您,是否可以修改这段代码,使 EA 打开对冲挂单?

我只用以下策略进行黄金交易:

1. 如果 12 SMA 穿过 20 SMA,那么我想打开一组买入止损和卖出限价订单,如下所示;

例如,当 SMA 交叉时的当前价格为 1300.00 美元,那么;

第一个买入止损位 @ 1302.00,卖出限价位 @ 1302.50

第二个买入止损位 @ 1303.00,卖出限价位 @ 1303.50

第三个买入止损位 @ 1304.00,卖出限制位 @ 1304.50

第 4 个买入止损位 @ 1305.00,卖出限价位 @ 1305.50。


2. 如果 12 SMA 穿过 20 SMA 下方,则我要打开卖出止损单和买入限价单,如下所示;

例如,当 SMA 交叉时的当前价格为 1300.00 美元,那么;

第一个卖出止损位 @ 1298.00,买入限价位 @ 1297.50

第二个卖出止损位 @ 1297.00,买入限价位 @ 1296.50

第三个卖出止损位 @ 1296.00,买入限价位 @ 1295.50

第 4 个卖出止损位 @ 1295.00,买入限价位 @ 1294.50


我需要 EA 手动接受订单大小,然后根据上述均线交叉下挂单。我目前在 MT4 平台上使用虚拟服务器进行 交易,并到处寻找能实现这一功能的 EA。我找到的唯一最接近的是您在 MT5 平台上的 EA,所以如果有必要,我会切换到 MT5 平台。希望您能帮我编码。


谢谢

开发人员

 
Deven Parmar :

***

我需要 EA 手动接受订单大小,然后根据上述均线交叉情况下挂单。我目前在 MT4 平台上使用虚拟服务器进行 交易,我到处寻找能实现这一功能的 EA。我找到的唯一最接近的是您在 MT5 平台上的 EA,所以如果有必要,我会切换到 MT5 平台。希望您能帮我编码。

***

您需要在 CodeBase 中查找合适的顾问。或者联系 Freelance。您的问题与本文主题无关。

 
Vladimir Karputov:

您需要在 CodeBase 中寻找合适的顾问。或者联系自由职业者。您的问题与本文主题无关。

我知道这不是本文的主题,但您是否有可能帮我修改并重新编码此 EA,使其按照我的要求运行?我不擅长编码。

 
Deven Parmar :

我知道这与本文的主题无关,但您是否有可能帮我修改并重新编码这个 EA,使其按照我的要求运行?我不太擅长编码。

你在讨论文章中写道。你最好在论坛上创建一个主题 "帮我找一个能处理挂单的 顾问"。也许你能帮上忙。

 
Vladimir Karputov:

您在讨论文章中写道。您最好在论坛上创建一个主题 "帮我找一个处理挂单 的顾问"。也许你能帮上忙。

啊,对了,我现在明白你的意思了。谢谢