Блог им. 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')

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

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

Как создаются красивые трендовые эквити.
Данная публикация является личным мнением автора. Мнение владельца сайта может не совпадать с мнением автора.
    404 | ★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:
    Фото
    Сегмент Non-Life RENI опубликовал отчетность по ОСБУ за 6 месяцев 2026 года
    17 июля 2026 года на e-disclosure.ru мы опубликовали отчетность ПАО «Группа Ренессанс Страхование» по ОСБУ за 6 месяцев 2026 года, которая...
    Инвестиции без спешки: торгуем в выходные
    Алексей Девятов Клиенты Альфа-Инвестиций могут совершать сделки в выходные . Торги в эти дни не отличаются волатильностью, но если всё-таки...
    Фото
    Один из лучших ИИ на планете уже доступен алготрейдерам России. Kimi K3
    Итак, вчера вышла новая китайская модель с открытыми весами. Kimi K3. Выше только Fable и GPT-5.6. И то не во всех тестах. Вся...
    Фото
    Сделки УК Первой: все очень скверно - минус 30% с начала года и Полюс топ-1 позиция на конец июня (до отмены дивов)
    Продолжаю делать серию ежемесячных постов с отслеживанием покупок/продаж профессиональными управляющими. Особенно теми, кто управляет МИЛЛИАРДАМИ...

    теги блога evgen000

    ....все тэги



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