Блог им. egenui

Как создаются красивые трендовые эквити.

Самая обычная и распространенная ошибка в построении трендовых систем, это когда вы получаете сигнал в конце периода, но открываете/закрываете позицию в этом же периоде. Этот пост об этом.

Скачаем данные и создадим скользящую среднюю по месячным данным SP500

require(quantmod)
require(xts)
require(TTR)
require(PerformanceAnalytics)

getSymbols('^GSPC', src='yahoo', from = '1900-01-01')
monthlyGSPC <- Ad(GSPC)[endpoints(GSPC, on = 'months')]

movAvg <- SMA(monthlyGSPC, 10)

signal <- monthlyGSPC > movAvg
gspcRets <- Return.calculate(monthlyGSPC)
Далее построим две системы одна с ошибкой заглядывания, вторая корректная. Суть системы простая, месячная SMA с периодом 10, выше покупаем, ниже продаем.

lookahead <- signal * gspcRets
correct <- lag(signal) * gspcRets

И построим результаты систем, на обычной шкале, и на логарифмической.

compare <- na.omit(cbind(gspcRets, lookahead, correct))
colnames(compare) <- c("S&P 500", "Lookahead", "Correct")
charts.PerformanceSummary(compare)
rbind(table.AnnualizedReturns(compare), maxDrawdown(compare), CalmarRatio(compare))
logRets <- log(cumprod(1+compare))
chart.TimeSeries(logRets, legend.loc='topleft')

Как создаются красивые трендовые эквити.
Как создаются красивые трендовые эквити.

График не совсем удобный, можно посмотреть доходности на логарифмической шкале.

Как создаются красивые трендовые эквити.
Данная публикация является личным мнением автора. Мнение владельца сайта может не совпадать с мнением автора.
    396 | ★13
    16 комментариев
    Тимофей Мартынов подсветка что-то слабая) и она меняется после редактирования на произвольную )
    avatar
    В какой платформе это все делается?
    avatar
    sergeygaz, это язык R
    avatar

    Можно еще например при расчете скользящего среднего забыть указать fill=NA:
     
    sma <- rollmeanr(prices, ma_periods, fill=NA)

    В результате полученное среднее будет заглядывать вперед на величину периода, а эквити будет поражать воображение.

    avatar
    Marco, Спасибо, интересно!
    avatar
    Да уж! На злобу дня! Как раз хотел обсудить эту тему на некотором сайте, где у них там выставлены подобные резалты(не буду пока называть какой, но они там мне коечто продали), но меня там просто забанили, закрылись в домике, и говорят что не пустят :) 
    Народ, а дайте ссылки на внятное описание quantmod'а и PErformanceAnalytics'а? Или на R-bloggers искать? В частности, интересует решение задачи:
    1) получить тиковые данные по инструменту (желательно с финама, но умеет ли квантмод с финамом работать?) за период N дней,
    2) сформировать собственные свечки исходя из тиковых данных,
    3) представить данные OHLC или хотя бы C в ts или ином векторизованном формате для работы иных пакетов (н-р, fGarch или rugarch).

    Пасиб!
    Не совсем понял про сделку внутри периода.
    Имеется ввиду, что тестер получает сигнал о пересечении МА на цене закрытия, а сделка совершается по уровню МА?

    Если я получаю сигнал о пересечении МА на цене закрытия и совершаю сделку по цене закрытия то тут заглядывания вроде нет.
    avatar
    Alex, весь смысл поста можно уложить в следующее предложение. В случае выше, если свеча N закрывается выше сигнальной линии, то доходность надо считать начиная со свечи N+1.
    avatar
    есть еще способ рисовать эквити — отрицательное проскальзывание и комиссии…
    avatar
    Есть еще вариант сделать систему, которая будет зарабатывать не заглядывая в будущее, но наверное это совсем для слабаков :D
    avatar
    SECRET, что за вариант?
    avatar
    Alex, сделать зарабатывающую систему — это и есть вариант :)
    avatar
    SECRET, это про которую Vanuta писал? )
    avatar
    Alex, я не в курсе, наверное он у меня в BL :)
    avatar
    Хотя бы ссылку на источник указываете :)) 
    avatar

    Читайте на SMART-LAB:
    Фото
    📃 Продать жалко, держать бессмысленно — что делать с нерастущими акциями?
    Даже у самых опытных участников рынка идеи периодически не срабатывают. Когда акция пошла не в ту сторону, сложно оценить её...
    Дошли до точки: новые «Итоги недели»
    Доллар по 28, инфляция в минусе. «Жизнь налаживается», — шутят эксперты. Согласен ли с ними рынок? Какие процессы в экономике говорят об обратном?...
    Фото
    В БКС запустили акцию для новых инвестиций – можно получить кешбэк до 600 000 ₽.
    🪩 Время большого кешбэка    В БКС запустили акцию для новых инвестиций – можно получить кешбэк до 600 000 ₽ .   Что участвует:...
    Фото
    Сделки УК Первой! Полностью продали одну нефтегазовую компанию в НОЛЬ чтобы купить другие истории
    Продолжаю делать серию ежемесячных постов с отслеживанием покупок/продаж профессиональными управляющими. Особенно теми, кто управляет МИЛЛИАРДАМИ...

    теги блога evgen000

    ....все тэги



    UPDONW
    Новый дизайн