볼링거 밴드 및 RSI 짧은 판매 전략

저자:차오장, 날짜: 2023-12-15 15:54:05
태그:

img

전반적인 설명

볼링거 밴드 및 RSI 단축 판매 전략은 볼링거 밴드 및 상대적 강도 지수 (RSI) 를 기반으로 한 단기 거래 전략이다. 시장이 과열되어 있는지 측정하기 위해 볼링거 밴드와 RSI를 결합하여 시장의 추진력을 결정하고 단축 판매 기회를 식별합니다. 가격이 볼링거 상위 밴드 이상과 RSI가 70보다 높을 때 단축됩니다. 시장이 과열되어 있음을 나타냅니다. 볼링거 하부 밴드가 가격 이상으로 깨지면 포지션을 닫고 시장 역전을 신호합니다.

전략 논리

이 전략은 두 가지 주요 지표에 의존합니다.

  1. 볼링거 밴드. 볼링거 밴드는 중간 밴드, 상위 밴드 및 하위 밴드로 구성됩니다. 중간 밴드는 n 일 이동 평균입니다. 상위 및 하위 밴드는 중간 밴드 위에 및 아래에 n 표준 편차입니다. 가격이 하위 밴드에서 상위 밴드로 반등하면 시장이 과열되어 있다고 간주됩니다. 가격이 상위 밴드에서 하위 밴드로 떨어지면 시장이 냉각되었습니다.

  2. RSI. RSI는 상승 추세와 하락 추세의 강도를 결정하기 위해 기간 동안의 평균 이익과 손실을 비교합니다. RSI가 70 이상이면 가격이 과열되었다는 신호입니다. RSI가 30 이하이면 가격이 과판되었다는 신호입니다.

구체적인 거래 논리는 다음과 같습니다.

  1. 가격이 볼링거 상단 너머를 넘어서고 RSI가 70보다 높으면 볼링거 과열 신호와 RSI 과반 구매 신호를 유발하고, 따라서 단위로 이동합니다.

  2. 가격이 볼링거 하위 대역 아래로 떨어지면 시장은 더 추워지고, 따라서 포지션은 닫습니다.

이 전략은 또한 스톱 로스를 설정하고 수익을 취합니다.

  1. 스톱 로즈는 입시 가격 * (1+1%) 로 설정되며, 즉 1%의 손실을 견딜 수 있습니다.

  2. 영업이익은 입시 가격 * (1-7%) 로 설정됩니다. 즉, 7%의 영업이익을 취하고 그 다음 포지션을 닫습니다.

장점

이 전략은 다음과 같은 장점을 가지고 있습니다.

  1. 볼링거 밴드와 RSI를 결합하여 하나의 지표로 잘못된 판단의 가능성을 피합니다.

  2. 볼링거 밴드 (Bollinger Bands) 와 RSI (RSI) 를 이용해서 단기 거래에 대한 정확한 출입 및 출출 시기를 결정합니다.

  3. 스톱 로스를 설정하고 리스크를 통제하기 위해 수익을 취합니다.

  4. 단순하고 명확한 논리, 이해하기 쉽고 실행하기 쉽습니다.

  5. 유연한 볼링거 밴드 및 RSI 매개 변수, 다른 기간과 시장 환경에 따라 조정할 수 있습니다.

위험성

이 전략의 장점에도 불구하고, 이 전략은 다음과 같은 위험을 완화시킬 수 있습니다.

  1. 볼링거 밴드와 RSI 모두 트렌드를 따르는 지표로, 범위 또는 방향 없는 시장에 적합하지 않습니다.

  2. 손해를 멈추고 이익을 취하는 것을 보장할 수 없습니다. 항상 완벽하게 작동합니다.

  3. 극심한 시장 움직임은 스톱 로스로 침투하여 예상 이상의 손실을 초래할 수 있습니다.

  4. 변화하는 시장에 적응하기 위해 지표의 지속적인 매개 변수를 조정해야 합니다.

