Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 1154

Artyom Trishkin
Модератор
44553
Artyom Trishkin  
SEM:

Пытаюсь нормализовать TakeProfit для Sell

SYMBOL_DIGITS - это тоже константа. Она НЕ возвращает значения "количество знаков после запятой в котировке символа". Она указывает функции SymbolInfoInteger() какое значение целочисленного свойства символа необходимо вернуть.
Документация по MQL5: Константы, перечисления и структуры / Состояние окружения / Информация об инструменте
Документация по MQL5: Константы, перечисления и структуры / Состояние окружения / Информация об инструменте
  • www.mql5.com
Для получения текущей рыночной информации служат функции SymbolInfoInteger(), SymbolInfoDouble() и SymbolInfoString(). В качестве второго параметра этих функций допустимо передавать один из идентификаторов из перечислений ENUM_SYMBOL_INFO_INTEGER, ENUM_SYMBOL_INFO_DOUBLE и ENUM_SYMBOL_INFO_STRING соответственно. Некоторые символы (как...
SEM
772
SEM  
Artyom Trishkin:
SYMBOL_DIGITS - это тоже константа. Она НЕ возвращает значения " количество знаков после запятой в котировке символа". Она указывает функции SymbolInfoInteger() какое значение целочисленного свойства символа необходимо вернуть.

Хорошо, тогда как нормализовать ТП для Sell?

  Print(NormalizeDouble(SymbolInfoDouble(Symbol(),SYMBOL_POINT),(int)SymbolInfoInteger(Symbol(),SYMBOL_DIGITS)));

тоже возвращает непонятно что = (EURUSD,M15)    1e-05
 

Alexey Viktorov
22588
Alexey Viktorov  
SEM:

Хорошо, тогда как нормализовать ТП для Sell?

тоже возвращает непонятно что = (EURUSD,M15)    1e-05
 

1е-05 это единица в минус пятой степени, то-есть 0.00001. Чему вас учили в старших классах школы???

Vitaly Muzichenko
12784
Vitaly Muzichenko  
SEM:

Хорошо, тогда как нормализовать ТП для Sell?

тоже возвращает непонятно что = (EURUSD,M15)    1e-05
 

Для робота вы нормализовали.

Для вывода в принты нужно использовать DoubleToString

 Print(DoubleToString(SymbolInfoDouble(Symbol(),SYMBOL_POINT),(int)SymbolInfoInteger(Symbol(),SYMBOL_DIGITS)));
SEM
772
SEM  
Vitaly Muzichenko:

Для робота вы нормализовали.

Для вывода в принты нужно использовать DoubleToString

Спасибо за помощь! В итоге:

double _SYMBOL_POINT_ = SymbolInfoDouble(Symbol(),SYMBOL_POINT);
int _SYMBOL_DIGITS_   = (int)SymbolInfoInteger(Symbol(),SYMBOL_DIGITS);


{
  double _PriceCurrent_TakeProfit =NormalizeDouble(m_position.PriceOpen()-(TakeProfit*_SYMBOL_POINT_),_SYMBOL_DIGITS_) ;
  double _PriceCurrent=NormalizeDouble(m_position.PriceCurrent()-(TakeProfit*_SYMBOL_POINT_),_SYMBOL_DIGITS_);
}
BenditO
30
BenditO  
Franklins100:

Это идея, но перекрестное тестирование не даст точных результатов, на мой взгляд. Тестирование, опять таки на мой неопытный взгляд, должно проводится в конечном, цельном варианте. И тут сразу вопрос - как и благодаря каким параметрам компьютера можно максимально ускорить тестирование, не прибегая к использованию сторонних мощностей. GPU или CPU?

Перекрёстное тестирование даёт такойже точный результат как и прямое. Если понимать все переменные то при разбивке на группы указываете приемлемый шаг для переменных. Потом по итогу прогонов тестов в зависимости от картинки 3Д по результатам можно выделить одну или несколько групп значений для кагдой группы переменных. И в итоге запускаете полный тест но уже с узким разбросом и высокой дискретностью параметров.

Я так прогоняю один советник каждую субботу. Более 300 переменных. В течении дня прогоняю перекрёстные тесты. И на ночь ставлю основной. В воскресенье уже результат анализирую. Смотрю что изменилось по сравнению с набором прошлой недели. Ну и там уже по ситуации иногда доп тесты врубаю. Всё кручу на двух компах.

В итоге уходит гдето 30 машино часов. Если на прямую врубать то думаю комп бы завис :) недели на две. Тут уж хощ ни хош выкручиваешся как можеш.

