MetaTrader 5 Python User Group - メタトレーダーでPythonを使用する方法 - ページ 20

 
capissimo:

少なくとも、すべてのケースを考慮した詳細な文書が必要です。 ユニバースの規模はそれほど大きくありません。OSはWin/Linux/MacOSの3ブランチのみです。

Microsoft ビルドツールを https://visualstudio.microsoft.com/ru/downloads/?rr=https%3A%2F%2Fwww.google.com%2F からインストール。 Python 3.8でインストールされるようになりました。この問題はSOLVED(解決済み)です。

C:\Userslabor>pip install MetaTrader5

MetaTrader5を収集する

Using cached https://files.pythonhosted.org/packages/3c/c8/713f1b8283cbbdef30dc9cf50a5d767f9b4a194eb4f886a8e50074b696a1/MetaTrader5-5.0.6.tar.gz

収集したパッケージのインストール: MetaTrader5

MetaTrader5 用の setup.py install を実行中 ...ダン

MetaTrader5-5.0.6が正常にインストールされました。


しかし!RuntimeError: IPCコールに失敗しました。

C:\Userslabor>C:Anaconda3³³³³ Metatrader5python.exe C:/Users/labor/Downloads/MetaTrader5-Python/metatrader5-test.py

[2, 'Exness-MT5Real', '0000000'] # プリントアウトではコードがゼロになる

[500, 2174, '11 Oct 2019']です。

トレースバック(直近の呼び出し)。

ファイル "C:/Users/labor/Downloads/MetaTrader5-Python/metatrader5-test.py", 行 10, in <module>.

ticks1 = MT5CopyTicksFrom("EURAUD", datetime(2019,1,28,13), 10000, MT5_COPY_TICKS_ALL)

RuntimeError: IPCコールに失敗しました。

mt5で口座にそのようなシンボルがない場合にも同じエラーが表示されます。例えば、EURPLNはターミナルにない


 
capissimo:
端末は正常に動作します。

MetaQuotes-Demoのサーバーに接続し、Help -> Check Desktop Updates -> Latest Beta Buildを選択し、更新をお待ちください。 ビルドが2174より古いか、同じである必要があります。このサーバーであなたのスクリプトを実行してみて、結果を報告してください。


PS.また、ターミナルに口座が開設 されていること、MT5TerminalInfo()が妥当な値を返すこと、MT5WaitForTerminal()がTrueを返すことを確認します。

 
Maxim Dmitrievsky:

mt5で口座にそのようなシンボルがない場合も同じエラーが発生します。例えば、EURPLNはターミナルにない


最初からこのことを考慮して、私の資産に合うようにコードを変更しましたが、うまくいきません。
 
Almaz:

MetaQuotes-Demoのサーバーに接続し、Help -> Check Desktop Updates -> Latest Beta Buildを選択し、更新をお待ちください。ビルドが2174より古いか、同じである必要があります。このサーバーであなたのスクリプトを実行してみて、結果を報告してください。


PS.また、ターミナルに口座が開設 されていること、MT5TerminalInfo()が妥当な値を返すこと、MT5WaitForTerminal()がTrueを返すことを確認します。

