이 전략은
이 전략의 핵심 논리는 볼링거 밴드와 RSI 지표의 조합에 기반합니다.
첫째, 볼링거 밴드는 세 개의 라인을 포함합니다: 중간 라인, 상위 라인 및 하위 라인. 중간 라인은 n 일간 간단한 이동 평균이며, 상위 라인과 하위 라인은 중간 라인의 위와 아래의 표준 편차의 k 배입니다. 가격이 상위 또는 하위 라인에 도달하거나 닿을 때 주가가 과잉 구매 또는 과잉 판매 상태에 있음을 나타냅니다.
이 전략에서 볼링거 밴드 중선의 기간 길이는 235일이며, 매개 변수 k 값은 2이다. 가격은 볼링거 하위선 이하로 떨어지거나 중선 위에 넘어가면 구매 신호를 생성하고, 가격이 볼링거 상위선 이상으로 상승하면 판매 신호를 생성한다.
두 번째로, RSI 지표는 주식의 과잉 구매/ 과잉 판매 수준을 반영합니다. RSI 70 이상은 과잉 구매 상태를, 30 이하의 과잉 판매 상태를 나타냅니다. 이 전략에서 RSI의 매개 변수 기간 길이는 2입니다.
이 전략에서는 볼링거 밴드와 RSI 지표가 함께 사용됩니다. 가격이 볼링거 하위선을 만지거나 아래로 떨어질 때 RSI가 과소매 수준을 넘어서면 구매 신호가 생성됩니다. 가격이 볼링거 상위선을 넘어서면 판매 신호가 생성됩니다.
이 전략은 다음과 같은 장점을 가지고 있습니다.
이 전략과 관련된 위험도 있습니다.
이 전략을 더 이상 최적화하기 위한 몇 가지 방향이 있습니다.
이 전략은 특히 FNGU와 같은 매우 변동성 있는 주식에 적합합니다. 볼링거 밴드 (Bollinger Bands) 와 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")