orders_get

アクティブな注文を取得します(銘柄またはチケットでフィルターする機能あり)。3つの呼び出しオプションがあります。

パラメータなしでの呼び出し:すべての銘柄のアクティブ注文を返します。

orders_get()

アクティブ注文を受け取る銘柄を指定した呼び出し:

orders_get(
  symbol="SYMBOL"     // 銘柄名
)

アクティブ注文を受け取る銘柄グループを指定した呼び出し:

orders_get(
  group="GROUP"        // 注文を銘柄で選択するためのフィルター
)

注文チケットを指定した呼び出し:

orders_get(
  ticket=TICKET       // チケット
)

symbol="SYMBOL"

[in]  Symbol name. 名前付きオプションパラメータ。銘柄が指定されている場合は、ticketパラメータは無視されます。

group="GROUP"

[in] 必要な銘柄のグループを配置するためのフィルター。名前付きオプションパラメータ。グループが指定されている場合、関数は銘柄名の指定された基準を満たすアクティブ注文のみを返します。

ticket=TICKET

[in]  注文チケット(ORDER_TICKET)。名前の付いたオプションパラメータ。

戻り値

名前付きタプル構造(namedtuple)の形式で情報を返します。エラーの場合はNoneを返します。エラーに関する情報はlast_error()を使用して取得できます。

注意事項

この関数を使用すると、OrdersTotalおよびOrderSelect関数を呼び出すのに似た形で1回の呼び出しですべてのアクティブ注文を受け取ることができます。

groupパラメータを使用すると、注文を銘柄で並べ替えることができます。「*」は文字列の先頭と末尾で使用できます。

groupパラメータには、複数のコンマ区切りの条件を含めることができます。条件は「*」を使用してマスクとして設定できます。論理否定記号「!」は除外に使用できます。すべての条件は順番に適用されます。つまり、グループに含める条件を最初に指定してから、除外条件を指定する必要があります。例えば、「group="*, !EUR"」では、全銘柄の注文を最初に選択してから、銘柄名に「EUR」が含まれる注文を後で除外します。

例:

import MetaTrader5 as mt5
import pandas as pd
pd.set_option('display.max_columns', 500) # 表示される列の数
pd.set_option('display.width', 1500)     # 表示する表の最高幅
# MetaTrader 5パッケージについてのデータを表示する
print("MetaTrader5 package author: ",mt5.__author__)
print("MetaTrader5 package version: ",mt5.__version__)
print()
# MetaTrader 5ターミナルとの接続を確立する
if not mt5.initialize():
   print("initialize() failed, error code =",mt5.last_error())
  quit()
 
# GBPUSDのアクティブ注文のデータを表示する
orders=mt5.orders_get(symbol="GBPUSD")
if orders is None:
  print("No orders on GBPUSD, error code={}".format(mt5.last_error()))
else:
  print("Total orders on GBPUSD:",len(orders))
   # display all active orders
  for order in orders:
      print(order)
print()
 
# *GBP*
gbp_orders=mt5.orders_get(group="*GBP*")
if gbp_orders is None:
  print("No orders with group=\"*GBP*\", error code={}".format(mt5.last_error()))
else:
  print("orders_get(group=\"*GBP*\")={}".format(len(gbp_orders)))
  # pandas.DataFrameを使用してこれらの注文を表として表示する
   df=pd.DataFrame(list(gbp_orders),columns=gbp_orders[0]._asdict().keys())
   df.drop(['time_done', 'time_done_msc', 'position_id', 'position_by_id', 'reason', 'volume_initial', 'price_stoplimit'], axis=1, inplace=True)
   df['time_setup'] = pd.to_datetime(df['time_setup'], unit='s')
  print(df)
 
# MetaTrader 5ターミナルへの接続をシャットダウンする
mt5.shutdown()
 
結果:
MetaTrader5 package author:  MetaQuotes Software Corp.
MetaTrader5 package version:  5.0.29
 
Total orders on GBPUSD: 2
TradeOrder(ticket=554733548, time_setup=1585153667, time_setup_msc=1585153667718, time_done=0, time_done_msc=0, time_expiration=0, type=3, type_time=0, ...
TradeOrder(ticket=554733621, time_setup=1585153671, time_setup_msc=1585153671419, time_done=0, time_done_msc=0, time_expiration=0, type=2, type_time=0, ...
 
orders_get(group="*GBP*")=4
     ticket          time_setup  time_setup_msc  time_expiration  type  type_time  type_filling  state  magic  volume_current  price_open   sl   tp  price_current  symbol comment external_id
0  554733548 2020-03-25 16:27:47   1585153667718                0     3          0             2      1      0             0.2     1.25379  0.0  0.0        1.16803  GBPUSD                    
1  554733621 2020-03-25 16:27:51   1585153671419                0     2          0             2      1      0             0.2     1.14370  0.0  0.0        1.16815  GBPUSD                    
2  554746664 2020-03-25 16:38:14   1585154294401                0     3          0             2      1      0             0.2     0.93851  0.0  0.0        0.92428  EURGBP                    
3  554746710 2020-03-25 16:38:17   1585154297022                0     2          0             2      1      0             0.2     0.90527  0.0  0.0        0.92449  EURGBP    

参照

orders_totalpositions_get