- 发布者:
- Vladimir Karputov
- 显示:
- 1918
- 等级:
- 已发布:
- 2017.08.18 11:08
-
需要基于此代码的EA交易或指标吗?请在自由职业者服务中订购 进入自由职业者服务
思路的作者 — John Smith, MQL5 代码的作者 — barabashkakvn.
一个用于辅助的EA交易。只用于关闭仓位:
仓位移动的平衡点, 根据 StopATR_auto 指标计算止损, 仓位在两个 MAs (移动平均) 交叉时关闭。
为了使EA交易能够正常运行, 您应当把编译好的StopATR_auto指标文件放到MQL5\Indicators\Downloads文件夹下:
//+------------------------------------------------------------------+ //| EA交易初始化函数 | //+------------------------------------------------------------------+ int OnInit() { //--- ... //--- 使用 iCustom 创建指标句柄 handle_iCustom=iCustom(m_symbol.Name(),TimeFrame,"Downloads\\StopATR_auto", CountBarsForAverage, Target );
尽管这个EA交易只是用于平仓,我也加入了一小部分代码用来建立仓位:
//+------------------------------------------------------------------+ //| EA交易订单分时函数 | //+------------------------------------------------------------------+ void OnTick() { //--- if(MQLInfoInteger(MQL_DEBUG) || MQLInfoInteger(MQL_PROFILER) || MQLInfoInteger(MQL_TESTER) || MQLInfoInteger(MQL_OPTIMIZATION)) { static long counter=-50; static bool trade_buy=true; if(counter==0) m_trade.Buy(m_symbol.LotsMin()); else if(counter%1500==0) { if(RefreshRates()) { if(trade_buy) { OpenBuy(m_symbol.LotsMin()); trade_buy=false; } else { OpenSell(m_symbol.LotsMin()); trade_buy=true; } } else counter=counter-9; } counter++; } //---
这个部分只有在您测试或者优化EA交易的时候才会工作,每过1500个分时就会建立一个买入或者卖出仓位。
由MetaQuotes Ltd译自俄语
原代码: https://www.mql5.com/ru/code/18677

根据ATR指标自动计算止损水平。

本EA交易使用了三个指标: MA(150), RSI(3) 中的水平 80 和 20, Stochastic(6, 3, 3) 中的水平 70 和 30.