125 lines
5.8 KiB
Markdown
125 lines
5.8 KiB
Markdown
# orders_get
|
||
|
||
Get active orders with the ability to filter by symbol or ticket. There are three call options.
|
||
|
||
Call without parameters. Return active orders on all symbols.
|
||
|
||
```
|
||
orders_get()
|
||
|
||
```
|
||
|
||
Call specifying a symbol active orders should be received for.
|
||
|
||
```
|
||
orders_get(
|
||
symbol="SYMBOL" // symbol name
|
||
)
|
||
|
||
```
|
||
|
||
Call specifying a group of symbols active orders should be received for.
|
||
|
||
```
|
||
orders_get(
|
||
group="GROUP" // filter for selecting orders for symbols
|
||
)
|
||
|
||
```
|
||
|
||
Call specifying the order ticket.
|
||
|
||
```
|
||
orders_get(
|
||
ticket=TICKET // ticket
|
||
)
|
||
|
||
```
|
||
|
||
symbol="SYMBOL"
|
||
|
||
[in] Symbol name. Optional named parameter. If a symbol is specified, the ticket parameter is ignored.
|
||
|
||
group="GROUP"
|
||
|
||
[in] The filter for arranging a group of necessary symbols. Optional named parameter. If the group is specified, the function returns only active orders meeting a specified criteria for a symbol name.
|
||
|
||
ticket=TICKET
|
||
|
||
[in] Order ticket ([ORDER_TICKET](/en/docs/constants/tradingconstants/orderproperties#enum_order_property_integer)). Optional named parameter.
|
||
|
||
Return Value
|
||
|
||
Return info in the form of a named tuple structure (namedtuple). Return None in case of an error. The info on the error can be obtained using [last_error()](/en/docs/python_metatrader5/mt5lasterror_py).
|
||
|
||
Note
|
||
|
||
The function allows receiving all active orders within one call similar to the [OrdersTotal](/en/docs/trading/orderstotal) and [OrderSelect](/en/docs/trading/orderselect) tandem.
|
||
|
||
The group parameter allows sorting out orders by symbols. '*' can be used at the beginning and the end of a string.
|
||
|
||
The group parameter may contain several comma separated conditions. A condition can be set as a mask using '*'. The logical negation symbol '!' can be used for an exclusion. All conditions are applied sequentially, which means conditions of including to a group should be specified first followed by an exclusion condition. For example, group="*, !EUR" means that orders for all symbols should be selected first and the ones containing "EUR" in symbol names should be excluded afterwards.
|
||
|
||
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
|
||
|
||
```
|
||
|
||
See also
|
||
|
||
[orders_total](/en/docs/python_metatrader5/mt5orderstotal_py), [positions_get](/en/docs/python_metatrader5/mt5positionsget_py)
|