Бета-версия платформы MetaTrader 5 build 2055: Интеграция с Python и массовые улучшения в тестере стратегий - страница 18
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
build 2007 МТ5 при:
во время сборки получаем ошибку name expected, но в документации не нашел, что переменные нельзя объявлять начиная с цифры, наверное стоит подправить справку
build 2007 МТ5 при:
во время сборки получаем ошибку name expected, но в документации не нашел, что переменные нельзя объявлять начиная с цифры, наверное стоит подправить справку
опс, а самого маленького то я и не увидел ))) спс, вопрос снят
Сломали кастомные символы - без указания Origin-символа не создаются.
2067 - исправили, спасибо.
elibrarius:
https://www.mql5.com/ru/forum/313650/page2#comment_11744436
При оптимизации экспертов с большим диапазоном изменения переменных часто пользуюсь не перебором от 1 до 100 с фиксированным шагом (например 1 - тогда будет 100 вариантов только для этой переменной), а энумератором.
Изменение переменной на 1 важно в начале диапазона ее изменения, а например 98 или 99 - будут почти одинаковы и ряд можно проредить, напрмиер так:
enum nums1 {_0=0,_1=1,_2=2,_3=3,_5=5,_7=7,_10=10,_12=12,_15=15,_17=17,_20=20,_25=25,_30=30,_35=35,_40=40,_50=50,_60=60,_70=70,_80=80,_90=90,_100=100,_120=120,_150=150,_200=200,_250=250,_300=300,_400=400,_500=500,_600=600,_800=800,_1000_=1000,_1300=1300,_1600=1600,_2000=2000,_2500=2500,_3000=3000,_3500=3500,_4000=4000,_4500=4500,_5000=5000};
Таким образом можно проверить переменную от 1 до 100 всего за 20 шагов.
Расчеты идут верно, но по окончании оптимизации графики показываются неправильно. Для иллюстрации модифицировал эксперт МА из папки Examples.
Вот так:
enum nums1 {_0=0,_1=1,_2=2,_3=3,_5=5,_7=7,_10=10,_12=12,_15=15,_17=17,_20=20,_25=25,_30=30,_35=35,_40=40,_50=50,_60=60,_70=70,_80=80,_90=90,_100=100,_120=120,_150=150,_200=200,_250=250,_300=300,_400=400,_500=500,_600=600,_800=800,_1000_=1000,_1300=1300,_1600=1600,_2000=2000,_2500=2500,_3000=3000,_3500=3500,_4000=4000,_4500=4500,_5000=5000};
input double MaximumRisk = 0.02; // Maximum Risk in percentage
input double DecreaseFactor = 3; // Descrease factor
input nums1 MovingPeriod = 10; // Moving Average period
input nums1 MovingShift = 5; // Moving Average shift
Полный код прикреплен.
Делаю оптимизацию с полным перебором
Получаю такую картинку на 1D
и на 2D
В шкалах графика использованы порядковые номера переменной, но не значения переменной.
В результат включены прореженные варианты переменной, но не отображены значения больше 20 (_25=25,_30=30,_35=35,_40=40,_50=50,_60=60,_70=70,_80=80,_90=90,_100=100)
Т.е. макс. значение на графике равно количеству значений переменной, но не ее макс. значению. В общем баг с масштабированием графика. Проявляется на 1D, 2D графках, на 3D очень мелко получилось - не разглядел детали
Просьба убрать прореженные точки из графика и отобразить все протестированные точки.
По поводу оптимизации, стало намного дольше (по времени), т.к. агенты локальной сети по большей части времени простаивают, из 6ти 1 только в работе периодически. А вся нагрузка ложится на локальные агенты. Прошу доработать.
непосредственно перед оптимизацией обязательно компилируйте советник.
Советник был откомпилирован в данной версии терминала
Советник был откомпилирован в данной версии терминала
Пожалуйста проделайте в такой последовательности: очистите журнал тестера и запустите тестирование. Сразу смотрите в начало записей - нет ли там сообщение о том, что версия советника отладочная?
нет ли там сообщение о том, что версия советника отладочная?
Нет такого сообщения.