- 显示:
- 1297
- 等级:
- 已发布:
- 2017.01.25 08:41
-
需要基于此代码的EA交易或指标吗?请在自由职业者服务中订购 进入自由职业者服务
为什么需要这样:
如果您为市场开发产品或者您不想使用系统DLL,本类可以帮助您在您的程序之间组织进行数据的交换。
对于其他情况,有更加可靠和更快的方法用于应用程序的数据交换。交换是使用简单结构实现的。
使用选项:
- 需要从一个EA交易传送数据到指标或者另一个EA交易;
- 需要创建一个指标来在多个窗口中显示信息(或者在主窗口和子窗口中显示);
- 需要设置EA交易计算数值的可视化效果,在其中有所需的计算。
如何使用它:
这里是一个从EA交易到指标传送数据的实例。
- 在 EA 交易中
1.1. 创建一个类的实例:
CInterchange Exp_buffer;
1.2. 在OnInit()中设置全局变量名称的前缀,为了避免和其他类的实例产生冲突,为它们中的每一个都要设置唯一的名称:
Exp_buffer.SetPrefixNameForSave(_Symbol+"_"+(string)_Period);
1.3. 算法操作是使用自定义事件来实现的,只要把这行代码加到 OnChartEvent() 处理函数下方:
Exp_buffer.OnEvent(id,lparam,dparam,sparam);
如果数据已经准备好可以传输了 (在例子中它是 Exp_Data 结构), 就需要调用这个方法:
Exp_buffer.SendDataStart(Exp_Data);
1.4. 不要忘记在程序终止时删除类的实例:Exp_buffer.Destroy();
- 在指标中
2.1. 创建一个类的实例:
CInterchange Ind_buffer;
2.2. 在OnInit()中设置全局变量名称的前缀,必须要与数据源匹配 - 必须和 1.1 相同。
Ind_buffer.SetPrefixNameForLoad(_Symbol+"_"+(string)_Period);
2.3. 为了开始处理数据传输,需要调用 GetDataStart(),使用 Ind_data 参数 (用于从EA交易中写入数据的结构);
Ind_buffer.GetDataStart(Ind_data);
2.4. 算法操作是使用自定义事件来实现的,把下面这一行加到 OnChartEvent() 处理函数中:
Ind_buffer.OnEvent(id,lparam,dparam,sparam);
如果数据传输处理完毕,这个方法:
Ind_buffer.GetDataFinish(Ind_data)
返回 true.
2.5. 不要忘记在程序终止时删除类的实例:
Ind_buffer.Destroy();
运行示例的视频:
由MetaQuotes Ltd译自俄语
原代码: https://www.mql5.com/ru/code/12786

演示了基于 OnTimer 事件进行交易的简单代码。当计时器触发时,EA交易会交替进行买入和卖出交易,使用的是固定的止损和获利值。

ZZ Fibo Trader 简单地展示了 Simple ZZ Fibo 的使用, 它在之字转向的波动中绘制斐波那契线。另外,算法还展示了通过抛物线系统进行移动止损的操作。