MetaTrader 5 Python User Group - メタトレーダーでPythonを使用する方法 - ページ 85 1...7879808182838485868788 新しいコメント 削除済み 2021.02.10 22:03 #841 Sivoraksha-ia: 不思議なことに、空のテーブルも届く。Quicksilverのようにターミナル自体で何かを開いてアンロードを行う必要はないのですね。 任意のペアのチャート(ティックの場合)。 yuribr 2021.02.11 13:27 #842 皆さん、こんにちは。 Python API を使用して order_send() リクエストの後に返されるOrderSendResult 構造体について問題があります。返されるフィールドの1つは「コメント」であり、取引に関するブローカーのコメントが含まれている必要があります。しかし、このフィールドは、本来であればブローカーが返すべきものではなく、リクエストに渡されたものと同じコメントを返します。 このエラーを再現するには、次のようにします。 1.コメントが得られるクエリを作成します。comment "クエリにダミーのコメントを記入する。 2.Python API の order_send() コマンドを使用して、リクエストを送信します。 3.返されたorderSendResultオブジェクトで、"comment "フィールドを確認してください。 コメント」欄には、ブローカーから返されたコメントがあるはずですが、同じコメントが渡されます。このコメントは、MT5ターミナルの「ログ」タブで確認することができます。 どなたかご確認ください。ブローカーからコメントをもらう方法はないのでしょうか? Документация по MQL5: Торговые функции / OrderSend www.mql5.com OrderSend - Торговые функции - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5 Rashid Umarov 2021.02.15 16:07 #843 Vladimir Perervenko:ドキュメンテーションに説明を追加してもらえますか? 追加 マーケット_ブック_アド market_book_get マーケット_ブックリリース Документация по MQL5: Интеграция / MetaTrader для Python / market_book_add www.mql5.com market_book_add - MetaTrader для Python - Интеграция - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5 Dmitri Custurov 2021.02.26 14:03 #844 pythonで仮想貿易会計を開催したい。異なる取引戦略の特徴を識別するために必要なのです。使用するブローカーは、オトクリティです。網目はありません。楽器の位置、Stop、Takeの位置が共通である。私はこうすることに決めました。どんな戦略でも、どんな数量でも、どんな市場でも、ストップもテイクもなしで、取引を開始します。その代わり、同じ大きさのストップとリミットオーダーを出した。表の中の順番は別に記憶しています。一定期間ごとに、orders = mt5.orders_get(symbol=symb) を置き、既知のチケットorders.ticket.tolist()のリストを取得します。 そして、自分のトレードテーブルを調べ、受け取ったオープンオーダーのリストにストップオーダーやリミットオーダーのチケットがまだ存在するかどうかをチェックします。ストップロスがない場合は、ストップロスが仮想的に発動したことを意味し、指値がない場合は、テイクプロフィットを意味します。それから、この取引のエントリーをテーブルから削除し、この取引の残りの保留中の注文を削除します。そして、1つを除いてすべてがうまくいきました。この取引の仮想利益をどのように計算すればいいのかわかりません。画像では141430に売りのストップが設定されていますが、実際にはスリッページが発生し、建値は141350となっています。私はトリガーされた位置の要求を要求する:取引= mt5.history_orders_get(ticket=246525084) (このチケットは配置時にシステムによって記憶されている)、しかし返信で私はその配置についての情報のみ、注文場所に関する情報を見ることはありません。履歴を見ると、チケット15215696で本当に売りのストップが実行されており、このチケットで正しい価格を求めることができます。でも、その前にトレードのチケットを探さないといけないんです。このチケットと保留中の注文チケット(売りストップ)を一致させるにはどうすればよいですか? Dmitri Custurov 2021.03.01 18:17 #845 質問を進めさせていただきました。クローズしたポジションの履歴 mt5.history_deals_get をリクエストすることで、注文の中からクローズしたポジションのチケットとその約定価格を見つけることができるんだ。パラメータで時間範囲を指定するとうまくいくのですが。また、注文のチケットを渡して同じ関数を呼び出します -mt5. history_deals_get(ticket=TICKET) - しかし、応答は (-2, 'Terminal: Invalid params') です。このパラメータを指定した関数は動作するのでしょうか? Dmitri Custurov 2021.03.02 08:10 #846 開発者の皆様、前回の質問についてコメントをお願いします。history_deals_get(ticket=TICKET) 関数が動作しない。応答は常に(-2, 'Terminal: Invalid params') です。同じ関数でパラメータが異なるhistory_deals_get(position=POSITION) は動作しますが、チケットオーダーでトレードを見つける必要があります。 Maxim Dmitrievsky 2021.03.18 13:36 #847 履歴にアクセスできるpython apiのニュースカレンダーを作って、調べ物をすることは可能でしょうか? Roman Zhitnik 2021.04.07 08:43 #848 拝啓、MOEXで お取引されている方いらっしゃいますか?端末への接続を初期化すると、サーバーに再接続され、証明書のパスワードを要求されるのと同じ問題を持つ人はいますか? Документация по MQL5: Интеграция / MetaTrader для Python / initialize www.mql5.com initialize - MetaTrader для Python - Интеграция - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5 alex17127 2021.04.08 11:36 #849 order_send とorder_check は None を返す。どこを見ればいいのかわからない。何が問題なのか、教えてください。お願いします。 コード import MetaTrader5 as mt if not mt.initialize(login=12345):# print("initialize() failed") mt.shutdown() terminal_info=mt.terminal_info() if terminal_info!=None: print(f"terminal {'''connected''' if terminal_info.connected else '''disconnected'''}") print("version: ",mt.version()) info = mt.symbol_info("Si-6.21") print(f"Si-6.21 {info.bid=} {info.ask=}") request = { "action": mt.TRADE_ACTION_PENDING, "symbol": "Si-6.21", "volume": 1, "type": mt.ORDER_TYPE_BUY_LIMIT, "price": 77300, "sl": 0, "tp": 0, "deviation": 0, "magic": 123, "comment": "test", "type_time": mt.ORDER_TIME_DAY, "type_filling": mt.ORDER_FILLING_RETURN, } check = mt.order_check(request) print("order check: ",check) ret = mt.order_send(request) print("order send: ", ret) if not ret is None: print(f" retcode:{ret.retcode}") 出力 terminal connected version: (500, 2875, '02 Apr 2021') Si-6.21 info.bid=77770.0 info.ask=77773.0 order check: None order send: None Process finished with exit code 0 なんとか問題を解決することができました。リクエストのvolume, price, sl, tpフィールドはfloat型でなければならない。次のような仕組みになっています。 request = { "action": mt.TRADE_ACTION_PENDING, "symbol": "Si-6.21", "volume": 1., "type": mt.ORDER_TYPE_BUY_LIMIT, "price": 77300., "sl": 0., "tp": 0., "deviation": 0, "magic": 123, "comment": "test", "type_time": mt.ORDER_TIME_DAY, "type_filling": mt.ORDER_FILLING_RETURN, } Ernesto Che 2021.05.22 05:28 #850 同僚の方、アドバイスお願いします。 1.Pythonでmt5から計測器ごとに利用可能な取引セッション間隔を引き出し、定期的に更新するにはどうすればよいですか? 2.オープンポジションの トレーリングストップを要求し、変更するためのメソッドがライブラリにあることを期待しますか? 1...7879808182838485868788 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
不思議なことに、空のテーブルも届く。Quicksilverのようにターミナル自体で何かを開いてアンロードを行う必要はないのですね。
任意のペアのチャート(ティックの場合)。
どなたかご確認ください。ブローカーからコメントをもらう方法はないのでしょうか?
ドキュメンテーションに説明を追加してもらえますか?
追加
pythonで仮想貿易会計を開催したい。異なる取引戦略の特徴を識別するために必要なのです。使用するブローカーは、オトクリティです。網目はありません。楽器の位置、Stop、Takeの位置が共通である。私はこうすることに決めました。どんな戦略でも、どんな数量でも、どんな市場でも、ストップもテイクもなしで、取引を開始します。その代わり、同じ大きさのストップとリミットオーダーを出した。表の中の順番は別に記憶しています。一定期間ごとに、orders = mt5.orders_get(symbol=symb) を置き、既知のチケットorders.ticket.tolist()のリストを取得します。
そして、自分のトレードテーブルを調べ、受け取ったオープンオーダーのリストにストップオーダーやリミットオーダーのチケットがまだ存在するかどうかをチェックします。ストップロスがない場合は、ストップロスが仮想的に発動したことを意味し、指値がない場合は、テイクプロフィットを意味します。それから、この取引のエントリーをテーブルから削除し、この取引の残りの保留中の注文を削除します。そして、1つを除いてすべてがうまくいきました。この取引の仮想利益をどのように計算すればいいのかわかりません。画像では141430に売りのストップが設定されていますが、実際にはスリッページが発生し、建値は141350となっています。私はトリガーされた位置の要求を要求する:取引= mt5.history_orders_get(ticket=246525084) (このチケットは配置時にシステムによって記憶されている)、しかし返信で私はその配置についての情報のみ、注文場所に関する情報を見ることはありません。履歴を見ると、チケット15215696で本当に売りのストップが実行されており、このチケットで正しい価格を求めることができます。でも、その前にトレードのチケットを探さないといけないんです。このチケットと保留中の注文チケット(売りストップ)を一致させるにはどうすればよいですか?
order_send とorder_check は None を返す。どこを見ればいいのかわからない。何が問題なのか、教えてください。お願いします。
コード
出力
なんとか問題を解決することができました。リクエストのvolume, price, sl, tpフィールドはfloat型でなければならない。次のような仕組みになっています。
同僚の方、アドバイスお願いします。
1.Pythonでmt5から計測器ごとに利用可能な取引セッション間隔を引き出し、定期的に更新するにはどうすればよいですか?
2.オープンポジションの トレーリングストップを要求し、変更するためのメソッドがライブラリにあることを期待しますか?