Балансировка портфеля МТС
Предлагаю вашему вниманию инструмент для оптимизации рисков портфеля механических торговых систем (ТС). Равномерное распределение рисков ТС в первую очередь необходимо для диверсификации портфеля, уменьшается взаимная корреляция ТС, повышая стабильность счета. В качестве критерия оптимизации можно взять любую из характеристик портфеля, например, фактор возврата. Его максимизация осуществляется подбором вектора рисков систем. Для двух-трех систем данную операцию можно выполнить, оценивая их графики на глаз. Но, когда дело касается десятков ТС, (в моем арсенале их три дюжины), распределить риски вручную не представляется возможным, т.к. характеристики систем сильно отличаются, а многие коррелируют между собой. Вот графики некоторых из них.
Алгоритм поиска самих ТС выходит за рамки данной статьи, скажу лишь, что оптимизация систем проводилась на истории 2008-2018гг, после чего вручную отбирались наиболее перспективные. Далее на периодах 2004-2008 … 2018-2019гг системы подвергались слепому тестированию, после которого большая часть снова отсеивалась. В среднем из 100К до счета доходит одна.
Немного о с процессе оптимизации рисков. В начале для экспорта истории сделок в МетаТрейдере потребуется функция MATLAB_LOG(), которую логично запускать в обработчике событий OnTester(). В результате ее выполнения формируется файл MatLabTest.csv, содержащий результаты (сделка/дата) всех протестированных в терминале систем.
Далее переходим к пакету MatLab. Все используемые скрипты прилагаются, код содержит многочисленные комментарии, так что при желании разобраться будет не сложно.
Переходим к программе Optimisation.m. В качестве основной функции поиска используется встроенная в MatLab функция patternsearch(). Возможные значения рисков ограничим диапазоном 0.1...3%. В результате получаем графики портфелей для разных критериев оптимизации (RF, IRF). Для сравнения приведен график портфеля, в котором риск каждой из систем равен R1=1%. Очевидно, что в данном случае оптимизация не дала ощутимого преимущества, то же самое говорят нам цифры:
Opt IRF: RF=116 iRF=2190 MOSD=0.41 Profit=818 MaxDD=7
Opt RF: RF=171 iRF=1519 MOSD=0.39 Profit=334 MaxDD=2
Opt R1: RF=118 iRF=1511 MOSD=0.38 Profit=1987 MaxDD=17
RF – фактор возврата.
iRF – модифицированный фактор возврата собственной разработки. В отличии от общеизвестного, в расчетах вместо максимальной просадки используется суммарная площадь всех просадок. Как мне кажется, он демонстрирует показатели ТС более полно.
MOSD – отношение мат. ожидания к стандартному отклонению.
Ярко выражен изменяющийся угол наклона графиков. На участках слепого тестирования он более пологий. На мой взгляд корректнее оценивать характеристики ТС как раз на этих периодах исключая периоды оптимизации (подгонки под кривую). Ниже приведены аналогичные графики для тех же семи систем на периодах 2004-2008 … 2018-2019.
Горизонтальный участок соответствует пропущенным данным участка оптимизации. Графики портфелей для тех же критериев (RF, IRF). Для наглядности они нормализованы к единице.
И сравнение портфелей с одиночными (R1) и оптимизированными рисками (IRF).
В данном случае кривая портфеля для рисков, оптимизированных по параметру IRF более плавная, его статистические показатели так же несколько эффективнее.
Opt IRF: RF=27 iRF=803 MOSD=0.27 Profit=139 MaxDD=5
Opt RF: RF=36 iRF=577 MOSD=0.26 Profit=48 MaxDD=1
Opt R1: RF=16 iRF=360 MOSD=0.21 Profit=204 MaxDD=13
По результатам работы программы Optimisation.m формируется файл NewRsk.xlsx следующего вида:
Magic |
csv_Risk |
RF_Risk |
iRF_Risk |
1123362 |
0.5 |
0.27 |
0.61 |
1372348 |
0.5 |
0.23 |
0.1 |
3110243 |
0.5 |
0.12 |
0.1 |
6081387 |
3 |
0.63 |
1.32 |
………………………………………………………………
453540751 |
0.5 |
0.1 |
0.76 |
511608174 |
0.5 |
0.1 |
0.1 |
931297936 |
0.5 |
0.1 |
1.6 |
RF |
118 |
171 |
116 |
IRF |
1467 |
1519 |
2190 |
MOSD |
0.383 |
0.392 |
0.405 |
Где Magic – столбец идентификаторов ТС, далее следуют столбцы с векторами рисков для каждого из оптимизируемых параметров и сами показатели портфеля. Осталось только вставить полученные результаты в настройки ТС портфеля.
Буду рад, если кому-то пригодятся мои наработки.
Успехов…
2 Comments
Recommended Comments