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

 
Franklins100:
Спасибо за ответы. Код кодом. Код будет оптимизирован, но при добавлении новых индикаторов и увеличении истории увеличивается время 'прогона'. Как сильно влияет железо ПК на время 'прогона' (нужнен навороченный CPU или GPU)? Вообще огромная куча вопросов 1 раз бы пообщаться с гуру)

Тестирование  можно ускорить в разы если есть возможность разбить переменные на группы и устраивать перекрёстное тестирование. Данная схема возможна если вы понимаите как устроен советник и в нём есть независимые переменные, т.е. их изменение не влияет на результат при прогоне других переменных.

Если переменных очень много то время на тестирование можно сократить в сотни раз.

Ещё мт5 позволяет для тестирования подключить сторонние мощности.

Как протестировать торгового робота перед покупкой
Как протестировать торгового робота перед покупкой
  • www.mql5.com
Покупка торгового робота в MQL5 Маркете имеет одно большое преимущество перед всеми другими подобными предложениями -  вы можете устроить комплексную проверку предлагаемой автоматической системы прямо в терминале MetaTrader 5. Советник перед покупкой можно и нужно тщательно прогнать во всех неблагоприятных режимах во встроенном тестере торговых...
 
BenditO:

Тестирование  можно ускорить в разы если есть возможность разбить переменные на группы и устраивать перекрёстное тестирование. Данная схема возможна если вы понимаите как устроен советник и в нём есть независимые переменные, т.е. их изменение не влияет на результат при прогоне других переменных.

Если переменных очень много то время на тестирование можно сократить в сотни раз.

Ещё мт5 позволяет для тестирования подключить сторонние мощности.

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

 
Franklins100:

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

Оптимизировать код.

 
Vladimir Karputov:

Оптимизировать код.

Попробую более прямо - имеется данная конфигурация: 2шт- Intel® Xeon® Gold 6126, 4шт- Samsung DDR4 2666 Registered ECC LRDIMM 64Gb, 2шт - Tesla P100 или 2080ti(в раздумьях) Будет ли профит(скорость) в этом деле с этой конфигурацией или же можно не заморачиваться и оптимизировать код на калькуляторе? Хочется ''поиграться'' с большим количеством индикаторов, историей, максимально протестировать все возможные исходы, стратегии и вариации - получить опыт и тд.

 
Franklins100:

Попробую более прямо - имеется данная конфигурация: 2шт- Intel® Xeon® Gold 6126, 4шт- Samsung DDR4 2666 Registered ECC LRDIMM 64Gb, 2шт - Tesla P100 или 2080ti(в раздумьях) Будет ли профит(скорость) в этом деле с этой конфигурацией или же можно не заморачиваться и оптимизировать код на калькуляторе? Хочется ''поиграться'' с большим количеством индикаторов, историей, максимально протестировать все возможные исходы, стратегии и вариации - получить опыт и тд.

Нужно открыть новую ветку с конкретным вопросом - "Какое нужно железо, чтобы любой эксперт оптимизировался моментально?" и ждать там что насоветуют.

 

Что должна возвращать функция?

Print(SYMBOL_POINT);

для EURUSD у меня возвращает 16, по идее должно 0,00001

а  Print(SymbolInfoDouble(Symbol(),SYMBOL_POINT));

возвращает    9.999999999999996e-06

Это глюк? или у всех так?
 
SEM:

Что должна возвращать функция?

Print(SYMBOL_POINT);

для EURUSD у меня возвращает 16, по идее должно 0,00001

а  Print(SymbolInfoDouble(Symbol(),SYMBOL_POINT));

возвращает    9.999999999999996e-06

https://www.mql5.com/ru/docs/convert/doubletostring

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

А вы что именно распечатываете?

SYMBOL_POINT - это предопределённая константа. Т.е., вы распечатываете числовое значение константы.

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

А вы что именно распечатываете?

Пытаюсь нормализовать TakeProfit для Sell, получается TP = -130

 int TakeProfit=100;//Profit

double _PriceCurrent_TakeProfit = NormalizeDouble(m_position.PriceOpen()-(TakeProfit*SYMBOL_POINT),SYMBOL_DIGITS) ;
Причина обращения: