import MetaTrader5 as mt5
if not mt5.initialize():
print( "initialize() failed, error code =" , mt5.last_error())
quit()
orders = mt5.orders_get(symbol= "GBPUSD" )
if orders is None:
print( "No orders on GBPUSD, error code={}" .format(mt5.last_error()))
elif len(orders) > 0 :
print( "Total orders on GBPUSD:" , len(orders))
for order in orders:
print(order)
mt5.shutdown()
ありがとうございます。
エラーはありません。
パスは正しく表記されています。
mt5.initialize()のパスを正確に削除し、ターミナルを再起動したところ、図が表示されるようになりました。
生文字列を使うか、バックスラッシュをすべてエスケープする必要があります。
生文字列を使うか、バックスラッシュをすべてエスケープする必要があります。
私もAlmazさんが正確なパスを求めて書かれているときに、遮蔽を考えました。はい、効果もありました。
チャート内のバーの数に制限がある場合、ターミナルでこの制限を解除する必要があります(ツール->オプション->チャート内の最大バー数)。
今後の Terminal のビルドでは、このようなリクエストを試行するとエラー (なし) が返されます。
ご指摘ありがとうございます。
MT5がすべてのデータを正しく配信するようになりました。
Python 3.8
ビルド2470
パッケージ 5.0.33
Orders_get 機能の不具合
注文がない場合は「NO」ではなく「RETURNS」。
Python 3.8
ビルド2470
パッケージ 5.0.33
Orders_get 機能の不具合
注文がない場合は「NO」ではなく「RETURNS」を返す。
これは正しい。空集合が返されるのは、注文がないことを意味し、それはエラーではなく、リクエストは正常に処理された。しかし、ブローカーのサーバーにないシンボルでは空のセットを返してしまいます。これはエラーで、修正され、次のターミナルの更新で 利用できるようになります。
OK、本当に理解しているのだろうか?
答えは2種類しかない。
1.ノー
2.0より大きい長さを持つタプル
次のアセンブリで> 2470
OK、本当に理解しているのだろうか?
答えは2種類しかない。
1.ノー
2.0より大きい長さを持つタプル
次のビルドでは> 2470
いいえ。
1.何らかのエラーが発生した場合、該当なし
2.長さ >=0 のタプル
いいえ。
1.何らかのエラーが発生した場合、該当なし
2.長さ >=0 のタプル
なるほど、なるほど。
Thx
mt5.terminal_info()が示すことに注意してください。
path='C:³³³ - terminals³³³³',data_path='C:³³³ - terminals³³³³',commondata_path='C:³³³³³³³³³'
は同一である。こんなんでいいのか?
そのコードは以下の通りです。
@Almaz
copy_xxx_xxx 関数を初めて実行するとき、端末がしばらく起動していない場合、
関数は履歴スワップの同期を待たずに、利用可能な結果を欠落した履歴で即座に返します。
これは、最初の関数呼び出しが、履歴を欠いた結果を返すことを意味します。
履歴を入れ替えた場合、その後の呼び出しでのみ正しい結果が返されます。
この問題を解決することは可能ですか?そして、copy_xxx_xxx関数は、最初の呼び出しで履歴が入れ替わるのを待ちます。