Стратегия RSI сезонного диапазона скользящего среднего

Автор:Чао Чжан, Дата: 2023-10-27 16:04:21
Тэги:

img

Обзор

Эта стратегия сочетает в себе скользящую среднюю величину и индекс относительной силы (RSI), два технических индикатора, чтобы улавливать сезонные циклические характеристики и генерировать торговые сигналы. Преимущество этой стратегии заключается в том, что она может очень четко идентифицировать сезонные тенденции, но также имеет риск быть введен в заблуждение неправильными сигналами. Дальнейшие оптимизации могут быть сделаны путем корректировки параметров для улучшения эффективности стратегии.

Логика стратегии

Стратегия сначала рассчитывает скользящую среднюю за определенный период n, чтобы определить направление средне-долгосрочного тренда. Затем она рассчитывает индикатор RSI скользящей средней, чтобы судить, находится ли она в настоящее время в состоянии перекупленности или перепроданности. RSI измеряет настроение рынка, рассчитывая соотношение прибыли и убытков за определенный период.

Когда RSI пересекает нижний диапазон, генерируется сигнал покупки, указывающий на состояние перепродажи, и может быть открыта длинная позиция. Когда RSI пересекает нижний диапазон, генерируется сигнал продажи, указывающий на состояние перекупки, и может быть открыта короткая позиция. Кроме того, стратегия также устанавливает диапазон месяца и даты для торговли только в течение конкретных месяцев и дней, чтобы поймать сезонные модели.

Преимущества стратегии

  • Использование скользящей средней для определения основного тренда и РСИ для оценки сценариев перекупа/перепродажи, объединение двойных индикаторов для повышения точности

  • Установление месячного и датового диапазонов позволяет эффективно определить сезонные тенденции и использовать такие торговые возможности

  • Гибкие настройки параметров RSI для корректировки чувствительности при определении уровня перекупленности/перепроданности

  • Настраиваемые параметры скользящих средних для адаптации чувствительности при оценке основных тенденций

Риски и решения

  • Риск быть введенным в заблуждение неправильными сигналами, например, изменение тренда, вызванное несезонными событиями, может привести к неправильным торговым сигналам.

  • Дивергенция может возникнуть между скользящей средней и RSI, когда тренд меняется.

  • Предварительно установленный месячный и датовый диапазоны могут отклоняться от фактических сезонных тенденций.

  • Решение заключается в том, чтобы установить более широкий диапазон, чтобы избежать заблуждения незначительными колебаниями.

Руководство по оптимизации

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

  • Испытать больше различных комбинаций параметров, чтобы найти оптимальные параметры и улучшить эффективность стратегии, например, скорректировать период скользящей средней, диапазоны RSI и т. д.

  • Использование методов оптимизации параметров для автоматического поиска пространства параметров для оптимальных наборов параметров.

  • Соберите больше исторических данных и используйте машинное обучение для обучения и оптимизации правил стратегии.

  • Подумайте о добавлении стратегий стоп-лосса/приобретения прибыли для оптимизации управления деньгами.

Резюме

Эта стратегия сочетает в себе скользящую среднюю и RSI, с добавлением сезонных суждений, чтобы сформировать относительно полную систему для определения тренда и перекупленности / перепроданности. Преимущество заключается в его способности четко распознавать сезонные модели и извлекать выгоду из таких торговых возможностей.


/*backtest
start: 2023-09-26 00:00:00
end: 2023-10-26 00:00:00
period: 3h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy(title = " RSI of MA Strategy ",shorttitle="MARSI Strategy",default_qty_type = strategy.percent_of_equity, default_qty_value = 100,commission_type=strategy.commission.percent,commission_value=0.1,initial_capital=1)



lengthofma = input(15,minval=1,title="Length of MA")
len = input(14, minval=1, title="Length")
upperband = input(70,minval=1,title='Upper Band for RSI')
lowerband = input(30,minval=1,title="Lower Band for RSI")

src=sma(close,lengthofma)
up = rma(max(change(src), 0), len)
down = rma(-min(change(src), 0), len)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))
plot(rsi, color=purple)

band1 = hline(upperband)
band0 = hline(lowerband)
fill(band1, band0, color=purple, transp=90)



longCond =  crossover(rsi,lowerband)

shortCond =  crossunder(rsi,upperband)




monthfrom =input(1)
monthuntil =input(12)
dayfrom=input(1)
dayuntil=input(31)

if (  longCond ) 
    strategy.entry("LONG", strategy.long, stop=close, oca_name="TREND",  comment="LONG")
    
else
    strategy.cancel(id="LONG")
    



if ( shortCond ) 

    strategy.entry("SHORT", strategy.short,stop=close, oca_name="TREND",  comment="SHORT")
else
    strategy.cancel(id="SHORT")





Больше