簡體   English   中英

替代MQL5

[英]Alternative to MQL5

我從MetaTrader Terminal軟件上的MetaTrader Terminal交易開始,我有很多算法可以使用。 這些算法是在MATLAB使用其強大的內置函數(例如svdpinvfft )開發的。 為了測試我的算法,我有一些選擇:

  1. MQL5編寫所有算法。
  2. C++編寫算法,然后使MQL5調用DLL
  3. Python編寫算法以嵌入C並生成DLL
  4. MATLAB源代碼轉換為C ,然后生成一個DLL

關於問題:

  1. 不可行,因為MQL5沒有內置函數,因此我將不得不手動實現一個。
  2. 我仍然沒有嘗試過,但是我認為要花很長時間才能實現這些算法(我用C編寫了一些算法,但是花了很多時間,結果卻不像MATLAB那樣快)。
  3. 編譯為DLL時,我會遇到很多錯誤,但如果編譯為可執行文件,就不會出錯(這是一個很好的選擇,因為將MATLAB轉換為python非常容易且快速)。
  4. 我現在正在嘗試,但是我認為有很多工作要做。

我研究了其他類似軟件,例如MetaTrader Terminal但沒有找到一個好的軟件。

我想知道,是否存在一種最簡單(最快)的方式將其他語言以某種方式嵌入到MQL5或我的問題的某種替代方式。

謝謝。

是的,還有其他選擇... 5)分布式:

出於類似的動機,在外部定量模型中使用非MQL4代碼進行快速復雜的外匯交易,我已經開始同時使用兩種方法{ MATLAB | python | ... } { MATLAB | python | ... } { MATLAB | python | ... }MetaTrader Terminal環境以異構分布式處理系統的互連形式存在。

MQL4部分負責:

  1. anAsyncFxMarketEventFLOW處理
  2. aZmqInteractionFRAMEWORK設置和參與消息模式處理
  3. anFxTradeManagementPOLICY處理
  4. anFxTradeDetectorPolicyREQUESTOR將分析RQST -s發送到遠程AI / ML預測器
  5. 根據遠程節點指示進行anFxTradeEntryPolicyEXECUTOR處理

{ MATLAB | python | ... } { MATLAB | python | ... }部分負責:

  1. aZmqInteractionFRAMEWORK設置和參與消息模式處理

  2. anFxTradeDetectorPolicyPROCESSOR接收與加工分析RQST從遠程-s到{ MQL4 | ... } { MQL4 | ... }請求者

  3. anFxTradeEntryPolicyREQUESTOR將交易進入請求發送到遠程{ MQL4 | other-platform | ... } { MQL4 | other-platform | ... } { MQL4 | other-platform | ... } -market-interface-node(s)

為什么要開始以分布式方式思考?

核心優勢在於重用 MATLAB和其他COTS AI/ML軟件包的優勢,而無需對仍在逐漸發展的MQL4接口選項進行逆向工程(是的,在最近幾年中,DLL接口受到了來自較新的更新(字符串不再是字符串,而開始成為結構(!!!)等)–在維護代碼庫的情況下,許多人*多年的痛苦,因此應該避免一些刻骨銘心的經歷。 ..)。

下一個優點是能夠增加故障恢復能力 分布式系統可以在(1 + N)受保護的陰影下工作。

下一個優勢是能夠提高性能 分布式系統可以提供處理器池-在{ SEQ | PAR } { SEQ | PAR } -操作模式(流水線過程或並行形式的過程執行)。


MATLAB節點剛剛加入:

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% MATLAB script to setup 

zeromq-matlab
clear all;
if ~ispc
    s1 = zmq( 'subscribe', 'ipc', 'MATLAB' );   %% using IPC transport on <localhost>
else
    disp( '0MQ IPC not supported on Windows.' )
    disp( 'Setup TCP transport class instead' )
    disp( 'Setting up TCP')                     %% using TCP transport on <localhost>
    s1 = zmq( 'subscribe', 'tcp', 'localhost', 5555 );
end

recv_data1 = [];                                %% setup RECV buffer

這就是說,一方面可以保持優勢,另一方面可以避免已實施的本機高性能調整庫的任何形式的重復 ,而分布式操作模式還為Expert Advisor方法的操作增加了一些全新的潛在好處。


在通信框架之上的分布式系統:

MATLAB已經有了ZeroMQ Communication Framework的端口 ,與MetaTrader Terminal一樣,這要歸功於Austin CONRAD的包裝器(盡管MQHver 2.1.11 DLL接口,但所需的服務卻像魅力一樣起作用),因此您已經准備就緒在每個方面都可以使用它,因此這些類型的節點可以以可以設計成真正異構的分布式系統的任何形式加入它們各自的角色。

在此處輸入圖片說明

我最近的研發工作使用python端進程的多個實例來操作AI/ML-predictorr/KBDr/RealTimeANALYSER和集中化的r/LOG服務,這些服務在許多PUSH/PULL + XREQ/XREP + PUB/SUB PUSH/PULL得到了積極使用PUB/SUB可擴展形式化通信模式,來自MetaTrader Terminal -s的多個實例,分別具有各自的MQL4代碼。

MATLAB函數可以以相同的方式重復使用。

暫無
暫無

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

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