Скачать MetaTrader 5

Как узнать количество нулей после запятой в котировках разных валют?

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
king
381
king  
Как узнать количество нулей после запятой в котировках разных валют? Пишу индикатор для GBPUSD там 4, можно просто в код вставить умножение на 1000, но если будет другой финансовый инструмент надо менять код, можо конечно в задаваемых параметрах устанавливать это значение, но хочется чтоб индикатор сам распознавал.
Sergey Kazachenko
918
Sergey Kazachenko  
KING:
Как узнать количество нулей после запятой в котировках разных валют? Пишу индикатор для GBPUSD там 4, можно просто в код вставить умножение на 1000, но если будет другой финансовый инструмент надо менять код, можо конечно в задаваемых параметрах устанавливать это значение, но хочется чтоб индикатор сам распознавал.


Для этого есть Digits

int Digits

Количество цифр после десятичной точки в цене текущего инструмента.
См. также MarketInfo().

Пример:
Print(DoubleToStr(Close[0], Digits));
Александр
1052
Александр  
KING:
Как узнать количество нулей после запятой в котировках разных валют? Пишу индикатор для GBPUSD там 4, можно просто в код вставить умножение на 1000, но если будет другой финансовый инструмент надо менять код, можо конечно в задаваемых параметрах устанавливать это значение, но хочется чтоб индикатор сам распознавал.

Я делаю так:
MathPow(10, MarketInfo(Symbol(),MODE_DIGITS);
king
381
king  
Спасибо
Vasyl Nosal
19747
Vasyl Nosal  

Случайно не появилась функция которая определяет 4 или 5 значный брокер?

Типа MarketInfo(Symbol(),MODE_5DIG) true/false 

Aliaksandr Yemialyanau
3619
Aliaksandr Yemialyanau  
eevviill:

Случайно не появилась функция которая определяет 4 или 5 значный брокер?

Типа MarketInfo(Symbol(),MODE_5DIG) true/false 

Можно так:

if(_Digits==3||_Digits==5)
Ihor Herasko
16450
Ihor Herasko  
nasdaq:

Можно так:

 

А если речь идет о символе типа SP500 или NASDAQ?

Проблема в том, что нет универсального алгоритма определения "пятизначности" и "четырехзначности" предоставляемых котировок. Есть только такие вот попытки описания признаков, которые работают далеко не во всех случаях. 

Vasyl Nosal
19747
Vasyl Nosal  
Scriptong:

А если речь идет о символе типа SP500 или NASDAQ?

Проблема в том, что нет универсального алгоритма определения "пятизначности" и "четырехзначности" предоставляемых котировок. Есть только такие вот попытки описания признаков, которые работают далеко не во всех случаях. 

100%.

Есть пары(и их много) где 3 или 5 не работает.

А вот от разработчиков тру/фолс очень надо. 

Vasyl Nosal
19747
Vasyl Nosal  

Я ещё думал именно конкретную пару проверять. EURUSD.

Но

1) Её может не быть.

2) Может иметь название не EURUSD. 

Ihor Herasko
16450
Ihor Herasko  
eevviill:

Я ещё думал именно конкретную пару проверять. EURUSD.

Но

1) Её может не быть.

2) Может иметь название не EURUSD. 

Тоже идея. У большинства брокеров она, как минимум, содержит корень "EURUSD" (mEURUSD, EURUSDm и т. п.). Но, опять же, ложка дегтя, недавно видел брокера, работающего с различными криптовалютами. Так у него кроме этих криптовалют ничего нет, т. е. ни EURUSD, ни GBPUSD. В таком случае все равно придется обращаться к трейдеру с вопросом, какие котировки: классические или "новые".
Vladimir
673
Vladimir  
Разрядность котирования не является свойством брокера в целом. Она может различаться у одного брокера на разных типах счетов и даже на счетах одинакового типа у разных инструментов, в том числе привычных. Например, встречал такое: GBPUSD 1.5613  NZD 0.87341 одновременно в одном окне обзора рынка. Так что не вижу никакого выхода, кроме как запрашивать Digits или Point индивидуально по нужным инструментам во время работы на нужном счете. Вообще говоря, никто не обязывает брокера соблюдать постоянство разрядности в течение какого-то времени. Он может сменить ее с 4 на 5, например, утром в среду для двух-трех валютных пар. Такое встречал один раз, но перед этим пришли извещения и по почте терминала, и на e-mail.
12
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий