POSITION_SYMBOL
Instrument, na którym otwarta jest pozycja. Porównanie z `_Symbol` jest poprawne tylko wtedy, gdy ekspert pracuje
string PositionGetString(POSITION_SYMBOL);
1 fragment kodu z tej strony przeszedł przez kompilator MetaEditor build 6090, 2026-08-05.
Pełna nazwa instrumentu, dokładnie taka, jaka widnieje w oknie Rynek.
Dlaczego to nie jest oczywiste
Porównanie z _Symbol jest poprawne tylko wtedy, gdy ekspert pracuje wyłącznie na instrumencie własnego wykresu. W kodzie wielosymbolowym ten warunek po cichu odrzuca wszystko, co dotyczy pozostałych instrumentów.
Do tego dochodzą przyrostki brokera: ta sama para bywa nazwana EURUSD, EURUSD.m albo EURUSDpro. Porównywanie z nazwą wpisaną na sztywno działa u jednego brokera i milczy u drugiego. Sposób na wyznaczenie przyrostka opisaliśmy przy SYMBOL_PATH.
Kod
POSITION_SYMBOL
//--- zliczamy pozycje osobno dla kazdego instrumentu
for(int i = PositionsTotal() - 1; i >= 0; i--)
{
ulong bilet = PositionGetTicket(i);
if(bilet == 0 || !PositionSelectByTicket(bilet))
continue;
string symbol = PositionGetString(POSITION_SYMBOL);
double wolumen = PositionGetDouble(POSITION_VOLUME);
PrintFormat("%s: %.2f lota, wynik %.2f",
symbol, wolumen, PositionGetDouble(POSITION_PROFIT));
}