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

MQL5 Librerie Altro

Lavoro terminato

Tempo di esecuzione 4 giorni
Feedback del cliente
Возможно, я не самый комфортный заказчик, но нам удалось найти с разработчиком общий язык, работу выполнял быстро, идею требований понимал четко, где-то даже делал красивей, удобней, чем ожидалось.
Feedback del dipendente
Хороший заказчик. Большое спасибо за интересный проект.

Specifiche

Не достаточно глубоко знаком с возможностями MQL5 и MetaTrader 5, поэтому описываю функционально как это должно выглядеть, по форме не знаю, как это может выглядеть (скрипт, библиотека, программный запуск отдельных версий mt5 или без этого и т.д.). Для простоты дальше буду называть это «приложением».

 

Суть и назначение приложения:

Есть некая (планируется использовать этот флоу для всех стратегий) стратегия, которая содержит некоторое кол-во параметров (задающихся через ключевое слово input). Необходимо генерировать рандомные комбинации значений параметров (в рамках их min, max, step), инициировать прогон для каждой комбинации, по итогам прогона писать потранзакционные результаты прогона в файл.

 

Функциональные требования:

1.    Задействование многопоточности (если процессор имеет большое число ядер – все они задействуются).

2.   Результаты пишутся в файл по итогам каждого прогона (где прогон – бэктест на одном тикере для одной комбинации значений параметров). Т.е. прошло 5 минут – записались результаты, например, 25 прогонов, прошел час – итого записались результаты 130 прогонов.

3.    При записи потранзакционных результатов прогона пишутся все сделки с их результатами, а так же значениями параметров стратегии для данного прогона. Записать в csv формат. В примере поля основные, вроде, привел, лучше побольше полей писать. Пример:

strategy_params;position_entry_datetime;position_comment;entry_price;profit;ticker

window=10,sma_window=10,k=2.7;10.11.2021 10:00:00;”входим по тренду”;10.5;127;SBER

4.    Тестирование производится по набору инструментов (тикеров). Срандомили кобминацию значений параметров – прогнали эту комбинацию для каждого из тикеров из набора. Дальше следующая рандомная комбинация значений параметров – прогнали её по всем тикерам.

5.   Стратегии могут обрабатывать событие OnTick() поэтому подавать тикер при прогоне как параметр нельзя, нужен какой-то другой механизм, как я понимаю. Т.е. стратегия всегда берет тикер из _Symbol, закладываемся на это.

6.    Комбинации значений параметров генерятся бесконечно, т.е. прерывание процесса только от пользователя. Не обязательно изящно, можно удалением скрипта с графика или аналогичным способом.

7.    Потранзакционные результаты пишутся после каждого прогона (тикер-набор значений параметров).

8.    Запуск процедуры тестирования разовое для одной стратегии (не требует вмешательства по ходу – а-ля перезапускать для каждого символа или чего-т подобного), т.е. настроил, запустил, периодически поглядываешь, когда видишь, что объем данных достаточен – прерываешь (пользователь прерывает) процесс.


Готовое приложение передается вместе с исходными файлами.

Con risposta

1
Sviluppatore 1
Valutazioni
(34)
Progetti
55
31%
Arbitraggio
8
0% / 63%
In ritardo
13
24%
Gratuito
Pubblicati: 22 articoli, 1 codice
2
Sviluppatore 2
Valutazioni
(49)
Progetti
134
27%
Arbitraggio
62
13% / 53%
In ritardo
58
43%
Gratuito
Pubblicati: 277 articoli, 1 codice
3
Sviluppatore 3
Valutazioni
(51)
Progetti
66
30%
Arbitraggio
2
0% / 0%
In ritardo
0
Gratuito
4
Sviluppatore 4
Valutazioni
(15)
Progetti
37
62%
Arbitraggio
1
0% / 100%
In ritardo
1
3%
Gratuito
Pubblicati: 1 articolo, 29 codici
5
Sviluppatore 5
Valutazioni
Progetti
0
0%
Arbitraggio
0
In ritardo
0
Gratuito
6
Sviluppatore 6
Valutazioni
(3)
Progetti
4
50%
Arbitraggio
1
0% / 100%
In ritardo
0
Gratuito
7
Sviluppatore 7
Valutazioni
(69)
Progetti
146
34%
Arbitraggio
13
8% / 62%
In ritardo
26
18%
Gratuito
Pubblicati: 6 codici

Informazioni sul progetto

Budget
200 - 300 USD
Scadenze
a 10 giorno(i)