Эта стратегия сочетает в себе скользящую среднюю величину и индекс относительной силы (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")