대응한 위험 관리 방법:

  1. 지역 추세를 결정하기 위해 이동 평균과 같은 기본 지표들을 포함시켜 불필요한 윙사들을 피하십시오.

  2. 포지션 크기를 낮추고, 전략을 다각화해서 위험을 분산시켜

  3. 스톱 로스 비율을 늘리거나 슈퍼 스톱을 설정하여 극심한 시장 움직임을 견딜 수 있습니다.

  4. 실시간 테스트 결과에 따라 매개 변수를 지속적으로 조정합니다.

최적화 기회

이 전략을 더 이상 최적화하기 위해 몇 가지 측면을 고려할 수 있습니다.

  1. 불필요한 윙사브를 피하기 위해 다른 지표를 포함하십시오. 예를 들어 EMA, MACD.

  2. 다양한 제품과 시간 프레임에서 최적의 매개 변수를 테스트합니다. 예를 들어 주요 암호화폐와 주식에서 15m, 30m, 1h.

  3. 동적 정지, 정지 레벨을 조정 실시간 시장 변동성을 기반으로 정지 실행의 위험을 부드럽게 구현합니다.

  4. 기계 학습 알고리즘을 통해 최적화를 고려하여 자동으로 최적의 매개 변수 또는 더 복잡한 패턴을 발견합니다.

결론

단기 전략은 먼저 볼링거 밴드 (Bollinger Bands) 와 RSI (RSI) 를 통해 시장 온도와 동력을 측정함으로써 최적의 단기 판매 시기를 식별합니다. 그 다음 스톱 로스와 리프트를 통해 위험을 제어합니다. 이 전략의 장점은 단순성과 구현의 편리함입니다. 주요 위험은 지표 제한과 스톱 러닝에서 비롯됩니다. 솔루션에는 더 많은 지표, 동적으로 조정하는 매개 변수 및 더 넓은 스톱을 허용하는 것이 포함됩니다. 더 많은 지표와 계산 개선을 도입함으로써 최적화 할 여지가 있습니다.


/*backtest
start: 2023-12-07 00:00:00
end: 2023-12-14 00:00:00
period: 1m
basePeriod: 1m
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/
// © Coinrule
// Works best on 30m, 45m timeframe

//@version=5
strategy("Bollinger Bands and RSI Short Selling",
         overlay=true,
         initial_capital = 1000,
         default_qty_value = 30,
         default_qty_type = strategy.percent_of_equity,
         commission_type=strategy.commission.percent,
         commission_value=0.1)

//Backtest period
timePeriod = time >= timestamp(syminfo.timezone, 2021, 12, 1, 0, 0)
notInTrade = strategy.position_size <= 0

//Bollinger Bands Indicator
length = input.int(20, minval=1)
src = input(close, title="Source")
mult = input.float(2.0, minval=0.001, maxval=50, title="StdDev")
basis = ta.sma(src, length)
dev = mult * ta.stdev(src, length)
upper = basis + dev
lower = basis - dev
offset = input.int(0, "Offset", minval = -500, maxval = 500)
plot(basis, "Basis", color=#FF6D00, offset = offset)
p1 = plot(upper, "Upper", color=#2962FF, offset = offset)
p2 = plot(lower, "Lower", color=#2962FF, offset = offset)
fill(p1, p2, title = "Background", color=color.rgb(33, 150, 243, 95))


// RSI inputs and calculations
lengthRSI = 14
RSI = ta.rsi(close, lengthRSI)
oversold= input(30)


//Stop Loss and Take Profit for Shorting
Stop_loss= ((input (1))/100)
Take_profit= ((input (7)/100))

shortStopPrice  = strategy.position_avg_price * (1 + Stop_loss)
shortTakeProfit = strategy.position_avg_price * (1 - Take_profit)

//Entry and Exit
strategy.entry(id="short", direction=strategy.short, when=ta.crossover(close, upper) and RSI < 70 and timePeriod and notInTrade)

if (ta.crossover(upper, close) and RSI > 70 and timePeriod)
    strategy.exit(id='close', stop = shortTakeProfit, limit = shortStopPrice)

    


더 많은