MQL4上EA交易和指标之间的交互

时间:2015-09-21 20:38:01

标签: trading algorithmic-trading mql4 metatrader4 forex

是否可以通过专家顾问读取预建指标的变化(例如:其价值变化),当然 - 根据这些读数自动化交易?

负责这项工作的功能是什么?

我试图在Google上查看此内容,但似乎我只能执行跟踪对象创建或删除等操作...称为Chart Events ....也许我错过了什么?< / p>

2 个答案:

答案 0 :(得分:4)

是的,有可能。

MetaTrader4终端是一个软件平台,可让您启动

  • 1x 独奏 专家顾问 - 作为每个 的事件驱动的代码执行算法MT4.Graph
  • Nx 并发 自定义指标 -s事件驱动的受限制的代码库每 MT4 .Graph
  • 1x soloist 脚本 每个 MT4.Graph

这个库存很重要,因为除了这个,你没有其他方法可以自动化复杂的交易算法化。

技术指标在一个共同线程下执行,这对实时稳健性提出了限制,并且一些限制适用于可能在指标中编码/编译/执行的允许/禁止操作(所有这些都旨在避免任何和所有可能的阻塞情况(参考所有人的solo-thread ...))

这说,您可能已经注意到,Expert AdvisorTechnical Indicator - s都是外部同步的(暂时忘记非并行,共享线程执行与主要纳秒级别的异步性,因为资源/代码执行计划)并以到达信号的形式绑定到外部发布的 anFxMarketEVENT (一旦价格移动,MT4.Server发送 {{1} }的下游邮件,即 勾选 ),一旦(如果)收到,则会触发 QUOTE MT4.Terminal上的代码执行工具:

  • MQL4 localhost
  • OnTick(){ ...} # in case of Expert Advisor

负责此事的功能是什么?

直接?无。

间接?您构建并负责注册/监控此类值的更改(在OnCalculate(){...}域内部或外部通过分布式处理模型,包括{{} 1}} - 集群1用于更苛刻的处理,其中内部共享线程执行无法满足时序约束):

# in case of Custom Technical Indicator

可以做原则

可以创建一个类似的平凡或更复杂的PID监视器,并在每次调用MQL4时从GPU询问(从而将代码执行与内部事件处理程序对齐)额外费用)。

bool hasAnIndicatorChanged( double aTol = 0.00001 ){    // DERIVATION
     static double prevVALUE = EMPTY_VALUE;             // .DEF
            double aNewVALUE = iBWMFI( _Symbol,         //      .SYM
                                       PERIOD_CURRENT,  //      .PERIOD
                                       0                //      .HOT[0]
                                       );               // .STO "current"
     if (  MathAbs( aNewVALUE - prevVALUE ) <= aTol ){
           prevVALUE = aNewVALUE;
           return( False ); // JIT/RET --> --> --> --> --> non-MISRA-C JIT/RET
     }
     else {
           prevVALUE = aNewVALUE;
           return( True );  // JIT/RET --> --> --> --> --> non-MISRA-C JIT/RET
     }
}

答案 1 :(得分:1)

好的我找到了。

为了在专家顾问中使用自定义指标作为买卖交易决策的工具,该功能为iCustom()