Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 1021

 
kashi_ann:

Добрый вечер,


Где-то натыкалась на статью, где расписан/расшифрован был весь код на "тестового" советника. Забыла сохранить, и ни как не могу найти. Может кто знает, видел эту статью?

Практически в каждой статье есть код тестового советника. Как кто-то может знать то, о чём вы спрашиваете?

 
ToNy_Nazarov:

Добрый день!
Возможно ли в советнике для MT4 работать с ценами с 5-ю знаками после запятой? Если да, то как это сделать? Работаю через Forex Club.

Функция Digits выдает значение "5", а к примеру значение Bid выдает "1.1094" а не "1.10943", то есть без 5-го знака.
Как получить в работу полную цену с 5-м знаком после запятой?

Также функция Point выдает значение 0, а не 0,00001. Почему так происходит и как получить правильное значение?

Конечно можно. По умолчанию.

Нет кода - нет ответа.

 
Как взять отдельную цифру из числа? Допустим, есть число 1.2568. Как взять последнюю цифру "8" ?  Есть вариант посредством DoubleToStr() перевести в строку,  а потом через StringSubstr() получить последнее число и перевести в int. Другие варианты есть?
 
Yevhenii Levchenko:
Как взять отдельную цифру из числа? Допустим, есть число 1.2568. Как взять последнюю цифру "8" ?  Есть вариант посредством DoubleToStr() перевести в строку,  а потом через StringSubstr() получить последнее число и перевести в int. Другие варианты есть?

Другие варианты есть всегда.

Если это нормализованное значение, то его надо умножить, в данном случае на 10000 или разделить на 0.0001 получится целое число 12568 и взять остаток от деления на 10.

12568%10=8

 
Alexey Viktorov:

Другие варианты есть всегда.

Если это нормализованное значение, то его надо умножить, в данном случае на 10000 или разделить на 0.0001 получится целое число 12568 и взять остаток от деления на 10.

12568%10=8

Отличный вариант! Спасибо, Виктор!
 
Yevhenii Levchenko:
Отличный вариант! Спасибо, Виктор!

Когда я был помоложе меня звали Алексей. Но и Виктор мне тоже нравится.:)))

 
Artyom Trishkin:

Конечно можно. По умолчанию.

Нет кода - нет ответа.


//--------------------------------------------------------------------
int start()                                     
  {
   Comment("Bid = ", Bid,
           "\nAsk = ", Ask,
           "\nPoint = ", _Point,
           "\nDigits = ", Digits);
   return(0);                                   
  }
//--------------------------------------------------------------------
Файлы:
 
Alexey Viktorov:

Когда я был помоложе меня звали Алексей. Но и Виктор мне тоже нравится.:)))

Ой, что-то заглючило )))

Извините, Алексей)))

 
ToNy_Nazarov:

//--------------------------------------------------------------------
int start()                                     
  {
   Comment("Bid = ", Bid,
           "\nAsk = ", Ask,
           "\nPoint = ", _Point,
           "\nDigits = ", Digits);
   return(0);                                   
  }
//--------------------------------------------------------------------

Для вывода на печать вещественных чисел служит функция DoubleToString()

Документация по MQL5: Преобразование данных / DoubleToString
Документация по MQL5: Преобразование данных / DoubleToString
  • www.mql5.com
[in]  Формат точности. Если значение digits лежит в диапазоне от 0 до 16, то будет получено строковое представление числа с указанным количество знаков после запятой. Если значение digits лежит в диапазоне от -1 до -16, то...
 
Artyom Trishkin:

Для вывода на печать вещественных чисел служит функция DoubleToString()

Вопрос полностью решен, благодарю за помощь!

//--------------------------------------------------------------------
int start()                                     
  {
   double delta = Ask-Bid;        
   double delta2 = 1.10059-_Point;  
   Comment("Bid = ", DoubleToString(Bid,5),
           "\nAsk = ", DoubleToString(Ask,5),
           "\nDelta = ", DoubleToString(delta,5),
           "\nDelta2 = ", DoubleToString(delta2,5),
           "\nPoint = ", DoubleToString(_Point,5),
           "\nDigits = ", Digits);    
   return(0);                                   
  }
//--------------------------------------------------------------------



Файлы:
Причина обращения: