리소스 로딩... 로딩...

볼링거 밴드 및 스톡RSI 모멘텀 전략

저자:차오장, 날짜: 2023-10-30 17:19:21
태그:

img

전반적인 설명

볼링거 밴드 및 스토크RSI 모멘텀 전략은 널리 사용되는 두 가지 기술적 지표: 볼링거 밴드 및 스토카스틱 RSI를 결합하여 금융 시장에서 잠재적 인 구매 및 판매 기회를 식별하도록 설계되었습니다. 이 전략은 모멘텀 변화를 파악하고 가격 움직임을 활용하는 것을 목표로합니다.

전략 논리

이 전략은 다음 두 가지 지표를 이용합니다.

볼링거 밴드: 볼링거 밴드 (Bollinger Band) 는 가격 차트에서 세 줄로 구성됩니다. 중간 밴드로서 간단한 이동 평균 (SMA) 과 SMA에서 표준 편차를 나타내는 상부 및 하부 밴드. 이러한 밴드는 높은 변동성과 낮은 기간을 식별하는 데 도움이됩니다.

스토카스틱 RSI (StochRSI): 스토카스틱 RSI는 상대적 강도 지수 (RSI) 에서 파생된 모멘텀 오시일레이터입니다. 그것은 그 범위에 대한 RSI의 위치를 측정하고 과잉 구매 및 과잉 판매 수준을 식별하는 데 유용합니다.

전략의 매개 변수에는 다음이 포함됩니다.

  • 볼링거 밴드 길이는 볼링거 밴드를 계산하는 데 사용되는 기간의 수입니다. 더 긴 길이는 장기 트렌드를 포착하고 짧은 길이는 가격 변화에 더 빠르게 반응합니다.

  • 볼링거 밴드 오차 (Bollinger Bands Deviation): 표준 오차를 스케일함으로써 밴드의 폭을 조정합니다. 더 높은 값은 더 높은 변동성을 설명하기 위해 폭을 증가시킵니다.

  • 스톡RSI 길이: 스톡RSI를 계산하는 데 사용되는 기간의 수. 짧은 길이 지표가 최근 가격 변동에 더 반응하도록합니다.

  • K 및 D 기간: StochRSI에서 감수성에 영향을 미치는 평평화 및 신호 라인 생성을 제어합니다.

거래 논리:

  • 볼링거 밴드는 선택된 길이와 오차에 따라 계산됩니다. 밴드는 SMA를 포괄하고 변동성을 정량화합니다.

  • StochRSI는 정의된 길이를 사용하여 계산되며 0에서 100 사이의 오스실레이션 K 및 D 선을 생성합니다. 이것은 운동량 변화를 식별합니다.

  • 구매 조건은 StochRSI K 라인이 D 라인의 위를 넘고 클로즈가 낮은 볼링거 밴드 아래에 있을 때 발생합니다. 이것은 낮은 변동성을 가진 잠재적 인 상승 반전을 암시하며 구매 기회를 신호합니다.

  • 판매 조건은 StochRSI K 라인이 D 라인 아래를 넘어가고 클로지는 상부 볼링거 밴드 위에 있을 때 시작됩니다. 이것은 높은 변동성을 가진 잠재적인 하향 반전을 나타내고 판매 기회를 신호합니다.

  • 엔트리 오더는 구매/판매 조건이 충족되면 시장 기대에 따라 장기 또는 단기 순서로 배치됩니다.

  • 선택적 인 구매/판매 신호는 위/하위 삼각형을 사용하여 차트에서 시각화 할 수 있습니다.

  • 이 전략은 볼링거 밴드, 스토크RSI K/D를 시각 분석으로 표시합니다.

장점

  • 두 개의 널리 사용되는 지표를 결합하여 두 가지 모두에서 이익을 얻습니다.

  • 볼링거 밴드는 변동성 추세를 파악하고, 스톡RSI는 반전을 감지합니다.

  • 사용자 정의 가능한 매개 변수는 다른 거래 스타일과 시장 환경에 적합합니다.

  • 명확한 입력 신호는 시각적 그래프 모양으로 생성됩니다.

  • 조건에 따라 길고 짧게 거래할 수 있습니다.

  • 체계적인 논리는 역 테스트를 통해 성능을 정량화 할 수 있습니다.

위험성

  • 성능은 매개 변수 최적화에 달려 있습니다.

  • 거래비용과 미끄러짐은 수익성에 영향을 미치므로 고려해야 합니다.

  • 볼링거 대역의 폭은 매우 중요합니다. 너무 넓거나 좁으면 정확도가 떨어집니다.

  • 심각한 변동은 잘못된 신호의 가능성을 증가시킵니다.

  • 스톱 손실은 위험 통제를 위해 시행되고 모니터링되어야 합니다.

더 나은 기회

  • 목표 기기와 시간 프레임에 대한 매개 변수를 최적화합니다.

  • 트래일링 스톱 또는 포지션 사이즈링을 포함하여 거래별 리스크를 제어합니다.

  • 신호 신뢰성을 높이기 위해 MACD, KDJ와 같은 다른 지표를 사용하는 필터를 추가합니다.

  • 구매/판매 신호의 확률을 판단하기 위해 기계 학습을 포함합니다.

  • 트렌드에 반하는 거래를 피하기 위해 볼륨 지표를 추가합니다.

결론

이 전략은 볼링거 밴드 (Bollinger Bands) 와 스톡RSI (StockRSI) 를 사용하여 거래 동력 변화에 대한 체계적인 접근 방식을 제공합니다. 강력한 최적화, 백테스팅 및 리스크 관리로 강력한 실용적 잠재력을 가지고 있습니다. 추가 개선으로 신뢰할 수있는 자동화 거래 시스템으로 구축 할 수 있습니다.


/*backtest
start: 2023-10-22 00:00:00
end: 2023-10-29 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("My Strategy with Bollinger Bands and StochRSI", overlay=true)

// Define your Bollinger Bands parameters
bollinger_length = input.int(20, title="Bollinger Bands Length")
bollinger_dev = input.float(2, title="Bollinger Bands Deviation")

// Calculate Bollinger Bands
sma = ta.sma(close, bollinger_length)
dev = bollinger_dev * ta.stdev(close, bollinger_length)

upper_band = sma + dev
lower_band = sma - dev

// Define your StochRSI parameters
stoch_length = input.int(14, title="StochRSI Length")
k_period = input.int(3, title="K Period")
d_period = input.int(3, title="D Period")

// Calculate StochRSI
rsi = ta.rsi(close, stoch_length)
k = ta.sma(ta.stoch(rsi, rsi, rsi, k_period), k_period)
d = ta.sma(k, d_period)

// Define your buy and sell conditions
buy_condition = ta.crossover(k, d) and close < lower_band
sell_condition = ta.crossunder(k, d) and close > upper_band

// Place orders based on the conditions
if (buy_condition)
    strategy.entry("Buy", strategy.long)

if (sell_condition)
    strategy.entry("Sell", strategy.short)

// Optional: Plot buy and sell signals on the chart
plotshape(buy_condition, color=color.green, style=shape.triangleup, location=location.belowbar, size=size.small)
plotshape(sell_condition, color=color.red, style=shape.triangledown, location=location.abovebar, size=size.small)

// Plot Bollinger Bands and StochRSI on the chart
plot(upper_band, title="Upper Bollinger Band", color=color.blue)
plot(lower_band, title="Lower Bollinger Band", color=color.orange)
plot(k, title="StochRSI K", color=color.green)
plot(d, title="StochRSI D", color=color.red)



더 많은