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