簡體   English   中英

EA 交易與 MQL4 指標之間的交互

[英]Interactions between Expert Advisor and Indicators on MQL4

是否可以通過專家顧問讀取預建指標的變化(例如:其價值變化),當然 - 根據這些讀取自動進行交易?

負責執行此操作的功能是什么?

我試圖在谷歌上查找這個,但似乎我只能做跟蹤對象創建或刪除之類的事情......稱為 圖表事件......也許我錯過了什么?

對的,這是可能的。

MetaTrader4 終端是一個軟件平台,允許您啟動

  • 1x soloist Expert Advisor - 作為每個MT4.Graph的事件驅動代碼執行算法
  • Nx發自定義指標- 每個MT4.Graph 的事件驅動受限代碼庫
  • 每個MT4.Graph 1x soloist Script異步代碼執行單元

這個清單很重要,因為除了這個之外,您沒有其他方法可以自動執行復雜的交易算法。

技術指標在一個公共線程下執行,這對實時魯棒性造成了限制,另外一些限制適用於可能在指標中編碼/編譯/執行的允許/禁止操作(所有這些都旨在避免任何和所有可能的阻塞情況(參考) . 所有人的單線程... ) )

這就是說,您可能已經注意到, Expert AdvisorTechnical Indicator -s 都是外部同步的(暫時忘記非並行共享線程執行,由於資源/代碼執行調度具有主要的納秒級異步性)和綁定從外部發出anFxMarketEVENT在到達的信號的形式(一次價格波動, MT4.Server發送QUOTE下行消息到MT4.Terminal ,也叫做),其一旦接收(IF),觸發器MQL4上代碼執行設施localhost

  • 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()被調用(因此在不增加成本對准代碼執行與所述內部事件處理程序)。

void OnTick(){
     if (  hasAnIndicatorChanged() ){
           ... 
     }
     ...
}

好的,我找到了。

為了使用自定義指標作為iCustom()交易系統內的買入/交易決策工具,函數是iCustom()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM