簡體   English   中英

有人如何將數據從 MetaTrader 4/5 終端發送到外部服務器?

[英]How can someone send data from MetaTrader 4/5 Terminal to external server?

這在某種程度上旨在(可能)成為(來)關於 MetaTrader 4/5 及其相應語言 MQL4 的指南帖子,兩者都設置為將數據發送到外部服務器的上下文。

在我的特殊情況下,我正在構建一個基於 Django/Python 的 web 應用程序,它將處理外匯交易數據以供進一步使用。

因此,我正在尋找一種合適的解決方案,以將數據從 MetaTrader 4/5 終端定期(例如每 60 秒)發送到外部服務器,格式為jsoncsv (如果可能)。 特別是,要發送的數據是賬戶交易歷史和運行+待定交易集。

經過研究,我基本上發現了以下方法:

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.

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