β Symbol Info String¶
Request: get a string property of a symbol (e.g., DESCRIPTION, CURRENCY_*, PATH, ISIN, FORMULA) via a single RPC.
Source files:
MetaRpcMT5/mt5_account.pyβ methodsymbol_info_string(...)MetaRpcMT5/mt5_term_api_market_info_pb2.pyβSymbolInfoString*messages (SymbolInfoStringRequest,SymbolInfoStringReply,SymbolInfoStringData) and enumSymbolInfoStringPropertyMetaRpcMT5/mt5_term_api_market_info_pb2_grpc.pyβ service stubMarketInfoStub
RPC¶
- Service:
mt5_term_api.MarketInfo - Method:
SymbolInfoString(SymbolInfoStringRequest) β SymbolInfoStringReply - Low-level client:
MarketInfoStub.SymbolInfoString(request, metadata, timeout) - SDK wrapper:
MT5Account.symbol_info_string(symbol, property, deadline=None, cancellation_event=None)
π Code Example¶
# Get human-readable description
from MetaRpcMT5 import mt5_term_api_market_info_pb2 as mi_pb2
desc = await acct.symbol_info_string(
"EURUSD",
mi_pb2.SymbolInfoStringProperty.SYMBOL_DESCRIPTION,
)
print(desc.value)
Method Signature¶
async def symbol_info_string(
self,
symbol: str,
property: market_info_pb2.SymbolInfoStringProperty,
deadline: datetime | None = None,
cancellation_event: asyncio.Event | None = None,
) -> market_info_pb2.SymbolInfoStringData
π¬ Plain English¶
- What it is. Direct read of a string field for a symbol.
- Why you care. Ideal for UI labels, grouping, compliance (ISIN), and custom symbol metadata.
π½ Input¶
| Parameter | Type | Description | |
|---|---|---|---|
symbol |
str (required) |
Symbol name (maps to symbol in request). |
|
property |
SymbolInfoStringProperty (required) |
Which string property to retrieve (see enum). | |
deadline |
`datetime | None` | Absolute perβcall deadline β converted to timeout. |
cancellation_event |
`asyncio.Event | None` | Cooperative cancel for the retry wrapper. |
Request message:
SymbolInfoStringRequest { symbol: string, type: SymbolInfoStringProperty }
β¬οΈ Output¶
Payload: SymbolInfoStringData¶
| Field | Proto Type | Description |
|---|---|---|
value |
string |
The string value for the property. |
Wire reply:
SymbolInfoStringReply { data: SymbolInfoStringData, error: Error? }SDK returnsreply.data.
Enum: SymbolInfoStringProperty¶
Full list from pb:
SYMBOL_BASISSYMBOL_CATEGORYSYMBOL_COUNTRYSYMBOL_SECTOR_NAMESYMBOL_INDUSTRY_NAMESYMBOL_CURRENCY_BASESYMBOL_CURRENCY_PROFITSYMBOL_CURRENCY_MARGINSYMBOL_BANKSYMBOL_DESCRIPTIONSYMBOL_EXCHANGESYMBOL_FORMULASYMBOL_ISINSYMBOL_PAGE
π― Purpose¶
- Populate UI labels and metadata (description, path, page link).
- Show/account currencies (base/profit/margin) for calculators.
- Compliance fields like ISIN for securities.
π§© Notes & Tips¶
- For pricing and lot economics, combine with
symbol_info_double(...)ortick_value_with_size(...). - For modes/flags (trade/order/filling), see
symbol_info_integer(...).
See also: symbol_info_double.md, symbol_info_integer.md, symbol_info_tick.md
Usage Examples¶
1) Get path and group by folders¶
from MetaRpcMT5 import mt5_term_api_market_info_pb2 as mi_pb2
p = await acct.symbol_info_string("EURUSD", mi_pb2.SymbolInfoStringProperty.SYMBOL_PATH)
folders = p.value.split("\\\\") # ['Forex', 'Majors', 'EURUSD']
print(folders)
2) Currency triplet¶
from MetaRpcMT5 import mt5_term_api_market_info_pb2 as mi_pb2
base = await acct.symbol_info_string("XAUUSD", mi_pb2.SymbolInfoStringProperty.SYMBOL_CURRENCY_BASE)
profit = await acct.symbol_info_string("XAUUSD", mi_pb2.SymbolInfoStringProperty.SYMBOL_CURRENCY_PROFIT)
margin = await acct.symbol_info_string("XAUUSD", mi_pb2.SymbolInfoStringProperty.SYMBOL_CURRENCY_MARGIN)
print(base.value, profit.value, margin.value)
3) ISIN & web page¶
from MetaRpcMT5 import mt5_term_api_market_info_pb2 as mi_pb2
isin = await acct.symbol_info_string("AAPL", mi_pb2.SymbolInfoStringProperty.SYMBOL_ISIN)
page = await acct.symbol_info_string("AAPL", mi_pb2.SymbolInfoStringProperty.SYMBOL_PAGE)
print(isin.value, page.value)
SYMBOL_PATH