Get active orders with the ability to filter by symbol or ticket |
Example:
import MetaTrader5 as mt5 import pandas as pd pd.set_option('display.max_columns', 500) # number of columns to be displayed pd.set_option('display.width', 1500) # max table width to display # display data on the MetaTrader 5 package print("MetaTrader5 package author: ",mt5.__author__) print("MetaTrader5 package version: ",mt5.__version__) print() # establish connection to the MetaTrader 5 terminal if not mt5.initialize(): print("initialize() failed, error code =",mt5.last_error()) quit() # display data on active orders on 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() # get the list of orders on symbols whose names contain "*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))) # display these orders as a table using 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) # shut down connection to the MetaTrader 5 terminal mt5.shutdown() Result: 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

- www.mql5.com
Get active orders with the ability to filter by symbol or ticket |
Example:
If you want to use MetaTrader 5 full potential, like event driven coding structure on the chart, or do back-testing and optimisations in the Cloud, then you will have to code in the terminal's native language which is MQL 5, and not Python. MQL 5 also runs much faster than Python.
EDIT: In Python, there is no default "Symbol()" because it is not attached to chart like in MQL. It runs outside, using MetaTrader via the API as a server, so it cannot have event driven environment that would be present if using MQL attached to a chart, with a specific symbol and time-frame.

- Free trading apps
- Over 8,000 signals for copying
- Economic news for exploring financial markets
You agree to website policy and terms of use
I am new to MT and I am trying to learn to program an EA in Python. Is there any EA sample code source for me to tamper with?
I tried to search online and see that in Python, I have to manually import the symbol first, and import its data?
Maybe I am bad at googling but, say for open a trade, in MT4, I can do this:
And the Symbol() is to be replaced with any symbol that I would run on MT4.
Does MT5 Python support the same thing? I just want a few sample or good tutorial on MT5 in Python.
Thank you.