Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
очень больших не увидел.
Файл же на 99% - это небольшой массив довольно мелких структур.
Улучшение.
Вместо того, чтобы задавать тип оптимизации вручную
и перекомпилировать скрипт, можно его считать из файла такой функцией:
и затем выбрать автоматически тип:
И проверять тип Res = this.IsCorrectType() в Load() уже не обязательно.Поторопился с этой идеей. На тот момент тестировал мат. режим и все было хорошо.
Начал добавлять обычный и возникла проблема с типами. Этот код не компилируется:
Ошибка
undeclared identifier TesterCache_Example.mq5 55 29
in template 'bool OptReports(TESTERCACHE<T>&)' specified with [T=MATHEMATICS] TesterCache_Example.mq5 44 6
see template instantiation 'OptReports<MATHEMATICS>' TesterCache_Example.mq5 32 7
Я не разбираюсь в template <typename T>
Компилятор видит, будто бы функция OptReports() вызвана как MATHEMATICS поэтому не дает напечатать параметр из структуры ExpTradeSummary
Но там еще 2 варианта есть кроме MATHEMATICS , в том числе ExpTradeSummary.
Или баг компилятора или я что-то не так сделал.
Пока вижу только вариант - сделать 3 функции копии для каждого типа.
Поторопился с этой идеей. На тот момент тестировал мат. режим и все было хорошо.
Начал добавлять обычный и возникла проблема с типами.
Здесь делал иначе.
Для оптимизации по символам не стал даже заморачиваться (для стат. сравнений только использую). А реализация выше - просто выходит, пусть и костыльно.
Здесь делал иначе.
Для оптимизации по символам не стал даже заморачиваться (для стат. сравнений только использую). А реализация выше - просто выходит, пусть и костыльно.
Сделал как мне понятнее:
Первоначально считываю ExpTradeSummary. Если тип не совпадает, то считываю правильный тип. Потом через if(){} работаю с нужным типом.
Получение типа сделал отдельной функцией, без корректировки библиотекиВыкладываю код с авто определением типа, может кому пригодится:
Мат. режим определяю по h.ticks_mode == 3, а не по h.symbol=="". Оба варианта рабочие.
Поправьте пожалуйста в\TestCacheHeader.mqh
#define UINT16 short
на
#define UINT16 ushort
W1 со знаком минус получался. С ushort все работает.
W1 со знаком минус получался. С ushort все работает.
Спасибо, поправлю.
Обновил.
Спасибо.
У меня почему то библиотека не может открывать .opt файлы от форварда.
Заголовок читает, а дальше
Inputs
Parameters
UnknownNums
пустые.
И при печати результатов проходов
Result:
ошибка
Type: 1
Header
version = 515
copyright = Copyright 2000-2025, MetaQuotes Ltd.
name = TesterOptCache
header_size = 18705
record_size = 304
expert_name = StepTpSl
expert_path = Experts\StepTpSl.ex5
server = RannForex-Server
symbol = EURUSD
(ENUM_TIMEFRAMES)period = PERIOD_M1
date_from = 2023.04.10 00:00:00
date_to = 2023.05.01 00:00:00
date_forward = 2023.03.01 00:00:00
opt_mode = 3
ticks_mode = 4
last_criterion = 6
msc_min = 1552
msc_max = 13246
msc_avg = 4747
group = demo (hedging)
trade_currency = USD
trade_deposit = 10000
trade_condition = 0
trade_leverage = 100
trade_hedging = 2
trade_currency_digits = 2
trade_pips = 0
parameters_size = 719
parameters_total = 94
opt_params_size = 24
opt_params_total = 3
dwords_cnt = 0
snapshot_size = 4
passes_total = 100
passes_passed = 100
Inputs
Parameters
UnknownNums
Result:
array out of range in 'TesterCache.mqh' (312,24)
У бек теста заголовок такой же с отличиями в датах и милисекундах. И заполнены:
Inputs
Parameters
UnknownNums
Result:
Т.е. там все работает. Формат/структура что ли другие? Пробовал подставлять структуру от теста по всем символам - не помогло.
Приложил файлы бек и форвард. Попробуйте и со своими opt файлами, т.к. у меня МТ5 последней для Win7 версии. Хотя сам свои он должен бы читать.
Я еще минимум 2-3 дня буду HTML отчетом заниматься. Раньше до этого бага времени не будет.
У меня почему то библиотека не может открывать .opt файлы от форварда.