β 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 enumSymbolInfoStringProperty
MetaRpcMT5/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_BASIS
SYMBOL_CATEGORY
SYMBOL_COUNTRY
SYMBOL_SECTOR_NAME
SYMBOL_INDUSTRY_NAME
SYMBOL_CURRENCY_BASE
SYMBOL_CURRENCY_PROFIT
SYMBOL_CURRENCY_MARGIN
SYMBOL_BANK
SYMBOL_DESCRIPTION
SYMBOL_EXCHANGE
SYMBOL_FORMULA
SYMBOL_ISIN
SYMBOL_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