-
Июн4
Активные инвестиции, улучшаем результаты Марковица
Filed under: Без рубрики;Решил намедни перетестировать и формализовать свою торговую стратегию, что из этого получилось смотрим ниже.
Основной задачей активного управления буду считать улучшение показателей описанных в предыдущей статье Инвестиционные портфели ценных бумаг ( теория Марковица ), при активном управлении будут протестированы входы и выходы, а так же замена фьючерса на индекс на опцион колл.
Проверку идеи входов/выходов буду проводить на портфеле из 15 наиболее активно торгуемых бумагах на ММВБ, на периоде с 2001 по сегодняшний день. После этого проверю будет ли улучшен результат на RI+золото, если применять стратегию код которой для WealthLab показан ниже.
using System;
using System.Collections.Generic;
using System.Text;
using System.Drawing;
using WealthLab;
using WealthLab.Indicators;
namespace WealthLab.Strategies
{
public class MyStrategy : WealthScript
{
protected override void Execute()
{
DataSeries maFast = SMA.Series(Close, 7);
DataSeries maSlow = SMA.Series(Close, 21);
DataSeries RSISeries = RSI.Series(Close, 14);
DataSeries sar = Parabolic.Series( Bars, 0.02, 0.02, 0.2 );
double hb = 0;
PlotSeries(PricePane,maFast,Color.Red,LineStyle.Solid,2);
PlotSeries(PricePane,maSlow,Color.Green,LineStyle.Solid,2);
PlotSeries(PricePane, sar, Color.Red, WealthLab.LineStyle.Dots, 3 );
ChartPane paneRSI = CreatePane(75,true,true);
PlotSeries(paneRSI, RSISeries, Color.Navy, LineStyle.Solid, 2);
DrawHorzLine(paneRSI, 25, Color.Red, LineStyle.Solid, 1);
DrawHorzLine(paneRSI, 75, Color.Red, LineStyle.Solid, 1);
for(int bar = 21; bar < Bars.Count; bar++) { if (ActivePositions.Count==0) hb = Math.Max(High[bar],High[bar-1]); if ((maFast[bar] > maSlow[bar])
& (RSISeries[bar] > RSISeries[bar-1])
& (sar[bar]<=Low[bar]) & Close[bar]>Open[bar]
& (hb * 0.94 < Close[bar]) ) { if( ActivePositions.Count < 5 ) BuyAtClose(bar, "MainOpen"); } foreach ( Position p in Positions ) { if ( p.Active ) { if (hb < High[bar]) { hb = High[bar]; } SellAtStop( bar+1, p, Math.Max(sar[bar], hb * 0.94 ), "SAR-Stop" ); } } } } } }
Итак, идея входов весьма простая: ждём появления растущего рынка (по средним и RSI) и входим в него пятью частями. В качестве стопа будем применять параболик (SAR) и 6% трайлер-стоп.
На рисунке показан результат исследования по экспериментальному портфелю. Вход осуществляется 50000 рублей, прибыль не реинвестируется, проскальзывание + комиссия 0,2%.
На мой взгляд даже без какой-либо оптимизации получилось весьма не плохо, тренд доходности равномерно растущий, без особых провалов, провал 2008 года отработан на отлично.
Тестируем на основном портфеле золото+РТС , параметры те же , только комиссия 1 рубль.
Картина в целом позитивная, тренд доходности опережает стратегию "Купил и Держи". На графике видны шипы, которые планируется уменьшить с помощью опционов.
Профиль доходности в виде улитки.
Моделировать применение опционов я не стал, но решил просчитать эффективность на одном полном трейде.дата кол-во страйк цена фьючерса цена опциона волатильность событие кредит по опционам кредит по фьючерсам 26.03.2011 1 c195 199160 6009,51 26 вход 6009,51 199160 28.03.2011 1 c195 199859,7 6441,66 25,5 вход 6441,66 199859,66 30.03.2011 1 c195 199734,5 6361,51 25,58 вход 6361,51 199734,54 01.04.2011 -3 c195 200000 6466,56 24,84 ролирование -19399,68 01.04.2011 3 c200 200000 3440,47 24,84 ролирование 10321,41 01.04.2011 1 c200 204098,9 5902,72 24,84 вход 5902,72 204098,89 04.04.2011 1 c200 204799,6 6463,87 25,41 вход 6463,87 204799,6 04.04.2011 5 c205 205000 3607,39 25,41 ролирование 18036,95 04.04.2011 -5 c200 205000 6607,34 25,41 ролирование -33036,7 12.04.2011 -5 c205 202154,4 2328,42 25,34 закрытие -11642,1 -1010772 итого расход -4540,85 -3119,31 Результат вполне ожидаемый, с помощью опционов удалось удержать на 50% больше прибыли. При этом не учитывалось, что ГО по опционам меньше чем по фьючерсам и разницу можно положить на депозит.