На скорость тестов влияет ядерность процессора (для мт5 точно).

На самые первые тесты ушло много времени. Теперь тока прогоняю последнюю неделю. Думаю у каждого советника свои премудрости. Я просто ввёл коэфициенты и основные параметры меняются очень редко. Получается что идёт подстройка под волантильность в основном. Плюсом серьёзный новостной модуль с индивидуальной разбивкой по типам новостей а не тупо три звезды :) Вообще думаю "новости" это самое слабое место у всех советников торговых. А ещё же есть периоды "смена контрактов", "опционные экспирации". С ними тоже работать есть резон.

Vladimir Karputov
Модератор
163105
Vladimir Karputov  
Franklins100:

Это идея, но перекрестное тестирование не даст точных результатов, на мой взгляд. Тестирование, опять таки на мой неопытный взгляд, должно проводится в конечном, цельном варианте. И тут сразу вопрос - как и благодаря каким параметрам компьютера можно максимально ускорить тестирование, не прибегая к использованию сторонних мощностей. GPU или CPU?

Есть тема про тесты: Оцениваем ядра CPU для оптимизации

Оцениваем ядра CPU для оптимизации
Оцениваем ядра CPU для оптимизации
  • 2019.08.09
  • www.mql5.com
Предлагаю собрать статистику по производительности разных процессоров с целью оценки их эффективности для работы тестера стратегий в режиме оптимиз...
Franklins100
15
Franklins100  
Vladimir Karputov:

Есть тема про тесты: Оцениваем ядра CPU для оптимизации

BenditO:

Перекрёстное тестирование даёт такойже точный результат как и прямое. Если понимать все переменные то при разбивке на группы указываете приемлемый шаг для переменных. Потом по итогу прогонов тестов в зависимости от картинки 3Д по результатам можно выделить одну или несколько групп значений для кагдой группы переменных. И в итоге запускаете полный тест но уже с узким разбросом и высокой дискретностью параметров.

Я так прогоняю один советник каждую субботу. Более 300 переменных. В течении дня прогоняю перекрёстные тесты. И на ночь ставлю основной. В воскресенье уже результат анализирую. Смотрю что изменилось по сравнению с набором прошлой недели. Ну и там уже по ситуации иногда доп тесты врубаю. Всё кручу на двух компах.

В итоге уходит гдето 30 машино часов. Если на прямую врубать то думаю комп бы завис :) недели на две. Тут уж хощ ни хош выкручиваешся как можеш.

На скорость тестов влияет ядерность процессора (для мт5 точно).

На самые первые тесты ушло много времени. Теперь тока прогоняю последнюю неделю. Думаю у каждого советника свои премудрости. Я просто ввёл коэфициенты и основные параметры меняются очень редко. Получается что идёт подстройка под волантильность в основном. Плюсом серьёзный новостной модуль с индивидуальной разбивкой по типам новостей а не тупо три звезды :) Вообще думаю "новости" это самое слабое место у всех советников торговых. А ещё же есть периоды "смена контрактов", "опционные экспирации". С ними тоже работать есть

Спасибо, Вам огромное.

MrBrooklin
167
MrBrooklin  

Всем доброго дня!

Пытаюсь освоить элементарные вещи на языке MQL5, но при компилировании кода скопированного со Справочника MQL5, неожиданно столкнулся с предупреждением, которое видно на прикрепленном рисунке.

Неужели и в Справочнике MQL5 тоже есть неточности? Подскажите, пожалуйста, что нужно исправить в коде (да и в самом Справочника MQL5 не помешало бы), чтобы не появлялось данное предупреждение?

С уважением, Владимир.




Документация по MQL5 - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
Документация по MQL5 - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
  • www.mql5.com
MetaQuotes Language 5 (MQL5) - язык программирования технических индикаторов, торговых роботов и вспомогательных приложений для автоматизации торговли на финансовых рынках. MQL5 является современным языком высокого уровня и разработан MetaQuotes Software Corp. для собственной торгово-информационной платформы. Синтаксис языка максимально близок...
Vladimir Karputov
Модератор
163105
Vladimir Karputov  
MrBrooklin:

Всем доброго дня!

Пытаюсь освоить элементарные вещи на языке MQL5, но при компилировании кода скопированного со Справочника MQL5, неожиданно столкнулся с предупреждением, которое видно на прикрепленном рисунке.

Неужели и в Справочнике MQL5 тоже есть неточности? Подскажите, пожалуйста, что нужно исправить в коде (да и в самом Справочника MQL5 не помешало бы), чтобы не появлялось данное предупреждение?

С уважением, Владимир.

Да, в справке бывают неточности.