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

MQL5 Bibliothèque Autre

Tâche terminée

Temps d'exécution 4 jours
Commentaires du client
Возможно, я не самый комфортный заказчик, но нам удалось найти с разработчиком общий язык, работу выполнял быстро, идею требований понимал четко, где-то даже делал красивей, удобней, чем ожидалось.
Commentaires de l'employé
Хороший заказчик. Большое спасибо за интересный проект.

Spécifications

Не достаточно глубоко знаком с возможностями 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.    Запуск процедуры тестирования разовое для одной стратегии (не требует вмешательства по ходу – а-ля перезапускать для каждого символа или чего-т подобного), т.е. настроил, запустил, периодически поглядываешь, когда видишь, что объем данных достаточен – прерываешь (пользователь прерывает) процесс.


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

Répondu

1
Développeur 1
Évaluation
(34)
Projets
55
31%
Arbitrage
8
0% / 63%
En retard
13
24%
Gratuit
Publié : 22 articles, 1 code
2
Développeur 2
Évaluation
(49)
Projets
134
27%
Arbitrage
62
13% / 53%
En retard
58
43%
Gratuit
Publié : 277 articles, 1 code
3
Développeur 3
Évaluation
(51)
Projets
66
30%
Arbitrage
2
0% / 0%
En retard
0
Gratuit
4
Développeur 4
Évaluation
(15)
Projets
37
62%
Arbitrage
1
0% / 100%
En retard
1
3%
Gratuit
Publié : 1 article, 29 codes
5
Développeur 5
Évaluation
Projets
0
0%
Arbitrage
0
En retard
0
Gratuit
6
Développeur 6
Évaluation
(3)
Projets
4
50%
Arbitrage
1
0% / 100%
En retard
0
Gratuit
7
Développeur 7
Évaluation
(69)
Projets
146
34%
Arbitrage
13
8% / 62%
En retard
26
18%
Gratuit
Publié : 6 codes

Informations sur le projet

Budget
200 - 300 USD
Délais
à 10 jour(s)