创意作者 — 约翰·史密斯,MQL5代码作者 — barabashkakvn。
这是一个辅助型的智能交易顾问(EA),功能仅限于平仓:

该EA能够将未平仓的交易调整为保本状态,并根据StopATR_auto指标计算止损,交易在两条移动平均线交叉时平仓。
为了让EA正常工作,您需要将编译后的StopATR_auto指标文件放入文件夹 MQL5\Indicators\Downloads:
//+------------------------------------------------------------------+ //| 专家初始化函数 | //+------------------------------------------------------------------+ int OnInit() { //--- ... //--- 创建指标的句柄 iCustom handle_iCustom=iCustom(m_symbol.Name(),TimeFrame,"Downloads\StopATR_auto", CountBarsForAverage, Target );
虽然这个智能顾问仅限于平仓,但我也加入了一小段代码用于开仓:
//+------------------------------------------------------------------+ //| 专家每次价格变动函数 | //+------------------------------------------------------------------+ 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++; } //---
该模块仅在测试或优化此智能顾问时工作。每1,500个价格变动后开一个买入或卖出。