Стратегия прорыва RSI накопления


Дата создания: 2023-10-27 11:20:50 Последнее изменение: 2023-10-27 11:20:50
Копировать: 0 Количество просмотров: 759
1
Подписаться
1617
Подписчики

Стратегия прорыва RSI накопления

Обзор

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

Стратегический принцип

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

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

Кроме того, в стратегии добавлена опция фильтра тренда. Покупка и открытие позиции осуществляется только тогда, когда цена выше 100-дневного скользящего среднего значения, то есть в канале восходящего тренда. Этот фильтр позволяет избежать ошибочных сделок во время колебаний цены.

Стратегические преимущества

  • Используйте накопленный RSI, чтобы эффективно отфильтровать шум и зафиксировать средне- и длиннолинейные тенденции
  • Добавление фильтров трендов, чтобы избежать нерациональных сделок
  • Оценка с использованием динамических цен, а не фиксированных значений
  • Более конфигурируемые параметры, которые можно настроить для разных рынков
  • 10-летняя ретроспективная стратегия дает более высокие доходы, чем стратегия “покупай и держи”

Риски и улучшения стратегии

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

Подвести итог

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

Исходный код стратегии
/*backtest
start: 2023-09-26 00:00:00
end: 2023-10-26 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// @version=5
// Author = TradeAutomation


strategy(title="Cumulative RSI Strategy", shorttitle="CRSI Strategy", process_orders_on_close=true, overlay=true, commission_type=strategy.commission.cash_per_contract, commission_value=.0035, slippage = 1, margin_long = 75, initial_capital = 25000, default_qty_type=strategy.percent_of_equity, default_qty_value=110)


// Cumulative RSI Indicator Calculations //
rlen  = input.int(title="RSI Length", defval=3, minval=1)
cumlen = input(3, "RSI Cumulation Length")
rsi = ta.rsi(close, rlen)
cumRSI = math.sum(rsi, cumlen)
ob = (100*cumlen*input(94, "Oversold Level")*.01)
os = (100*cumlen*input(20, "Overbought Level")*.01)


// Operational Function //
TrendFilterInput = input(false, "Only Trade When Price is Above EMA?")
ema = ta.ema(close, input(100, "EMA Length"))
TrendisLong = (close>ema)
plot(ema)


// Backtest Timeframe Inputs // 
startDate = input.int(title="Start Date", defval=1, minval=1, maxval=31)
startMonth = input.int(title="Start Month", defval=1, minval=1, maxval=12)
startYear = input.int(title="Start Year", defval=2010, minval=1950, maxval=2100)
endDate = input.int(title="End Date", defval=1, minval=1, maxval=31)
endMonth = input.int(title="End Month", defval=1, minval=1, maxval=12)
endYear = input.int(title="End Year", defval=2099, minval=1950, maxval=2100)
InDateRange = (time >= timestamp(syminfo.timezone, startYear, startMonth, startDate, 0, 0)) and (time < timestamp(syminfo.timezone, endYear, endMonth, endDate, 0, 0))


// Buy and Sell Functions //
if (InDateRange and TrendFilterInput==true)
    strategy.entry("Long", strategy.long, when = ta.crossover(cumRSI, os) and TrendisLong, comment="Buy", alert_message="buy")
    strategy.close("Long", when = ta.crossover(cumRSI, ob) , comment="Sell", alert_message="Sell")
if (InDateRange and TrendFilterInput==false)
    strategy.entry("Long", strategy.long, when = ta.crossover(cumRSI, os), comment="Buy", alert_message="buy")
    strategy.close("Long", when = ta.crossover(cumRSI, ob), comment="Sell", alert_message="sell")
if (not InDateRange)
    strategy.close_all()