Обсуждение статьи "Разрабатываем мультивалютный советник (Часть 9): Сбор результатов оптимизации одиночных экземпляров торговой стратегии"

 

Опубликована статья Разрабатываем мультивалютный советник (Часть 9): Сбор результатов оптимизации одиночных экземпляров торговой стратегии:

Наметим основные этапы по разработке нашего советника. Одним из первых будет проведение оптимизации одиночного экземпляра разработанной торговой стратегии. Попробуем собрать в одном месте всю необходимую информацию о проходах тестера при оптимизации.

По сути, основным видом данных, которые нам необходимо хранить и использовать являются результаты оптимизации нескольких советников. Как известно, все результаты оптимизации тестер стратегий записывает в отдельный кеш-файл с расширением *.opt, который потом можно открыть в тестере заново или даже открыть в тестере другого терминала MetaTrader5. Имя файла определяется из хеша, рассчитываемого на основе названия оптимизируемого советника и параметров оптимизации. Это позволяет не терять информацию об уже сделанных проходах при продолжении оптимизации после её досрочного прерывания или после смены критерия оптимизации.

Поэтому, один из рассматриваемых вариантов - использование кеш-файлов оптимизации для хранения промежуточных результатов. Для работы с ними есть хорошая библиотека от fxsaber, благодаря которой мы можем из программ на MQL5 получить доступ ко всей сохранённой информации.

Но с ростом числа проведённых оптимизаций будет расти и число файлов с их результатами. Чтобы в них не запутаться, надо будет придумывать какую-то дополнительную схему организации хранения и работы с этим кэш-файлами. Если оптимизация будет проводиться не на одном сервере, то надо будет реализовать синхронизацию или складывание всех кэш-файлов в одно место. Кроме того, для следующего этапа нам всё равно понадобится некоторая обработка, чтобы экспортировать в советник на следующем этапе полученные результаты оптимизации.

Тогда посмотрим в сторону организации хранения всех результатов в базе данных. На первый взгляд, это потребует достаточно больших временных затрат на реализацию. Но эту работу можно будет разбить на более мелкие этапы, и её результатами мы сможем воспользоваться сразу, не дожидаясь полной реализации. Также у такого подхода присутствует большая свобода в выборе наиболее удобных средств промежуточной обработки хранимых результатов. Например, какую-то обработку мы сможем поручить простым SQL-запросам, что-то будет рассчитываться в MQL5, а что-то — в программах, написанных, например, на Python или R. Мы сможем попробовать разные варианты обработки и выбрать наиболее подходящий.

Автор: Yuriy Bykov

Причина обращения: