Python является современным высокоуровневым языком программирования для разработки сценариев и приложений. Содержит множество библиотек для машинного обучения, автоматизации процессов, анализа и визуализации данных. Пакет MetaTrader для Python предназначен для...
次のベータ版は今夜公開予定です。
https://www.mql5.com/en/forum/306742/page16#comment_16148685
スタートスクリプトを実行してみると、すべてが実行され、例の取引ペアのデータの配列がプリントされ、チャートが描画されるウィンドウが実行されます。
しかし、例えば「EURAUD」を「DAX30」に置き換えてみたところ、スクリプトを実行した後に「Failed to select DAX30」と表示されました。
何が問題なのか、アドバイスをお願いします。端子バージョン2402
mt5.initializeでブローカーのデモ口座にログインとパスワード、サーバーで接続を行う。
https://www.mql5.com/ru/docs/integration/python_metatrader5
スタートスクリプトを実行してみると、すべてが実行され、例の取引ペアのデータの配列がプリントされ、チャートが描画されるウィンドウが実行されます。
しかし、例えば「EURAUD」を「DAX30」に置き換えてみたところ、スクリプトを実行した後に、「Failed to select DAX30」と表示されました。
何が問題なのか、アドバイスをお願いします。端子バージョン2402
mt5.initializeでブローカーのデモ口座にログインパスワードとサーバーで接続します。
# MarketWatchでDAX30のシンボルを表示できるようにしてみる
selected = mt5.symbol_select("DAX30", True)
if not selected:
print("初期化() 失敗, エラーコード = ", mt5 .last_error())
mt5 .shutdown()
quit()
これはエラーです (-1, 'ターミナル: コールに失敗しました')
# MarketWatchでDAX30のシンボルを有効にしてみる
selected = mt5.symbol_select("DAX30", True)
を選択しない場合 。
print("initialize() failed, error code = ", mt5 .last_error())
mt5 .shutdown()
終了
これはエラーです (-1, 'ターミナル: コールに失敗しました')
取引口座にDAX30のシンボルがあるのは間違いないですか?
取引口座でこのシンボルを使ったマーケット概観のスクリーンショットを見せてください。
取引口座にDAX30のシンボルがあるのは間違いないですか?
取引口座にあるこのシンボルのマーケット概観のスクリーンショットを見せてください。
***
私はこのコード -https://www.mql5.com/ru/docs/integration/python_metatrader5/mt5copyratesrange_py、 私のデモ口座に 接続して初期化します。例題のUSDJPYで実行すると、すべてOKで、テーブルが表示されます。DAX30に変更した場合
レートにおけるレートについて。
TypeError: 'NoneType' オブジェクトは反復可能ではありません。
https://prnt.sc/sbapam
このコードをデモ口座 につないで初期化します。例題のUSDJPYで実行すると、すべてOKで、テーブルが表示されます。DAX30に変更した場合
レートにおけるレートについて。
TypeError: 'NoneType' オブジェクトは反復可能ではありません。
# MarketWatchでDAX30のシンボルを表示できるようにしてみる
selected = mt5.symbol_select("DAX30", True)
を選択しない場合 。
print("initialize() failed, error code = ", mt5 .last_error())
mt5 .shutdown()
終了
このようなエラー (-1, 'Terminal: Call failed') が発生します。
Dax30が角括弧で囲まれていますね。 出されているエラーは正しいです。
うっ、気にしたことなかったよ、ありがとう。
そして、サードパーティ言語、特にPythonにロジックを移管する機会を与えてくれた開発者に感謝します。
ロジックの解析や実装が進むと、ここにフィードバックしていこうと思います。
皆さん、こんにちは。
このような場合、私は、あなたがここにイギリス人の男性を気にしないことを望みます。 ウェブで検索しても成功しない多くの時間を過ごした後、いくつかのガイダンスを探しています。
Maxiumsの記事からヒントを得て、MetaTrader5のPythonライブラリを使用しています。 メモリ処理に問題があることに気づきました。
mt5 libを使用してDataframeを作成すると、結果のDataframeは期待通りに動作します。 私はこれを、ティックを収集し、様々な分析を行った後、操作したdfを出力する関数 内で行いました。
しかし、DataFrameを作成する関数を再実行すると、前のインスタンスからメモリが蓄積され続けていることに気づきました。
mt5.copy_ticks_range () と mt5.copy_rates_range () を使用しても同じ問題が発生します。 メモリをクリアするためにカーネルをリセットする必要があるんだ。
データフレームを作成する行以外のコードをすべて削除しても、同じ問題が発生します。 例えば、こんな感じです。
def vel (symbol, lookback, lookforward, start_date, end_date, quantile_size):
ticks = pd.DataFrame (mt5.copy_ticks_range (symbol, datetime (start_date.year, start_date.month, start_date.day), datetime (end_date.year, end_date.month, end_date.day), mt5.COPY_TICKS_ALL), columns = [ 'time', 'bid', 'ask', 'last', 'volume', 'time_msc', 'flags', 'volume_real' ] ).
これを何回か実行すると、メモリ使用量が毎回27MiBずつ増えていく。
Line # Mem usage Increment Line Contents ====================== 126.3 MiB 126.3 MiB def vel (symbol, lookback, lookforward, start_date, end_date, quantile_size): 153.3 MiB 26.9 MiB ticks = pd.DataFrame (mt5.copy_ticks_range (symbol, datetime (start_date.year, start_date.month, start_date.day), .
行番号 メモ使用量 インクリメント行内容