Бета-версия платформы MetaTrader 5 build 2055: Интеграция с Python и массовые улучшения в тестере стратегий - страница 18

 

build 2007 МТ5 при:

struct STest
  {
   int 14h05m;
  };

во время сборки получаем ошибку name expected, но в документации не нашел, что переменные нельзя объявлять начиная с цифры, наверное стоит подправить справку

 
Konstantin:

build 2007 МТ5 при:

во время сборки получаем ошибку name expected, но в документации не нашел, что переменные нельзя объявлять начиная с цифры, наверное стоит подправить справку

Первый символ не может быть цифрой.
Документация по MQL5: Основы языка / Синтаксис / Идентификаторы
Документация по MQL5: Основы языка / Синтаксис / Идентификаторы
  • www.mql5.com
Допустимые символы при написании идентификатора: цифры 0-9, латинские прописные и строчные буквы а-z и А-Z, распознаваемые как разные символы, символ подчеркивания (_). Первый символ не может быть цифрой.
 
Alain Verleyen:

опс, а самого маленького то я и не увидел ))) спс, вопрос снят

 
fxsaber:
Сломали кастомные символы - без указания 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 очень мелко получилось - не разглядел детали

Просьба убрать прореженные точки из графика и отобразить все протестированные точки.

Проблема не решена. Смотреть на небольшую долю данных не очень то помогает в оценке оптимизации.
 
Build 2069. По поводу оптимизации, стало намного дольше (по времени), т.к. агенты локальной сети по большей части времени простаивают, из 6ти 1 только в работе периодически. А вся нагрузка ложится на локальные агенты. Прошу доработать.
Файлы:
c04dpv.png  33 kb
 
zevs1980:
По поводу оптимизации, стало намного дольше (по времени), т.к. агенты локальной сети по большей части времени простаивают, из 6ти 1 только в работе периодически. А вся нагрузка ложится на локальные агенты. Прошу доработать.
Проверьте журнал тестера на наличие отладочной версии трестируемого советника: непосредственно  перед оптимизацией обязательно компилируйте советник.
 
Vladimir Karputov:
непосредственно  перед оптимизацией обязательно компилируйте советник.

Советник был откомпилирован в данной версии терминала

 
zevs1980:

Советник был откомпилирован в данной версии терминала

Пожалуйста проделайте в такой последовательности: очистите журнал тестера и запустите тестирование. Сразу смотрите в начало записей - нет ли там сообщение о том, что версия советника отладочная?

 
Vladimir Karputov:

нет ли там сообщение о том, что версия советника отладочная?

Нет такого сообщения.