볼린저 밴드 매수 과다 및 매도 과다 전략

BB SMA
생성 날짜: 2024-09-26 17:18:11 마지막으로 수정됨: 2024-09-26 17:18:11
복사: 12 클릭수: 813
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

볼린저 밴드 매수 과다 및 매도 과다 전략

개요

부린 밴드 오버 바이 오버 세드 전략은 가격 변동과 평균 회귀 원칙에 기반한 거래 방법이다. 이 전략은 부린 밴드와 %B 지표를 사용하여 시장의 오버 바이와 오버 세드를 식별하고 장기 상승 추세에서 잠재적인 구매 기회를 찾는다. 전략의 핵심 아이디어는 가격이 상대적으로 낮은 상태에서 구매하고 가격이 상대적으로 높은 상태에 도달하면 판매하여 단기 가격 반향으로 인한 이익을 포착하는 것이다.

전략 원칙

이 전략은 다음과 같은 몇 가지 핵심 요소에 기반합니다.

  1. 트렌드 확인: 200 일간 간단한 이동 평균 ((SMA) 을 장기적인 트렌드에 대한 참고 자료로 사용한다. 전략은 200 일 SMA보다 종결 가격이 높을 때만 거래를 고려하여 주요 시장 추세와 일치하는 것을 보장한다.

  2. 과매매 조건: %B 지표를 사용하여 과매매 상태를 판단한다. %B 값이 0.2보다 3일 연속 낮으면 과매매 조건이 달성되었다고 간주된다. %B 지표는 현재 가격에 대한 브린 대역의 위치를 측정하며, 0.2보다 낮은 것은 가격이 잠재적인 과매매 지역에 가깝다는 것을 의미한다.

  3. 입시 신호: 트렌드 확인 및 과매매 조건이 충족되면 당일 종료시 다단위 포지션을 설정한다.

  4. 출구 신호: %B 값이 0.8 이상으로 닫히면, 평형 상태에서 출구한다. 이것은 가격이 부린 반도에 가까이 왔음을 나타내며, 초고가 된 지역으로 들어갈 수 있다.

전략적 이점

  1. 트렌드 따라와 반전 결합: 200일 SMA를 필터링하여, 전략은 단기 반전을 포착하는 동시에, 장기적인 트렌드와 일관성을 보장하고, 역전 거래의 위험을 낮춘다.

  2. 객관적인 입출장 조건: %B 지표를 사용하여 입출장 신호를 명확하게 제공하여 주관적인 판단으로 인한 편차를 줄인다.

  3. 평균 회귀 원칙: 전략은 금융 시장에서 흔히 볼 수 있는 평균 회귀 현상을 활용하여 평균에서 멀리 떨어진 가격으로 거래하여 수익률을 높인다.

  4. 적응력: 브린 밴드는 시장의 변동성에 따라 자동으로 조정하여 전략이 다른 시장 환경에 적응할 수 있도록합니다.

전략적 위험

  1. 가짜 신호 위험: 급격한 변동이나 가로 위 시장에서 빈번한 가짜 신호가 발생할 수 있으며, 이로 인해 빈번한 거래와 자금 손실이 발생할 수 있습니다.

  2. 트렌드 전환 위험: 200일 SMA를 필터로 사용하지만 주요 트렌드 전환점 근처에서 전략은 부정확한 신호를 생성할 수 있습니다.

  3. 스톱 로드 메커니즘의 부재: 기본 전략에 스톱 로드가 설정되지 않았기 때문에 시장이 계속 하락하면 큰 손실을 입을 수 있습니다.

  4. 시장 붕괴 위험: 시장이 급격히 하락할 때, 전략은 자주 구매 신호를 유발할 수 있으며, 이로 인해 심각한 자본 손실이 발생할 수 있다.

전략 최적화 방향

  1. 다이내믹 스톱을 도입: ATR을 사용하여 다이내믹 스톱을 설정하여 위험을 더 잘 제어 할 수 있습니다.

  2. 최적화된 입시 조건: RSI 또는 MACD와 같은 추가적인 기술 지표를 추가하여 과매매 상태를 확인하고 가짜 신호를 줄일 수 있습니다.

  3. 조정% B 마이너스: 다양한 시장 환경과 거래 유형에 따라 % B의 입출입 마이너스를 동적으로 조정할 수 있다.

  4. 거래량 분석: 거래량 지표와 결합하여 특히 시장의 역전을 판단할 때 신호의 신뢰성을 향상시킬 수 있습니다.

  5. 배치된 포지션 구축과 포지션 평정: 한 번에 모든 포지션을 구축하거나 평정하는 대신 조건을 충족하면 배치된 거래를 고려할 수 있습니다.

요약하다

부린밴드 오버 바이 오버 세일 전략은 추세 따라와 평균 회귀를 결합한 거래 방법이다. 부린밴드와 %B 지표를 활용하여, 이 전략은 시장의 단기 가격 반발 기회를 잡기 위해 고안되었다. 전략은 객관적이고 적응력이 강한 장점이 있지만, 가짜 신호와 위험 통제의 부족과 같은 과제들이 여전히 존재한다. 동적 스톱로스를 도입하고, 입시 조건을 최적화하고, 다른 기술 지표와 결합하여, 전략의 안정성과 수익성을 더욱 향상시킬 수 있다.

전략 소스 코드
/*backtest
start: 2019-12-23 08:00:00
end: 2024-09-24 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © EdgeTools

//@version=5
strategy("Larry Connors %b Strategy (Bollinger Band)", overlay=false)

// Parameters for moving averages and Bollinger Bands
sma200 = ta.sma(close, 200)
length = 20  // Bollinger Band period
src = close  // Source for Bollinger Bands
mult = 2.0   // Bollinger Band standard deviation multiplier

// Calculate Bollinger Bands and %b
basis = ta.sma(src, length)
dev = ta.stdev(src, length)
upperBand = basis + mult * dev
lowerBand = basis - mult * dev
percentB = (close - lowerBand) / (upperBand - lowerBand)

// Conditions for the strategy
condition1 = close > sma200  // Condition 1: Close is above the 200-day moving average

// %b must be below 0.2 for the last three consecutive days
condition2 = percentB[2] < 0.2 and percentB[1] < 0.2 and percentB < 0.2

// Combined buy condition
buyCondition = condition1 and condition2

// Sell condition: %b closes above 0.8
sellCondition = percentB > 0.8

// Execute buy signal when buy condition is met
if buyCondition
    strategy.entry("Buy", strategy.long)

// Execute sell signal when the sell condition is met
if sellCondition
    strategy.close("Buy")

// Plotting Bollinger Bands
plot(upperBand, color=color.new(color.rgb(255, 0, 0), 50), title="Upper Bollinger Band")  // Red color with 50% transparency
plot(lowerBand, color=color.new(color.rgb(0, 255, 0), 50), title="Lower Bollinger Band")  // Green color with 50% transparency
plot(basis, color=color.rgb(0, 0, 255), title="Middle Bollinger Band")  // Blue color

// Plot %b value for visual confirmation
plot(percentB, color=color.rgb(128, 0, 128), linewidth=2, title="%b Value")  // Purple color

// Additional lines to improve visualization
hline(0.2, "Oversold (0.2)", color=color.rgb(255, 165, 0), linestyle=hline.style_dashed)  // Orange dashed line at 0.2
hline(0.8, "Overbought (0.8)", color=color.rgb(255, 105, 180), linestyle=hline.style_dashed)  // Pink dashed line at 0.8

// Set background color when a position is open
bgcolor(strategy.opentrades > 0 ? color.new(color.green, 50) : na)