
Эта стратегия объединяет в себе два технических показателя: скользящие средние и относительно сильные индексы (RSI), позволяя запечатлеть сезонные и периодические характеристики, в результате чего создаются торговые сигналы. Преимущество этой стратегии заключается в том, что сезонные тенденции можно очень четко идентифицировать, но при этом существует риск быть введенным в заблуждение ошибочными сигналами.
Эта стратегия сначала вычисляет скользящую среднюю за определенный период n, чтобы уловить среднесрочную тенденцию цены. Затем вычисляет показатель RSI для этой скользящей средней, чтобы определить, находится ли она в состоянии перекупа или перепродажи. RSI определяет текущее настроение рынка, рассчитывая соотношение роста и падения за определенный период.
Когда RSI пересекает низкую траекторию, создается сигнал “покупать”, что означает, что он в настоящее время в состоянии перепродажи. Когда RSI пересекает низкую траекторию, создается сигнал “продавать”, что означает, что он в настоящее время в состоянии перепродажи, что означает, что он в состоянии перепродажи. Кроме того, стратегия также устанавливает диапазон месяцев и дат, чтобы торговать только между указанными месяцами и датами, чтобы улавливать сезонные особенности.
Существует риск быть введенным в заблуждение ошибочными сигналами. Например, обратный тренд, вызванный внесезонными внезапными событиями, может привести к ненадлежащим торговым сигналам. Решение заключается в том, чтобы скорректировать диапазон месячных дат, чтобы избежать риска возможных событий.
При реверсии тренда может возникнуть отклонение между скользящим средним и RSI, что приводит к несоответствию торговых сигналов. Решение заключается в соответствующей корректировке параметров скользящих средних, сокращая циклы для более быстрого захвата реверсии тренда.
Предполагаемый диапазон месячных дат может иметь отклонения от времени появления фактических сезонных явлений. Решение заключается в определении более точных параметров диапазона сезонов на основе тестирования исторических данных.
Сигналы торговли могут иметь ложные прорывы. Решение заключается в том, чтобы установить более широкий диапазон, чтобы избежать заблуждения небольшими колебаниями.
Можно ввести другие вспомогательные показатели, такие как шокирующий индекс акций ((STOCH) и т.д., чтобы установить более строгие фильтрующие условия и уменьшить ошибочные сигналы.
Можно тестировать больше различных комбинаций параметров, чтобы найти оптимальные параметры для улучшения эффективности стратегии. Например, корректировать циклы движущихся средних, параметры восходящей и нисходящей колебаний 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")