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

 
Roman:

ありがとうございます。
エラーはありません。
パスは正しく表記されています。
mt5.initialize()のパスを正確に削除し、ターミナルを再起動したところ、図が表示されるようになりました。

生文字列を使うか、バックスラッシュをすべてエスケープする必要があります。

option1 = r'C:\Program Files\MetaTrader 5\terminal64.exe'
option2 = 'C:\\Program Files\\MetaTrader 5\\terminal64.exe'
 
nicholi shen:

生文字列を使うか、バックスラッシュをすべてエスケープする必要があります。

私もAlmazさんが正確なパスを求めて書かれているときに、遮蔽を考えました。はい、効果もありました。

 
Almaz :

チャート内のバーの数に制限がある場合、ターミナルでこの制限を解除する必要があります(ツール->オプション->チャート内の最大バー数)。
今後の Terminal のビルドでは、このようなリクエストを試行するとエラー (なし) が返されます。

ご指摘ありがとうございます。

MT5がすべてのデータを正しく配信するようになりました。

 

Python 3.8

ビルド2470

パッケージ 5.0.33


Orders_get 機能の不具合

注文がない場合は「NO」ではなく「RETURNS」。

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()


 
Christian:

Python 3.8

ビルド2470

パッケージ 5.0.33


Orders_get 機能の不具合

注文がない場合は「NO」ではなく「RETURNS」を返す。


すべて正常、空集合が返される - 注文がないことを示す、これはエラーではない、リクエストは正常に動作した、明示的なエラーの場合はNoneが 返される。しかし、ブローカーのサーバーにないシンボルでも空のセットを返してしまうのは、これはエラーで、修正し、次のターミナルの更新で 利用可能になります。
 
Almaz :
これは正しい。空集合が返されるのは、注文がないことを意味し、それはエラーではなく、リクエストは正常に処理された。しかし、ブローカーのサーバーにないシンボルでは空のセットを返してしまいます。これはエラーで、修正され、次のターミナルの更新で 利用できるようになります。

OK、本当に理解しているのだろうか?


答えは2種類しかない。

1.ノー

2.0より大きい長さを持つタプル


次のアセンブリで> 2470

 
Christian:

OK、本当に理解しているのだろうか?


答えは2種類しかない。

1.ノー

2.0より大きい長さを持つタプル


次のビルドでは> 2470

いいえ。

1.何らかのエラーが発生した場合、該当なし

2.長さ >=0 のタプル

 
Rashid Umarov:

いいえ。

1.何らかのエラーが発生した場合、該当なし

2.長さ >=0 のタプル

なるほど、なるほど。

Thx

 
Дмитрий Прокопьев:

mt5.terminal_info()が示すことに注意してください。

path='C:³³³ - terminals³³³³',data_path='C:³³³ - terminals³³³³',commondata_path='C:³³³³³³³³³'

は同一である。こんなんでいいのか?

そのコードは以下の通りです。

 
Almaz:

@Almaz
copy_xxx_xxx 関数を初めて実行するとき、端末がしばらく起動していない場合、
関数は履歴スワップの同期を待たずに、利用可能な結果を欠落した履歴で即座に返します。
これは、最初の関数呼び出しが、履歴を欠いた結果を返すことを意味します。
履歴を入れ替えた場合、その後の呼び出しでのみ正しい結果が返されます。
この問題を解決することは可能ですか?そして、copy_xxx_xxx関数は、最初の呼び出しで履歴が入れ替わるのを待ちます。

理由: