Вторая часть
Третья часть
Четвертая часть
Пятая часть
Шестая часть
Седьмая часть
Для того, чтобы найти наиболее прибыльные стратегии, иногда требуется перебрать несколько активов, чтобы понять с каким из них наша стратегия работает лучше. Это несложно реализовать, немного изменив наш код.
Давайте теперь возьмем три акции из разных секторов, например ВТБ, Роснефть и НЛМК. Непосредственно в коде стратегии необходимо отредактировать всего одну строку:
# Наши активы, которыми мы торгуем
symbols <- c("VTBR", "ROSN", "NLMK")
Запускаем тестирование и видим, что теперь у нас все то же самое делается для трех активов. Для получения графиков по трем активам необходимо немного изменить код:
# Визуализация результатов тестирования
for(symbol in symbols) {
filename <- paste(symbol, ".tiff")
chart.Posn(portfolio.st, Symbol = symbol,
TA = "add_SMA(n = 7, col = 4); add_SMA(n = 21, col = 2)")
}
Статистические показатели тестирования выводятся с помощью той же команды:
# Статистика торговли
tstats <- tradeStats(portfolio.st)
kable(t(tstats), format = "simple", caption = "Стратегия пересечения двух скользящих средних")
Table: Стратегия пересечения двух скользящих средних
NLMK ROSN VTBR
------------------- ------------- ------------- -------------
Portfolio Port.CrossMA Port.CrossMA Port.CrossMA
Symbol NLMK ROSN VTBR
Num.Txns 56 71 65
Num.Trades 28 35 32
Net.Trading.PL 5495.000 9939.000 -1298.701
Avg.Trade.PL 216.25000 161.25714 -19.97719
Med.Trade.PL -41.000 -404.000 -20.113
Largest.Winner 2757 6585 0
Largest.Loser -750.00 -1822.00 -20.55
Gross.Profits 9774.500 24197.000 -153.975
Gross.Losses -3719.500 -18553.000 -485.295
Std.Dev.Trade.PL 771.2340940 1794.3742370 0.6113361
Std.Err.Trade.PL 145.74954 303.30460 0.10807
Percent.Positive 50 40 25
Percent.Negative 50 60 75
Profit.Factor 2.6279070 1.3042096 0.3172812
Avg.Win.Trade 698.17857 1728.35714 -19.24687
Med.Win.Trade 438.0000 1000.5000 -19.5715
Avg.Losing.Trade -265.67857 -883.47619 -20.22062
Med.Losing.Trade -198.7500 -830.0000 -20.2405
Avg.Daily.PL 216.25000 161.25714 -19.97719
Med.Daily.PL -41.000 -404.000 -20.113
Std.Dev.Daily.PL 771.2340940 1794.3742370 0.6113361
Std.Err.Daily.PL 145.74954 303.30460 0.10807
Ann.Sharpe 4.451129 1.426613 -518.745772
Max.Drawdown -1819.000 -6715.000 -1299.301
Profit.To.Max.Draw 3.0208906 1.4801191 -0.9995382
Avg.WinLoss.Ratio 2.6279070 1.9563143 -0.9518437
Med.WinLoss.Ratio 2.2037736 1.2054217 -0.9669475
Max.Equity 6464 11409 0
Min.Equity -1537.000 -3277.000 -1299.301
End.Equity 5495.000 9939.000 -1298.701
Наибольшую прибыль показала Роснефть, но у нее также самая большая просадка, поэтому наибольший профит-фактор у НЛМК. В то же время ВТБ оказался убыточным.
Выведем также графики эффективности торговой стратегии, здесь вышеприведенные показатели можно посмотреть в графическом виде:
Необходимо отметить, что при таком запуске тестирования с несколькими активами quantstrat предполагает, что торговля всеми этими активами происходит параллельно на одном счете, поэтому при расчете показателей портфеля будут отображаться суммарные показатели торговли всеми активами:
# Показатели эффективности портфеля
ret <- Return.calculate(equity, method = "log")
charts.PerformanceSummary(ret, colorset = bluefocus,
main = "Strategy Performance")
Кривая эквити:
Комментариев нет:
Отправить комментарий