記事"MetaTrader5 と Python インテグレーション: データの受信と送信"についてのディスカッション - ページ 10

削除済み  
Maxim Dmitrievsky:
前回の記事の例を見てほしい。ここでは古いバージョンのパッケージが使われている。もちろん、最初にpip installでインストールする必要があります。

ありがとう、マキシム。質問の前から例を見ていました )))しかし、私の経験ではすぐに違いに気づくことができません。でも勉強します )))

 
皆さん、質問するのは気が引けるのですが(愚問だと思うのですが)、この SocketCreate()は Strategies Testerの 方法を知っているのでしょうか?
 
immediacy:
皆さん、質問するのは気が引けるのですが(バカげた質問だと思うのですが)、この SocketCreate()は Strategies Testerの 使い方を知っているのでしょうか?

いいえ

 

こんにちは!socketserverを起動すると以下のエラーが発生します。)

トレースバック(最も最近の呼び出しの最後):

File "C:C:{pythonSocket_client-server }Socket client-server }socketserver.py", line 48, in <module
serv = socketserver('127.0.0.1', 9090)
ファイル "C:C:⦅python⦆Socket_client-server⦆ client-server⦆socketsserver.py", 行 15, in __init__
self.sock.bind((self.adress, self.port)))
AttributeError: 'socketserver' オブジェクトには 'adress' 属性がありません。
>>>
 

こんにちは、興味深い記事ですね。ありがとう。


疑問に思ったことがあります。なぜサーバーをPythonで、EAをMT5のクライアントとして実装することにしたのですか?


サーバーはMT5のEAとしてデータを提供し、トレーダーを実行 し、クライアントはPythonでデータを処理し、サーバーに送信される取引を決定する方が自然ではないでしょうか?


クライアントを EA として使用し、サーバーを python で使用する明らかな利点はありますか?



私の記憶が正しければ、ZeroMQの過去の経験から、サーバーはMT5のEAで、クライアントはpythonでした。

 
yogibass:

マキシム・ドミトリエフスキー

これを使えるようにしてくれてありがとう。このスレッドを立ち上げてから、リアルタイムの先物データにアクセスできるようになり、それを使ってインジケータを開発・実行できるようになりました。Pythonを使ってライブフィードをプロットし、分析し、MT5プラットフォームを通じて取引を行います。PythonがMTコミュニティに受け入れられることを願っています。

ありがとうございます!

こんにちは、apiを使ってMT5とライブデータを接続したいです。私の国では、mt5をサポートしている公認ブローカーやデータベンダーがありません。助けてください。
 
Maxim Dmitrievsky #:

Hi, sockets don't work in tester at this time. Also, you mus add localhost to allowed webrequests in mt5 settings



localhostを追加しても、エラー'4014'が表示されます。

 

詳しい説明をありがとうございました。

質問があります:

.ex5タイプのスクリプトをpython環境でコマンドによって実行することは可能でしょうか?

私はpythonを通してそれを実行し、スクリプトはエクセルファイルに結果を保存したいので、私は私のウェブサイトやアンドロイドプログラムで再びエクセルのデータを使用することができます。

ありがとうございました。

 
こんにちは、マキシム。
Pythonとmt5の統合に関するあなたの記事は、私がこのトピックに深く飛び込むことを促しました。私はPythonでライブラリのほとんどすべての関数を使って多くのことを書きました。
Pythonで計算したものをmt5のチャートに描画する必要が出てきました。ソケット経由の通信に関するあなたのコードをベースにして、私は次のシナリオを書きました:チャートの隅をクリックすると、mt5はfibsとchannelsを描画するためのデータの リクエストを送信します。あなたの例ではpythonは2つの値を返しますが、私はそれぞれ3つの座標点を持つ最大12の異なる構造体のデータを返さなければなりません。
最初は、mt5が一度にすべての構造を記述した長い文字列を返さないという事実に行き詰まりました。いくつかの短いクエリを通して交換を行った。すべてうまくいっているように見えるが、時々である。
タイムアウトの設定に問題があるようです。解決策を見つけるための方向性を教えていただけませんか?
よろしくお願いします。
 

こんにちは!


Pythonでこのコードを実行しようとしているのですが、エラーが出続けています:


以下は私のコードですが、エラーになります:


>>> データをデータフレームにコピーしている

>>> d = pd.DataFrame()

>>> for i in sym:

... rates = mt.copy_rates_from_pos(i, mt.TIMEFRAME_M1, 0, 1000)

ファイル "<stdin>", 行 2

レート = mt.copy_rates_from_pos(i, mt.TIMEFRAME_M1, 0, 1000)

^

IndentationError: 予想されるインデントされたブロック

>>> d[i] = [y.close for y in rates] >>> d[i] = [y.close for y in rates

トレースバック(最も最近の呼び出しが最後):

ファイル "<stdin>", 行 1, in <module>

ファイル "<stdin>", 行 1, in <listcomp

AttributeError: 'numpy.void' オブジェクトに 'close' 属性がありません。


# sbcapitalfx Heat Map - version 1.0



import MetaTrader5 as mt

import pandas as pd

from datetime import datetime

import matplotlib.pyplot as plt



# Initializing MT5 connection 



mt.initialize()



login = ************

password = ' ************ '

server = 'MetaQuotes-Demo'



mt.login(login,password,server)



# Create currency watchlist for which correlation matrix is to be plotted

sym = ['EURUSD','USDJPY','USDCHF','USDNZD']



# Copying data to dataframe

d = pd.DataFrame()

for i in sym:

        rates = mt.copy_rates_from_pos(i, mt.TIMEFRAME_M1, 0, 1000)

        d[i] = [y.close for y in rates]