アカウントは開いていて、端末は動作し、パッケージからは私のパスワードなどが返ってきます。([2, 'Exness-MT5Real', '0000000' , note: password is locked) が、データ抽出の段階でエラーが発生しました。

Anaconda Pythonでも同じことが言えます(Python 3.8を停止し、Python 3.7のバージョンの1つを使用する新しいAnacondaディストリビューションをインストールして、MetaTrader5をそこにパイプしました)。

ファイル "C:\Userslabor﹑Anaconda3﹑Packages﹑Spyder_kernelsⒸCustomize.py", ライン 110, in execfile

exec(compile(f.read(), filename, 'exec'), namespace)

ファイル "C:/Users/labor/.spyder-py3/temp.py", 行 17, in <module>.

eurusd_rates = MT5CopyRatesFrom("EURUSD", MT5_TIMEFRAME_M1, datetime(2019,4,5,15), 1000)

RuntimeError: IPCコールに失敗しました。

ご覧のように、何らかのファイル操作中にMT5CopyRatesFromで躓いて います。
 

MetaTrader 5.0.7 for Pythonのアップデート版をリリースしました。

以下のようにアップデートすることができます。

pip install --upgrade matplotlib
pip install --upgrade MetaTrader5
 
MetaQuotes Software Corp.:

MetaTrader 5.0.7 for Pythonのアップデート版をリリースしました。

このように更新することができます。

何か変更は?

 
Maxim Dmitrievsky:

何か変更は?

真偽の結果を詳細な数値コードに変更する。

端末からのデータ入手待ちのモードを改善。
 
Almaz:

MetaQuotes-Demoのサーバーに接続し、Help -> Check Desktop Updates -> Latest Beta Buildを選択し、更新をお待ちください。ビルドが2174より古いか、同じである必要があります。このサーバーであなたのスクリプトを実行してみて、結果を報告してください。


PS.また、ターミナルに口座が開設 されていること、MT5TerminalInfo()が妥当な値を返すこと、MT5WaitForTerminal()がTrueを返すことを確認します。

私の端末にはビルド2190があります。端末には、スクリプトで要求されたのと同じツールがあります。スクリプトは私のブローカー名と取引コードを返します:[2, 'Exness-MT5Real', '*******'].

同じ行でパッケージの更新エラーが発生した後、エラーメッセージが変更されました: RuntimeError: Terminal: Call failed

(base) C:\Userslabor>python.exe C:/Users/labor/Downloads/MetaTrader5-Python/mt5test2.py

[2, 'Exness-MT5Real', '0000000']。

[500、2190、'18 Oct 2019】です。]

トレースバック(直近の呼び出し)。

ファイル "C:/Users/labor/Downloads/MetaTrader5-Python/mt5test2.py", 行 17, in <module>.

eurusd_rates = MT5CopyRatesFrom("EURUSD", MT5_TIMEFRAME_M1, datetime(2019,4,5,15), 1000)

RuntimeError: Terminal: コールに失敗しました。

 
capissimo:

私のターミナルにはビルド2190があります。ターミナルには、スクリプトで要求されたのと同じ計器があります。スクリプトは私のブローカー名と取引コードを返します:[2, 'Exness-MT5Real', '*******'].

MetaTrader 5.0.7 python パッケージにアップグレードして、結果を添付してください。

 
MetaQuotes Software Corp.:

MetaTrader 5.0.7 python パッケージにアップグレードして、結果を添付してください。

1) Anaconda Python 3.7.4 を使用し、仮想ベース環境で作業しています。ところで、MetaTrader 5.0.7のパッケージは、Pythonのどのバージョンに対応しているのでしょうか?

2) あなたのリクエストでPython 3.8を再度インストールし、pipを更新したところ、すでにmatplotlibのインストール段階でこのような状態になりました(stapleの全プロトコルを参照してください)。

Microsoft Windows [バージョン 10.0.17134.1069]。なんてこった...

(c) Microsoft Corporation, 2018.無断転載を禁じます。

C:\Userslabor>pip install matplotlib

matplotlibの収集

Using cached https://files.pythonhosted.org/packages/12/d1/7b12cd79c791348cb0c78ce6e7d16bd72992f13c9f1e8e43d2725a6d8adf/matplotlib-3.1.1.tar.gz

Requirement already satisfied: cycler>=0.10 in c:\python38lib╱site-packages (from matplotlib) (0.10.0)

Requirement already satisfied: kiwisolver>=1.0.1 in c:\python38libsite-packages (from matplotlib) (1.1.0)です。

Requirement already satisfied: pyparsing!=2.0.4,!=2.1.2,!=2.1.6,>=2.0.1 in c:\python38libsite-packages (from matplotlib) (2.4.2)。

Requirement already satisfied: python-dateutil>=2.1 in c:\python38libsite-packages (from matplotlib) (2.8.0)

Requirement already satisfied: numpy>=1.11 in c:\python38lib╱site-packages (from matplotlib) (1.17.3)

Requirement already satisfied: six in c:\python38⇄libsite-packages (from cycler>=0.10->matplotlib) (1.12.0)

Requirement already satisfied: setuptools in c:\python38 translated by kiwisolver>=1.0.1->matplotlib) (41.2.0)

収集したパッケージのインストール: matplotlib

matplotlibのsetup.py installを実行中 ...失態

ERROR: コマンドがエラーになり、終了ステータス 1 になりました。

command: 'c:\python38╱python.exe' -u -c'import sys, setuptools, tokenize; sys.argv[0] = '"''C:\UserslaborAppDataLocalTempip-install-unwrm6r5참setup.py''; __file__='''C:\UserslaborAppDataLocalTempip-Install-unwrm6r5참setup.py'';f=getattr(tokenize, '''open'', open)(__file__);code=f.read().replace('''\r'', '''\n''');f.close();exec(compile(code, __file__, '''exec'')' install --record 'C:\Userslabor³³AppData³³Local³³Temp³³pip-record-ly12rvmr³³install-record.txt' --single-version-externally-managed --compile

...........................................続きはファイルで

3) matplotlib を http://www.lfd.uci.edu/~gohlke/pythonlibs/ を使ってインストールし、pytz とあなたのパッケージを標準インストールしました。 同じエラーが発生しました:RuntimeError: Terminal: Call failed.クリップ2をご覧ください。

ファイル:
6ww6n.zip  7 kb
report.zip  2 kb