1

Is it possible to read changes in pre-built indicator (for example: its value changes) through an expert-advisor, and of course - automate the trades based on those reads?

What is the function that is responsible for doing this?

I have tried to look this up on Google, but it appears I can only do things like track object creation or deletion ... called Chart Events.... maybe I'm missing something?

4

2 回答 2

5

对的,这是可能的。

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

  • 1x独奏者Expert Advisor- 作为每个事件驱动的代码执行算法MT4.Graph
  • Nxconcurrent Custom Indicator-s 每个事件驱动的受限代码库MT4.Graph
  • 1xScript每个独奏者异步代码执行单元MT4.Graph

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

技术指标在一个公共线程下执行,这对实时鲁棒性构成限制,另外一些限制适用于可能在指标中编码/编译/执行的允许/禁止操作(所有这些都旨在避免任何和所有可能的阻塞情况(参考. 所有人的单线程... ) )

这就是说,您可能已经注意到,Expert AdvisorTechnical Indicator-s 都是外部同步的(暂时忘记非并行的共享线程执行,由于资源/代码执行调度而具有主要的纳秒级异步性)并且绑定到外部anFxMarketEVENT发布到达信号的一种形式(一旦价格移动,将下游MT4.Server消息QUOTE发送给MT4.TerminalMQL4localhost

  • OnTick(){ ...} # in case of Expert Advisor
  • OnCalculate(){...} # in case of Custom Technical Indicator

对此负责的功能是什么?

直接地?没有任何。

间接?您构建并负责注册/监视此类值的更改的人(无论是在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
     }
}

能做的原则

可以创建一个类似的微不足道或更复杂的 PID 监视器,并在Expert Advisor每次OnTick()调用 an 时询问(因此无需额外成本将代码执行与内部事件处理程序对齐)。

void OnTick(){
     if (  hasAnIndicatorChanged() ){
           ... 
     }
     ...
}
于 2015-09-22T12:37:58.723 回答
2

好的,我找到了。

为了在智能交易系统中使用自定义指标作为购买/交易决策的工具,函数是iCustom()

于 2015-09-22T21:42:08.703 回答