forked from rosh/MQL5Book
50 lines
2.7 KiB
Python
50 lines
2.7 KiB
Python
#+------------------------------------------------------------------+
| |||
#| historyordersget.py |
| |||
#| Copyright 2022, MetaQuotes Ltd. |
| |||
#| https://www.mql5.com |
| |||
#+------------------------------------------------------------------+
| |||
from datetime import datetime
| |||
import MetaTrader5 as mt5
| |||
import pandas as pd
| |||
pd.set_option('display.max_columns', 500) # сколько столбцов показываем
| |||
pd.set_option('display.width', 1500) # макс. ширина таблицы для показа
| |||
print()
| |||
| |||
# установим подключение к терминалу MetaTrader 5
| |||
if not mt5.initialize():
| |||
print("initialize() failed, error code =", mt5.last_error())
| |||
quit()
| |||
| |||
# получим количество ордеров в истории (всего и по *GBP*)
| |||
from_date = datetime(2022, 9, 1)
| |||
to_date = datetime.now()
| |||
total = mt5.history_orders_total(from_date, to_date)
| |||
history_orders=mt5.history_orders_get(from_date, to_date, group="*GBP*")
| |||
# print(history_orders)
| |||
if history_orders == None:
| |||
print("No history orders with group=\"*GBP*\", error code={}".format(mt5.last_error()))
| |||
else :
| |||
print("history_orders_get({}, {}, group=\"*GBP*\")={} of total {}".format(from_date, to_date, len(history_orders), total))
| |||
| |||
# выведем все отмененные исторические ордера по тикету позиции 0
| |||
position_id = 0
| |||
position_history_orders = mt5.history_orders_get(position = position_id)
| |||
if position_history_orders == None:
| |||
print("No orders with position #{}".format(position_id))
| |||
print("error code =", mt5.last_error())
| |||
elif len(position_history_orders) > 0:
| |||
print("Total history orders on position #{}: {}".format(position_id,len(position_history_orders)))
| |||
# выведем полученные ордера как есть
| |||
for position_order in position_history_orders:
| |||
print(position_order)
| |||
print()
| |||
# выведем эти ордера в виде таблицы с помощью pandas.DataFrame
| |||
df = pd.DataFrame(list(position_history_orders), columns = position_history_orders[0]._asdict().keys())
| |||
df.drop(['time_expiration','type_time','state','position_by_id','reason','volume_current','price_stoplimit','sl','tp', 'time_setup_msc', 'time_done_msc', 'type_filling', 'external_id'], axis = 1, inplace = True)
| |||
df['time_setup'] = pd.to_datetime(df['time_setup'], unit='s')
| |||
df['time_done'] = pd.to_datetime(df['time_done'], unit='s')
| |||
print(df)
| |||
| |||
# завершим подключение к терминалу MetaTrader 5
| |||
mt5.shutdown()
| |||
#+------------------------------------------------------------------+
|