![](/img/trans.png)
[英]How to send a message in MQL4/5 from MetaTrader Terminal to python using ZeroMQ?
[英]How can someone send data from MetaTrader 4/5 Terminal to external server?
這在某種程度上旨在(可能)成為(來)關於 MetaTrader 4/5 及其相應語言 MQL4 的指南帖子,兩者都設置為將數據發送到外部服務器的上下文。
在我的特殊情況下,我正在構建一個基於 Django/Python 的 web 應用程序,它將處理外匯交易數據以供進一步使用。
因此,我正在尋找一種合適的解決方案,以將數據從 MetaTrader 4/5 終端定期(例如每 60 秒)發送到外部服務器,格式為json
或csv
(如果可能)。 特別是,要發送的數據是賬戶交易歷史和運行+待定交易集。
經過研究,我基本上發現了以下方法:
1.) 在智能交易系統中使用 MQL4 中的webrequest()
正如官方 MQL4 文檔所建議的那樣, webrequest()
function 向指定服務器發送 http:// 請求。
這是一個相關的 SO 線程:
如何從 MetaTrader 終端 5 MQL 5 向我的 nodejs 服務器發送請求,該服務器在我的 MT5 主機上本地運行?
和官方文檔:
https://docs.mql4.com/common/webrequest
這可以包裝到專家顧問中,以定期對給定的定義事件執行請求。
來自 MT4/5 終端的哪種數據可以填充到數據數組中?
如何格式化這些數據? 是否可以立即將其格式化為json
還是應該在服務器端完成?
2.) 使用ZeroMQ
這是我在此線程中找到的設置: How to send a message in MQL4/5 from MetaTrader Terminal to python using ZeroMQ?
這將如何在 MetaTrader 環境中完成? 這仍然是專家顧問或某種 DLL 解決方案嗎? ZeroMQ 在設置中的作用是什么?
和webrequest()
function相比有什么優缺點?
3.) 其他?
是否有任何其他可能的方法來實現這一目標,例如使用 API 或 MQL4 腳本?
由於這是一個罕見的話題,我期待着任何微小的想法和意見。
歡迎加入俱樂部——我上面引用的答案在 1.5 年內收到了 迄今為止的零票
盡管如此,
從 v2.11+ 開始使用 ZeroMQ,感謝 Austen CONRAD 發表的研發工作——感謝他的堅持,我們對他深表敬意。
問: “這將如何在 MetaTrader 環境中實現?”
一個簡單的#import
-s DLL 並開始使用 ZeroMQ-API-wrapper 調用。 在 MetaTrader 默默地將string
的內部表示更改為不再是string
(成為“New”中的struct
之后,一些細節變得更復雜了- MQL4.56789
,但您將學習如何以這種“時刻關注”的方式生活,以便在生產中生存)
問: “這仍然是專家顧問還是某種 DLL 解決方案?”
ZeroMQ 可用於以下任一和/或全部:
- EA交易 - 類型的MQL4
- 代碼
-自定義指標- 類型的MQL4
- 代碼
- MQL4
代碼的腳本類型
和
甚至可以提供代理信令/消息傳遞層,以便在 MT4 終端生態系統內的這些原本獨立且不合作的進程之間進行通信。
例子:
我有 MT4-Terminal 進程與外部基於 AI/ML 的市場分析器合作,它自動檢測機會窗口加上外部 CLI 控制台,作為 MT4-Terminal 托管控制面板的遠程鍵盤,顯示系統運行狀況-狀態和監聽遠程鍵盤,用於遠程CLI命令控制(用於整個多方分布式交易系統的配置和維護任務)
問: “ZeroMQ 在設置中的作用是什么?”
ZeroMQ 在任何類型的所需節點(網格計算、GPU 計算、CLI 終端、AI/ML 決策、系統范圍整合)之間提供獨立、智能和行業標准、智能和低延遲的信號/消息傳遞層中央日志記錄,可能需要的任何東西)
嘗試使用任何其他方法設置和使用遠程tipc://
-class 用於跨集群計算范例。
嘗試設置和使用 M:N-冗余策略交易,在tcp://
+ tipc://
+ norm://
+ vmci://
傳輸類的混合中運行,用於互連(A x M + N x B )-節點的外系統。
嘗試設置一個系統,它要求 MetaTrader 從外部做一些工作,沒有這種技術( webrequest()
還沒有准備好接受任何“來自外部的問題”,是嗎?)
問: “與
webrequest()
function 相比有什么優缺點?”
隨時在 StackOverflow 答案中閱讀有關此內容的信息。
與 Python 集成,支持 Wine (Linux/MacOS) 中的市場和信號服務以及 MetaTrader 5 build 2085 中高度優化的策略測試器
MetaQuotes Software Corp,2019 年 6 月 14 日
在新的 MetaTrader 5 版本中,我們添加了一個 API,它可以使用 Python 高級編程語言通過應用程序請求 MetaTrader 5 終端數據。 API 包含用於機器學習、過程自動化以及數據分析和可視化的多個庫。
MetaTrader 5 與 Python 的集成
MetaTrader package for Python 旨在通過處理器間通信直接從 MetaTrader 5 高效快速地獲取交換數據。通過此路徑接收的數據可用於統計計算和機器學習。
因此,我正在尋找一種合適的解決方案,以將數據從 MetaTrader 4/5 終端定期(例如每 60 秒)發送到外部服務器,格式為 json 或 csv(如果可能)。
為此, metatrader.live可能會有所幫助。 問題只是附加一個(開源)專家顧問,並通過 JSON 或 WebSockets 或其他方式在線獲取數據。 或者您可以僅將其用作您自己的邏輯的傳輸層。 很容易。 是的,我是作者:)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.