Невозможно заменить точные курсы mql5

Вот изображение пользовательского символа, который я пытаюсь создать:

Image of the custom symbol.

Как видите, поступающие значения не являются значениями в разделе ДАННЫЕ на MT5.

Для этой цели я пробую следующий код:

      ticks_array[0].time= StructToTime(running);
      ticks_array[0].bid = StringToDouble(s[7]);
      ticks_array[0].ask = StringToDouble(s[8]);
      ticks_array[0].last = StringToDouble(s[5]);
      ticks_array[0].flags= TICK_FLAG_LAST;

      ticks_array[Should_change].time_msc = 0; 
      CustomTicksAdd(symbol_custom,ticks_array);

      rates_add[0].time = Time_For_Rates;
      rates_add[0].open = StringToDouble(s[2]);
      rates_add[0].high= StringToDouble(s[3]);
      rates_add[0].low = StringToDouble(s[4]);
      rates_add[0].close=StringToDouble(s[5]);
      rates_add[0].spread=(int)((StringToDouble(s[8])-StringToDouble(s[7]))*10000);
      rates_add[0].tick_volume=StringToInteger(s[6])-1;
      rates_add[0].real_volume=0;      
      Print(CustomRatesReplace(symbol_custom,Time_For_Rates,Time_For_Rates,rates_add));

Пожалуйста, дайте знать, почему это происходит и как я могу это решить. ИЗМЕНИТЬ:
Конфигурация символа: uuu.json

Может кто-нибудь помочь мне с этой проблемой?

Jaffer Wilson 26.10.2018 11:07

Кто-нибудь, пожалуйста, помогите мне с этим.

Jaffer Wilson 26.10.2018 13:55
0
2
77
2

Ответы 2

Использовать этот:

Цена = StrToDouble (DoubleToStr (Цена, 5));

5 - это ваши цифры. Вы можете изменить это, если хотите

Спасибо за ваш ответ и от всего сердца приветствую вас на StackOverflow. Уважаемый, я пробовал, но это помогает округлить значения. В то время как API иногда выдает округленные значения, а иногда нет. Это означает, что мне нужно какое-то адаптивное решение. Нормализация может быть решением, но работает не так, как адаптивная.

Jaffer Wilson 29.10.2018 05:18

Я попробую. Я думаю, что это все равно не то, чего я пытаюсь достичь. Но мы никогда не узнаем, пока не попробовали .... :)

Jaffer Wilson 29.10.2018 06:47

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

Jaffer Wilson 29.10.2018 06:56

Один вопрос: вы пытались создать собственный символ в MT5 раньше?

Jaffer Wilson 29.10.2018 07:02

Нет, не знал. Я снова отредактировал свой ответ. Этот новый код должен решить вашу проблему

Mql4x 30.10.2018 02:12

Я знаю, друг мой, ты очень хочешь дать ответ. Но я пробовал это раньше. Это не сработало, так как вывод, который я получаю, состоит не из 5 цифр, а из 6, 7 или 5, и MT5 не может преобразовать его соответствующим образом.

Jaffer Wilson 30.10.2018 05:12

Создавая символ - убедитесь, что у вас достаточно цифр. Ваш uuu.json говорит о 6, что неверно - цифра используется для обозначения количества цифр после точки.

bool CustomSymbolSetInteger( "uuu", SYMBOL_DIGITS, 5);

Нет необходимости нормализовать (используя NormalizeDouble()), если у вас уже есть цифры.

Спасибо за ваше предложение. Но я хочу быть точным, и мои значения - 6 цифр. Таким образом, я создал символ из 6 цифр.

Jaffer Wilson 12.11.2018 05:24

Другие вопросы по теме