ФОРТС. Вопросы по исполнению - страница 120

 
На сервере MQ-demo тикеры из раздела FORTS имеют все три валюты - котирования/прибыли, маржи, базовую - установленными в RUR, но куча тикеров (таких как BR-, GOLD- и пр.) со всей очевидностью котируется в USD. Вопрос: это глюки настроек демо? Если нет, то как узнать реальную валюту котирования таких тикеров из MQL?
 
Stanislav Korotky:
На сервере MQ-demo тикеры из раздела FORTS имеют все три валюты - котирования/прибыли, маржи, базовую - установленными в RUR, но куча тикеров (таких как BR-, GOLD- и пр.) со всей очевидностью котируется в USD. Вопрос: это глюки настроек демо? Если нет, то как узнать реальную валюту котирования таких тикеров из MQL?

Да в USD котируются, а в клиринг идет перерасчет и учитываются курсовые разницы.

 
Aleksey Vyazmikin:

Да в USD котируются, а в клиринг идет перерасчет и учитываются курсовые разницы.

"Да", в каком смысле? В реальности USD, но в терминале RUR. Как из программы это обработать? Пока вижу один выход - плодить входные параметры для возможности перекрыть значения функций MQL API.

 
Stanislav Korotky:

"Да", в каком смысле? В реальности USD, но в терминале RUR. Как из программы это обработать? Пока вижу один выход - плодить входные параметры для возможности перекрыть значения функций MQL API.

А какая цель то вообще? Рассчитать ГО?

 
Stanislav Korotky:

"Да", в каком смысле? В реальности USD, но в терминале RUR. Как из программы это обработать? Пока вижу один выход - плодить входные параметры для возможности перекрыть значения функций MQL API.

Я все перевожу в пункты и работаю с пунктами.

Если нужно пукты перевести в цену, то пользуюсь

этой функцией.

//+------------------------------------------------------------------+
//| Expert Points to price function                                  |
//+------------------------------------------------------------------+
double PointsToPrice(const long a_points)
{
  step_price = SymbolInfoDouble(Symbol(), SYMBOL_TRADE_TICK_SIZE);
  double a_price = (double(a_points) * Point() ) / step_price;
  if(a_points < 0)
  {
    a_price = MathFloor(a_price) * step_price;
  }
  else
  {
    a_price = MathCeil(a_price) * step_price;
  }
  return(NormalizeDouble(a_price, Digits()));
}

 Если нужно считать ГО, то оно для всех тикеров в рублях.

Добавлено

Соответственно во входных парамеирах - пункты, это

позволяет сделать универсальные расчёты для всех инструментов.

 

Реальный счет в Открытии. Пытаюсь получить данные аккаунта (баланс, средства, маржа и другие) с помощью функции AccountInfoDouble.

Почти все получаю нормально, но при попытке получить уровень Margin Call и Stop Out с помощью строк:

double MarginCallValue = AccountInfoDouble(ACCOUNT_MARGIN_SO_CALL);
double MarginStopValue = AccountInfoDouble(ACCOUNT_MARGIN_SO_SO);


всегда получаю нули. Тоже самое, если сделать:

   CAccountInfo* info = new CAccountInfo();
   double val = info.MarginCall();
   double val1 = info.MarginStopOut();


С чем это связано, почему все время нули ? Это проблема брокера или MT5?

 
Zmeev:

Реальный счет в Открытии. Пытаюсь получить данные аккаунта (баланс, средства, маржа и другие) с помощью функции AccountInfoDouble.

Почти все получаю нормально, но при попытке получить уровень Margin Call и Stop Out с помощью строк:

double MarginCallValue = AccountInfoDouble(ACCOUNT_MARGIN_SO_CALL);
double MarginStopValue = AccountInfoDouble(ACCOUNT_MARGIN_SO_SO);


всегда получаю нули. Тоже самое, если сделать:

   CAccountInfo* info = new CAccountInfo();
   double val = info.MarginCall();
   double val1 = info.MarginStopOut();


С чем это связано, почему все время нули ? Это проблема брокера или MT5?

ФОРЕКС?

 

ФОРТС.

При этом остальные полученные данные счета соответствуют действительности.

Спросил у брокера, но там совсем не в теме, ничем не помогли.
 
Zmeev:

ФОРТС.

При этом остальные полученные данные счета соответствуют действительности.

Спросил у брокера, но там совсем не в теме, ничем не помогли.

Так видимо они сами мониторят ситуацию через другие средства, обычно шлют SMS, могут позвонить, а потом закрывают....

Все зависит от ситуации, там есть рискменеджеры следящие за этим. Ну а сервер может не до конца настроен...

 
Aleksey Vyazmikin:

А какая цель то вообще? Рассчитать ГО?

Цель простая - корректный кластерный индикатор. В принципе не понятно, почему терминал возвращает RUR если цена явно в USD. Разве это нормально?

prostotrader:

Я все перевожу в пункты и работаю с пунктами.

Если нужно пукты перевести в цену, то пользуюсь

Это в какой валюте будет цена? Опять же - неизвестно. А мне нужно цены разных инструментов привести к общей.

Причина обращения: