Эта стратегия называется
Основная логика этой стратегии основана на сочетании диапазонов Боллинджера и индикаторов RSI.
Во-первых, полосы Боллинджера содержат три линии: среднюю линию, верхнюю линию и нижнюю линию. Средняя линия представляет собой n-дневную простую скользящую среднюю величину, в то время как верхняя линия и нижняя линия составляют k раз стандартного отклонения выше и ниже средней линии. Когда цена достигает или касается верхней или нижней линии, это указывает на то, что акция находится в состоянии перекупки или перепродажи.
В этой стратегии продолжительность периода средней линии Болинджеровских полос составляет 235 дней, а значение параметра k - 2. Он генерирует сигналы покупки, когда цена падает ниже нижней линии Болинджера или пересекает верхнюю линию, и сигналы продажи, когда цена поднимается выше верхней линии Болинджера.
Во-вторых, индикатор RSI отражает уровень перекупленности/перепроданности акций. RSI выше 70 предполагает статус перекупленности, а ниже 30 - статус перепроданности.
В этой стратегии, полосы Боллинджера и индикаторы RSI используются вместе: Сигналы покупки генерируются, когда RSI проходит через уровень перепродажи, в то время как цена касается или падает ниже нижней линии Боллинджера. Сигналы продажи генерируются, когда RSI разрушается с уровня перекупки, в то время как цена повышается выше верхней линии Боллинджера.
Эта стратегия имеет следующие преимущества:
Существуют также некоторые риски, связанные с этой стратегией:
Для дальнейшей оптимизации этой стратегии существует несколько направлений:
Это долгосрочная стратегия, особенно подходящая для высоковолатильных акций, таких как FNGU. Объединяя полосы Боллинджера и RSI, он генерирует торговые сигналы вокруг уровня перекупленных/перепроданных цен, направленные на захват возможностей переворота цен.
/*backtest start: 2023-12-29 00:00:00 end: 2024-01-28 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("Bollinger + RSI + EMA, Double Strategy Long-Only (by EMKM)", shorttitle="1Min Killer", overlay=true) ///////////// RSI RSIlength = input(2, title="RSI Period Length") // Adjusted RSI period length RSIoverSold = 50 RSIoverBought = 50 price = close vrsi = rsi(price, RSIlength) ///////////// Bollinger Bands BBlength = input(235, minval=1, title="Bollinger Period Length") // Adjusted Bollinger period length BBmult = 2 BBbasis = sma(price, BBlength) BBdev = BBmult * stdev(price, BBlength) BBupper = BBbasis + BBdev BBlower = BBbasis - BBdev BBtarget38 = BBbasis + 0.38 * BBdev // Line at 38% of Bollinger Band width BBtarget50 = BBbasis + 0.50 * BBdev // Line at 50% of Bollinger Band width ///////////// EMA emaLength = input(20, title="EMA Period Length") ema = ema(close, emaLength) source = close buyEntry = crossover(source, BBlower) or (close < BBlower and close > BBbasis) or (low < BBlower and close > BBbasis) // Add condition for low touching Bollinger Band sellEntry = crossunder(source, BBupper) ///////////// Plotting plot(BBbasis, color=color.aqua, title="Bollinger Bands SMA Basis Line") plot(BBupper, color=color.silver, title="Bollinger Bands Upper Line") plot(BBlower, color=color.silver, title="Bollinger Bands Lower Line") plot(BBtarget38, color=color.blue, linewidth=2, title="SMA at 38% of BB width") // Line at 38% plot(BBtarget50, color=color.green, linewidth=2, title="SMA at 50% of BB width") // Line at 50% plot(ema, color=color.orange, title="EMA") // Plot EMA ///////////// RSI + Bollinger Bands Strategy longCondition = crossover(vrsi, RSIoverSold) and buyEntry sellCondition = crossunder(vrsi, RSIoverBought) and close > BBupper close_long = close > BBbasis close_short = close < BBbasis if (not na(vrsi)) if longCondition strategy.entry("Buy", strategy.long, qty=10, stop=BBlower, comment="Buy") else strategy.cancel(id="Buy") if close_long strategy.close("Buy") if (sellCondition) strategy.entry("Sell", strategy.short, qty=10, stop=BBupper, comment="Sell") else strategy.cancel(id="Sell") if close_short strategy.close("Sell")