Нужен советник по простой системе на основе объема (по акциям)

Specification

Необходимо написать советника (эксперт) для дальнейшей оптимизации параметров. Система на основе объема (по акциям) на минутных данных (уже есть закаченные рыночные данные) по портфелю акций.

0.     Импортировать в MT5 подгруженные ранее рыночные данные по 70 акциям с 2020 г. (данные уже приведены к нужному формату).

1. По списку тикеров  посчитать средний объем (дневной) за последние 2 месяца, оставить в списке 80% с наибольшим средним объемом. Таким образом сформировать базу для дальнейших расчетов. Это делается окном и пересчитывается ежедневно.

2. По базе: ежедневно считать доходности с 23:49 предыдущего дня до 16:00 текущего дня по всей базе. 

3. По базе: ежедневно считать направленный объем с 23:49 предыдущего дня до 16:00 текущего дня по всей базе по следующей формуле: 

# directional_pressure = sum( sign(return) * abs(return) * real_volume )  

4. Далее для попадания (покупки) в портфель бумаги должно одновременно сложиться 2 условия: доходность > 2%* и посчитанный объем (directional_pressure ) > 10 000* . Покупки осуществляются сразу после расчетов. Продажи осуществляются в 10 утра следующего за покупками дня.

5. Максимальное количество отобранных бумаг в портфеле - 5. Веса распределяются равномерно. Сумма весов = 1 (100% от капитала). Если в каком-то дне нет бумаг удовлетворяющих условиям из п. 4 - ничего не происходит. На следующий день расчеты повторяются.

6.     Если отобранных бумаг больше 5 приоритет отдается доходности (на python): df_selected = df_result[(df_result["Return_%"] > 2) & (df_result["directional_pressure "] > 10000)].sort_values(by="Return_%", ascending=False).head(5)

С * это параметры для оптимизации.

По итогу выполненных работ должен быть приложен исходный код.


Responded

1
Developer 1
Rating
(394)
Projects
555
41%
Arbitration
30
57% / 3%
Overdue
57
10%
Free
Published: 11 codes
2
Developer 2
Rating
(44)
Projects
74
20%
Arbitration
1
0% / 100%
Overdue
0
Free
3
Developer 3
Rating
(5)
Projects
10
20%
Arbitration
1
0% / 100%
Overdue
1
10%
Working
4
Developer 4
Rating
(39)
Projects
52
19%
Arbitration
15
27% / 67%
Overdue
8
15%
Free
Published: 1 code
5
Developer 5
Rating
(72)
Projects
147
67%
Arbitration
21
10% / 71%
Overdue
44
30%
Free
6
Developer 6
Rating
(1)
Projects
2
50%
Arbitration
3
0% / 33%
Overdue
0
Free
7
Developer 7
Rating
(172)
Projects
186
32%
Arbitration
5
60% / 20%
Overdue
3
2%
Free
Published: 3 codes
8
Developer 8
Rating
(611)
Projects
711
33%
Arbitration
45
49% / 42%
Overdue
14
2%
Working
9
Developer 9
Rating
(298)
Projects
478
40%
Arbitration
105
40% / 24%
Overdue
82
17%
Loaded
Published: 2 codes
10
Developer 10
Rating
(3)
Projects
1
100%
Arbitration
3
0% / 100%
Overdue
0
Free

Project information

Budget
100+ USD
Deadline
from 2 to 10 day(s)