MT5Account · Symbols and Market — Overview¶
Quick map of symbols, sessions, and market‑book APIs. Use this page to pick the right call fast. Links jump to detailed specs.
📁 What lives here¶
- symbols_total — count of all symbols vs Market Watch only.
- symbol_name — resolve symbol name by index (all vs selected list).
- symbol_exist — does a symbol exist? Is it custom?
- symbol_select — add/remove a symbol to/from Market Watch.
- symbol_is_synchronized — is the symbol synced in terminal.
- symbol_info_tick — latest tick (Bid/Ask/Last, volumes, time, flags).
- symbol_info_double — one double prop (enum:
SymbolInfoDoubleProperty
). - symbol_info_integer — one integer prop (enum:
SymbolInfoIntegerProperty
). - symbol_info_string — one string prop (enum:
SymbolInfoStringProperty
). - symbol_info_margin_rate — margin rates by order type (enum:
BMT5_ENUM_ORDER_TYPE
). - symbol_info_session_quote — quote session window (enum:
DayOfWeek
). - symbol_info_session_trade — trading session window (enum:
DayOfWeek
). - symbol_params_many — paged directory of symbol parameters (enum:
AH_SYMBOL_PARAMS_SORT_TYPE
). - tick_value_with_size — batch tick value/size/contract per symbol.
- market_book_add — subscribe to Level II (DOM) for a symbol.
- market_book_get — fetch DOM snapshot (bids/asks ladder).
- market_book_release — unsubscribe from Level II (DOM).
🧭 Plain English¶
- symbols_total → the headcount of symbols (all vs Market Watch).
- symbol_name → walk lists by index without fetching everything.
- symbol_exist / symbol_is_synchronized / symbol_select → the sanity trio: existence, readiness, and watch‑list toggle.
- symbol_info_ (double/integer/string)* → one property** on demand; cheap and precise.
- symbol_info_tick → your now price snapshot with age/flags.
- symbol_info_session_quote/trade → when quotes/trading are allowed per weekday & session.
- symbol_params_many → paged catalog to build tables and validators.
- tick_value_with_size → bulk tick economics (tick value/size/contract).
- market_book_add/get/release → Level II lifecycle: subscribe → read → release.
Rule of thumb: need just one field →
symbol_info_*
. Need many rows →symbol_params_many
ortick_value_with_size
. Need depth →market_book_*
.
Quick choose¶
If you need… | Use | Returns | Key inputs (enums) |
---|---|---|---|
Count symbols | symbols_total |
SymbolsTotalData { total } |
selected_only: bool |
Resolve name by index | symbol_name |
SymbolNameData { name } |
index: int , selected: bool |
Check symbol existence / custom | symbol_exist |
SymbolExistData |
symbol: str |
Ensure Market Watch membership | symbol_select |
SymbolSelectData |
symbol: str , select: bool |
Check sync state | symbol_is_synchronized |
SymbolIsSynchronizedData |
symbol: str |
Latest tick snapshot | symbol_info_tick |
SymbolInfoTickData |
symbol: str |
One double property (e.g., BID, POINT) | symbol_info_double |
SymbolInfoDoubleData { value } |
property: SymbolInfoDoubleProperty |
One integer property (e.g., DIGITS) | symbol_info_integer |
SymbolInfoIntegerData { value } |
property: SymbolInfoIntegerProperty |
One string property (e.g., DESCRIPTION) | symbol_info_string |
SymbolInfoStringData { value } |
property: SymbolInfoStringProperty |
Margin rates by order type | symbol_info_margin_rate |
SymbolInfoMarginRat |
order_type: BMT5_ENUM_ORDER_TYPE |
Quote session window | symbol_info_session_quote |
SymbolInfoSessionQuoteData |
day_of_week: DayOfWeek , session_index: uint32 |
Trading session window | symbol_info_session_trade |
SymbolInfoSessionTradeData |
day_of_week: DayOfWeek , session_index: uint32 |
Paged symbol parameters | symbol_params_many |
SymbolParamsManyData |
sort_type: AH_SYMBOL_PARAMS_SORT_TYPE , paging |
Bulk tick value/size/contract | tick_value_with_size |
TickValueWithSizeData |
symbols: list[str] |
Subscribe to Level II | market_book_add |
MarketBookAddData |
symbol: str |
Snapshot Level II | market_book_get |
MarketBookGetData |
symbol: str |
Unsubscribe Level II | market_book_release |
MarketBookReleaseData |
symbol: str |
❌ Cross‑refs & gotchas¶
- Select & sync before data:
symbol_select
+symbol_is_synchronized
help avoid empty ticks/books. - UTC timestamps everywhere (including session windows). Convert once.
- Server‑side enums control behavior: always pass the correct enum for
symbol_info_*
and sessions. - Market book depth varies by broker/symbol; arrays may be short or empty.
- Batch wisely:
tick_value_with_size
andsymbol_params_many
reduce RPC chatter for tables.
🟢 Minimal snippets¶
# Ensure selected & synced, then get a fresh tick
from MetaRpcMT5 import mt5_term_api_market_info_pb2 as mi_pb2
s = "EURUSD"
if not (await acct.symbol_is_synchronized(s)).is_synchronized:
await acct.symbol_select(s, True)
_ = await acct.symbol_is_synchronized(s)
print((await acct.symbol_info_tick(s)).Bid)
# One property (double) — POINT
from MetaRpcMT5 import mt5_term_api_market_info_pb2 as mi_pb2
pt = await acct.symbol_info_double("XAUUSD", mi_pb2.SymbolInfoDoubleProperty.SYMBOL_POINT)
print(pt.value)
# DOM: subscribe → get → release
await acct.market_book_add("BTCUSD")
book = await acct.market_book_get("BTCUSD")
await acct.market_book_release("BTCUSD")