- 显示:
- 1246
- 等级:
- 已发布:
- 2017.02.07 12:03
- 已更新:
- 2023.03.29 14:34
-
需要基于此代码的EA交易或指标吗?请在自由职业者服务中订购 进入自由职业者服务
真实作者: Vladimir Khlystov
最简单的 EA, 基于 WeightOscillator 加权振荡器。下穿振荡器超买级别时做空, 上穿振荡器超卖级别时做多。在柱线收盘时, 如果有级别穿越, 则形成信号。
EA 中的 WeightOscillator_HTF 指标只是出于更方便地在策略测试器中将趋势可视化, 在其它操作模式中它们没有动作。
放置 WeightOscillator.ex5 和 WeightOscillator_HTF.ex5 编译文件至 <客户端文件夹>\MQL5\Indicators。
编译之后, Exp_WeightOscillator.ex5 交易系统文件将 WeightOscillator.ex5 和 WeightOscillator_HTF.ex5 指标作为 资源 包含在内, 所以, 编译 EA 时不需要它们出现在终端文件夹里即可工作!为此目的, 已将相应的代码添加到 EA 代码中, 以便将这些指标包含在交易系统的可执行文件中。
指标可执行文件已作为资源添加到全局范围
#resource "\\Indicators\\WeightOscillator.ex5"
#resource "\\Indicators\\WeightOscillator_HTF.ex5"
在 OnInit() 函数块里将字符串路径更改为指标的资源
InpInd_Handle=iCustom(Symbol(),InpInd_Timeframe,"::Indicators\\WeightOscillator",RSIWeight,RSIPeriod,RSIPrice,MFIWeight,MFIPeriod,MFIVolumeType,
WPRWeight,WPRPeriod,DeMarkerWeight,DeMarkerPeriod,bMA_Method,bLength,bPhase,HighLevel,LowLevel);
if(InpInd_Handle==INVALID_HANDLE)
{
Print(" 获取 WeightOscillator 指标句柄失败");
return(INIT_FAILED);
}
//---- 获取 WeightOscillator_HTF 指标句柄以便在策略测试器中可视化
if(MQLInfoInteger(MQL_VISUAL_MODE))
{
//---- 获取 WeightOscillator_HTF 指标的句柄
int Ind_Handle=iCustom(Symbol(),Period(),"::Indicators\\WeightOscillator_HTF",InpInd_Timeframe,
RSIWeight,RSIPeriod,RSIPrice,MFIWeight,MFIPeriod,MFIVolumeType,
WPRWeight,WPRPeriod,DeMarkerWeight,DeMarkerPeriod,bMA_Method,bLength,bPhase,HighLevel,LowLevel);
if(Ind_Handle==INVALID_HANDLE)
{
Print(" 获取 WeightOscillator_HTF 指标句柄失败");
return(INIT_FAILED);
}
}
因此, 已编译的交易系统可执行文件能够在其它交易终端上独自使用, 而无需指标。
注意,如果交易商提供非零点差,并且可在开仓时设置止损及止盈,这个 TradeAlgorithms.mqh 库文件方可在 EA 中使用。您可以下载更多库文件的变体,链接如下: 交易算法。
在测试时使用的省缺自动交易程序的输入参数如下所示。止损和止盈测试中未使用。
图例. 1. 图表中是交易例子
测试结果 从 2015 品种 EURJPY H6:
图例. 2. 测试结果图表
由MetaQuotes Ltd译自俄语
原代码: https://www.mql5.com/ru/code/17076
![WeightOscillator_HTF](https://c.mql5.com/i/code/indicator.png)
指标 WeightOscillator 在输入参数中有时间帧选项。
![Fractional_Bands](https://c.mql5.com/i/code/indicator.png)
使用分形布朗运动修改价格变化的分数波带, 参考了分形维数。