Как узнать тип актива по символу - страница 2

 
Artyom Trishkin:


   Print(SYMBOL_CALC_MODE_EXCH_OPTIONS);

как enum - в коде не подсвечивается, но программка компилится и выдает 34.

build 2085 - в более новых версиях возможно профиксили уже

 
Andrey Azatskiy:


как enum - в коде не подсвечивается, но программка компилится и выдает 34.

build 2085 - в более новых версиях возможно профиксили уже

Билд 2160:


Ну тоже не подсвечивается. Но наименование имеет раз выводится циклом

 
Andrey Azatskiy:


как enum - в коде не подсвечивается, но программка компилится и выдает 34.

build 2085 - в более новых версиях возможно профиксили уже

Иногда неподсвеченная константа означает, что она оставлена только для совместимости - то есть по сути это выкинутая константа из MQL5. Я уже такое встречал.

 
Vladimir Karputov:

Иногда неподсвеченная константа означает, что она оставлена только для совместимости - то есть по сути это выкинутая константа из MQL5. Я уже такое встречал.

Но ее значение совпадает с используемой сейчас. Это некоторые неудобные ситуации образует, как в данном случае (ожидаешь фьюч а получаешь опцион)

 
Andrey Azatskiy:

Но ее значение совпадает с используемой сейчас. Это некоторые неудобные ситуации образует, как в данном случае (ожидаешь фьюч а получаешь опцион)

2019.09.29 11:03:56.656 SYMBOL_CALC_MODE_FOREX=0
2019.09.29 11:03:56.656 SYMBOL_CALC_MODE_FUTURES=1
2019.09.29 11:03:56.656 SYMBOL_CALC_MODE_CFD=2
2019.09.29 11:03:56.656 SYMBOL_CALC_MODE_CFDINDEX=3
2019.09.29 11:03:56.656 SYMBOL_CALC_MODE_CFDLEVERAGE=4
2019.09.29 11:03:56.656 SYMBOL_CALC_MODE_FOREX_NO_LEVERAGE=5
2019.09.29 11:03:56.656 SYMBOL_CALC_MODE_EXCH_STOCKS=32
2019.09.29 11:03:56.656 SYMBOL_CALC_MODE_EXCH_FUTURES=33
2019.09.29 11:03:56.656 SYMBOL_CALC_MODE_EXCH_OPTIONS=34
2019.09.29 11:03:56.656 SYMBOL_CALC_MODE_EXCH_OPTIONS_MARGIN=36
2019.09.29 11:03:56.656 SYMBOL_CALC_MODE_EXCH_BONDS=37
2019.09.29 11:03:56.656 SYMBOL_CALC_MODE_EXCH_STOCKS_MOEX=38
2019.09.29 11:03:56.656 SYMBOL_CALC_MODE_EXCH_BONDS_MOEX=39
2019.09.29 11:03:56.657 SYMBOL_CALC_MODE_SERV_COLLATERAL=64

Где совпадает? Фьючерс = 1 и 33, опцион = 34 и 36

 
Artyom Trishkin:

Где совпадает? Фьючерс = 1, опцион = 34 и 36

имел ввиду что тот enum что не подсвечивается который для совместимости оставлен - тоже равен 34

 
Andrey Azatskiy:

имел ввиду что тот enum что не подсвечивается который для совместимости оставлен - тоже равен 34

У вас перед глазами распечатка значений констант:

2019.09.29 11:03:56.656 SYMBOL_CALC_MODE_FOREX=0
2019.09.29 11:03:56.656 SYMBOL_CALC_MODE_FUTURES=1
2019.09.29 11:03:56.656 SYMBOL_CALC_MODE_CFD=2
2019.09.29 11:03:56.656 SYMBOL_CALC_MODE_CFDINDEX=3
2019.09.29 11:03:56.656 SYMBOL_CALC_MODE_CFDLEVERAGE=4
2019.09.29 11:03:56.656 SYMBOL_CALC_MODE_FOREX_NO_LEVERAGE=5
2019.09.29 11:03:56.656 SYMBOL_CALC_MODE_EXCH_STOCKS=32
2019.09.29 11:03:56.656 SYMBOL_CALC_MODE_EXCH_FUTURES=33
2019.09.29 11:03:56.656 SYMBOL_CALC_MODE_EXCH_OPTIONS=34
2019.09.29 11:03:56.656 SYMBOL_CALC_MODE_EXCH_OPTIONS_MARGIN=36
2019.09.29 11:03:56.656 SYMBOL_CALC_MODE_EXCH_BONDS=37
2019.09.29 11:03:56.656 SYMBOL_CALC_MODE_EXCH_STOCKS_MOEX=38
2019.09.29 11:03:56.656 SYMBOL_CALC_MODE_EXCH_BONDS_MOEX=39
2019.09.29 11:03:56.657 SYMBOL_CALC_MODE_SERV_COLLATERAL=64

Неподсвечиваемая константа = 34, фьючерс = 1 и фьючерсный контракт = 33

Совпадений в упор не вижу. Тыкните меня тогда носом что-ли :)

 
Artyom Trishkin:

У вас перед глазами распечатка значений констант:

Неподсвечиваемая константа = 34, фьючерс = 1 и фьючерсный контракт = 33

Совпадений в упор не вижу. Тыкните меня тогда носом что-ли :)

Print(SYMBOL_CALC_MODE_EXCH_OPTIONS);
Print(SYMBOL_CALC_MODE_EXCH_FUTURES_FORTS);

Тыкаем) Там в описании символа FORTS Futures стоит - и он тоже 34 имеет)

 
Andrey Azatskiy:

Тыкаем) Там в описании символа FORTS Futures стоит - и он тоже 34 имеет)

Тогда используйте для получения типа актива только те константы, которые подсвечиваются:

Print(SYMBOL_CALC_MODE_EXCH_OPTIONS_MARGIN);
Print(SYMBOL_CALC_MODE_EXCH_FUTURES_FORTS);