FXチャートに機械学習を適応させることを目的に、ソケット通信でPythonとMT4の連携を行いたいのですが、MT4でファイルを実行するとエラーコード5200(URLが無効)と出てしまいます。
参考WEBサイト→https://aifx.tech/mt4-python1/#toc1
https://www.mql5.com/en/forum/233808
のサイトより、ポートナンバーを443に変更してみたのですが、うまくいきません。
環境構築はDockerを使用しており、フレームワークはFlaskを使用しています。
ポートナンバー443に接続可能なことは確認済です。
となると、MT4のファイルになにか誤りがあるのではないかと考えているのですが、原因がつかめません。
下記にMQLのコードと.pyファイルのコードを提示致します。
MQL4
1void OnTick() 2 { 3//--- 4 static datetime prev_time = Time[0]; 5 6 // 新しい足ができていないときはなにもせずに抜ける 7 if(Time[0] == prev_time) { 8 return; 9 } 10 11 prev_time = Time[0]; 12 13 string cookie=NULL, headers; 14 char post[], result[]; 15 string format = "http://localhost:443"; 16 string request = StringFormat(format, Symbol(), TimeToStr(Time[0] , TIME_DATE | TIME_SECONDS), Open[0], High[0], Low[0], Close[0]); 17 18 int response = WebRequest("GET", request, cookie, NULL, 500, post, 0, result, headers); 19 if (response == -1) { 20 Print("Error in WebRequest. Error code =",GetLastError()); 21 } else { 22 if (response == 200) { 23 // サーバーから返ってきた値を表示する 24 Print("Return from python: " + CharArrayToString(result)); 25 } else { 26 PrintFormat("Request '%s' failed, error code %d", format, response); 27 } 28 } 29 30 }
Python
1import os 2 3from flask import Flask 4 5 6port = int(os.environ['PORT']) 7app = Flask(__name__) 8 9@app.route('/') 10def index(): 11 return 'Hello!!!' 12 13 14prev_close = -1 15 16@app.route("/reset") 17def reset(): 18 global prev_close 19 prev_close = -1 20 return "" 21 22@app.route("/ontick") 23def ontick(): 24 open = float(request.args.get('open')) 25 high = float(request.args.get('high')) 26 low = float(request.args.get('low')) 27 close = float(request.args.get('close')) 28 global prev_close 29 30 if prev_close == -1: 31 prev_close = close 32 33 print(open, high, low, close, prev_close) 34 prev_close = close 35 36 return 'OK' 37 38 39if __name__ == '__main__': 40 app.run(debug=True, host='0.0.0.0', port=port)
アドバイス、ヒント等頂けると幸いです。
また、質問の仕方等、至らない箇所があれば指摘頂けるとうれしいです。
よろしくお願い致します。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/05/01 16:46
2022/05/01 18:20
2022/05/04 13:03