God
이 전략의 핵심 논리는 다음과 같은 점에 기초합니다.
종료 가격의 20주기 간단한 이동평균을 기본 중간 대역으로 계산합니다.
중위 대역을 기준으로 상위 대역과 하위 대역을 계산합니다. 상위 대역은 중위 대역 + 종료 가격의 20주기 표준편차 2배, 하위 대역은 중위 대역 - 종료 가격의 20주기 표준편차 2배입니다.
과잉 매입 및 과잉 판매 현상을 판단하기 위해 14 기간 RSI 지표를 계산하십시오. 20 이하의 RSI는 과잉 매매이며 70 이상은 과잉 매매입니다.
닫기 가격이 상단 레일을 넘어 올라가면 RSI 지표가 과잉 판매 신호를 표시하면 구매 신호가 생성됩니다.
닫기 가격이 상부 레일을 넘어 내려갈 때 RSI 지표가 과잉 구매 신호를 표시하면 판매 신호가 생성됩니다.
이 전략은 볼링거 밴드 지표를 통해 가격 변동의 리듬과 속도를 판단하고 RSI 지표로 가능한 반전 지점을 감지하여 거래 신호를 발행합니다.
볼링거 밴드 지표는 시장 변동성 리듬과 방향을 결정할 수 있으며, RSI 지표는 과잉 구매 및 과잉 판매 현상을 판단합니다. 이 조합은 효과적인 거래 신호를 형성합니다.
RSI 지표 매개 변수는 조절이 가능하며 잘못된 신호를 피하기 위해 다른 시장에 따라 다른 과반 구매 및 과반 판매 수준을 설정할 수 있습니다.
볼링거 밴드 매개 변수는 또한 적절한 매개 변수를 설정하고 수익성을 향상시키기 위해 시장 변동성 범위와 속도에 따라 조정 할 수 있습니다.
상단 트랙을 뚫는 것은 구매 신호를 형성하고 상단 트랙을 아래로 뚫는 것은 판매 신호를 형성합니다. 거래 논리는 간단하고 이해하기 쉽습니다.
주식, 외환 및 암호화폐 시장에서 사용할 수 있습니다.
지속적인 상승 시장에서 구매 신호의 여러 가지 잘못된 판단을 일으킬 수 있습니다. RSI 매개 변수를 최적화함으로써 오류 신호 비율을 줄일 수 있습니다.
불안정한 시장에서 볼링거 밴드의 상부 및 하부 트랙은 자주 변동하여 빈번한 수익성이없는 거래로 이어질 수 있습니다. 불필요한 거래를 줄이기 위해 브레이크아웃 매개 변수를 적절히 느슨하게하십시오.
코드는 과잉 매입과 과잉 판매 기준이 고정되어 있다고 가정하지만 다른 시장 변동성 수준에 따라 설정되어야합니다.
볼링거 밴드와 RSI 인디케이터는 모두 지연을 가지고 있으며 사전에 가격 움직임을 예측할 수 없지만 가격 변화를 추적 할 수 있습니다.
다른 시장의 특성에 따라 볼링거 밴드의 매개 변수를 조정하고 볼링거 밴드의 폭을 늘리고 잘못된 거래의 가능성을 줄이십시오.
또한 RSI 매개 변수들은 다른 시장에 맞게 조정되어야 하며, 여러 가지 잘못된 거래 신호를 유발하지 않기 위해 과잉 구매 및 과잉 판매 기준을 적절히 높여야 합니다.
KDJ 및 MACD와 같은 판단을 위한 다른 지표를 증가시켜 단일 볼링거 밴드 및 RSI 지표로 인한 오류를 피합니다.
스톱 로스 전략을 강화하고 과도한 손실을 피하기 위해 합리적인 스톱 로스 포인트를 설정합니다.
브레이크아웃 테스트 또는 백테스팅 매개 변수 최적화는 전략 안정성을 더 향상시키기 위해 고려 될 수 있습니다.
God
/*backtest start: 2023-01-16 00:00:00 end: 2024-01-22 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("Bollinger Band + RSI Strategy", overlay=true) // Input variables numCandlesOutsideBB = input(3, "Number of Candles Outside BB") numCandlesOutsideUpperBB = input(3, "Number of Candles Outside Upper BB") rsiLength = input(14, "RSI Length") rsiOversoldLevel = input(20, "RSI Oversold Level") rsiOverboughtLevel = input(70, "RSI Overbought Level") // Bollinger Bands length = input(20, minval=1, title="BB Length") mult = input(2.0, minval=0.001, maxval=50, title="BB Standard Deviation") basis = sma(close, length) dev = mult * stdev(close, length) upperBB = basis + dev lowerBB = basis - dev // RSI rsi = rsi(close, rsiLength) // Buy condition buyCondition = crossover(close, upperBB) and rsi > rsiOversoldLevel // Sell condition sellCondition = crossunder(close, upperBB) and rsi > rsiOverboughtLevel // Strategy if buyCondition strategy.entry("Buy", strategy.long) if sellCondition strategy.close("Buy") // Plotting plot(upperBB, color=color.blue) plot(lowerBB, color=color.red) plot(rsi, "RSI", color=color.green)