볼린저 밴드 전략 이동


생성 날짜: 2024-04-01 15:58:04 마지막으로 수정됨: 2024-04-01 15:58:23
복사: 0 클릭수: 607
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

볼린저 밴드 전략 이동

개요

Modified Bollinger Bands Strategy (변조된 볼링거 밴드 전략) 은 강력한 상승 추세에서 역부임 구매 기회를 잡기 위한 기술적 분석 거래 전략이다. 이 전략은 부린 밴드, 이동 평균 및 무작위 RSI 지표를 결합하여 최적의 구매 시점을 결정한다. 가격이 상승 추세에서 부린 밴드 아래로 회전하고 무작위 RSI 지표가 초과 판매를 표시할 때, 전략은 구매 신호를 발산한다.

전략 원칙

  1. 브린띠: 브린띠는 3개의 선으로 구성되어 있으며, 중선은 이동 평균이고, 상하선은 중선은 기하급수이다. 브린띠는 가격의 변동 상황을 반영할 수 있으며, 가격 변동이 심할 때 브린띠는 넓어지고, 가격 변동이 약할 때 브린띠는 좁아진다.
  2. 이동 평균: 이 전략은 50주기 간단한 이동 평균을 트렌드 필터로 사용합니다. 종전 가격이 이동 평균보다 높을 때만 더 많은 것을 고려합니다. 이는 현재 상승 추세에 있음을 나타냅니다.
  3. 랜덤 RSI: 랜덤 RSI는 특정 기간 동안 RSI의 상위 및 하위 범위에 대한 수준을 측정하는 동적인 진동 지표입니다. 오버 바이와 오버 세일 신호를 생성 할 수 있습니다. 이 전략에서 랜덤 RSI는 오버 세일 영역으로 돌아가는 가격을 식별하기 위해 추가적인 조건을 제공합니다.

이 전략의 구매 조건은 다음과 같습니다.

  • 부린 반지하에서 하락한 종점 가격은 초하락이 가능하다는 것을 나타냅니다.
  • 종점 가격은 50주기 간단한 이동 평균보다 높으며, 전체적인 추세는 여전히 긍정적이다.
  • 무작위 RSI는 오버소드 조건을 나타냅니다. (K선은 사용자 정의한 하위값, 일반적으로 20보다 낮습니다.) 이는 최근 하향 추세가 반전되거나 조정될 수 있음을 나타냅니다.

전략의 매각 (평평한 다수 상위 포지션) 조건은 다음과 같습니다:

  • 종결값이 브린을 뚫고 궤도에 올랐다는 것은 가격이 단기 최고점에 도달했을 수도 있고, 반전 또는 회전이 일어날 수도 있다는 것을 의미한다.

전략적 이점

  1. 트렌드 추적: 이동 평균을 트렌드 필터로 사용하여 이 전략은 거래자가 강력한 상승 추세에서 입문 기회를 찾을 수 있도록 도와줍니다. 이것은 하향 추세에서 거래를 피하는 데 도움이되어 전략의 승률을 높입니다.
  2. 변동성 관리: 부린 띠는 거래자가 가격의 변동성을 이해하도록 도와줍니다. 부린 띠 아래의 레일에서 구매함으로써, 이 전략은 가격이 상대적으로 낮은 수준으로 회전할 때 진입을 시도하여 추세가 회복될 때 이익을 얻습니다.
  3. 동력 확인: 무작위 RSI 지표는 잠재적인 구매 기회를 확인하는 데 도움이 됩니다. 무작위 RSI가 과매매 조건을 표시하도록 요구함으로써, 이 전략은 하향 추세가 여전히 지배적일 때 너무 일찍 진입하는 것을 피하려고합니다.

전략적 위험

  1. 위험 관리의 부족: 이 전략에는 내장된 스톱 로즈 또는 포지션 규모 관리 기능이 없습니다. 실제 거래에서 이것들은 중요한 위험 관리 도구입니다. 거래자는 자신의 위험 수용 능력과 거래 목표에 따라 적절한 스톱 로즈 및 포지션 크기를 결정해야합니다.
  2. 변수 민감성: 전략의 성능은 브린 밴드 길이, 이동 평균 길이 및 무작위 RSI 변수의 선택에 민감할 수 있습니다. 다른 변수 조합은 다른 결과를 가져올 수 있습니다. 전략을 실행하기 전에 이러한 변수를 최적화하고 재검토하는 것이 필요합니다.
  3. 트렌드 역전: 이 전략은 상승 추세에서 반전을 시도하지만, 추세가 지속될 것을 보장하지 않습니다. 추세가 갑자기 반전되면 이 전략은 손실을 입을 수 있습니다.

전략 최적화 방향

  1. 위험 관리: 전략에 스톱 로즈 및 포지션 규모 관리 기능을 추가하여 잠재적 인 손실을 제한하고 위험 수익을 최적화합니다. ATR (평균 실제 범위) 또는 비율 인출을 기반으로 동적 스톱 로즈를 고려할 수 있습니다.
  2. 최적화 파라미터: 브린 밴드 길이, 이동 평균 길이, 브린 밴드 표준 격차 배수 및 무작위 RSI 파라미터를 최적화하여 다양한 시장 조건에서 전략의 성능을 향상시킵니다. 유전자 알고리즘이나 격자 검색과 같은 최적화 기술을 사용하여 최적의 파라미터 조합을 찾을 수 있습니다.
  3. 다른 지표와 결합: 추가 확인 신호를 제공하고 가짜 신호를 필터링하는 데 도움이되는 MACD 또는 OBV와 같은 다른 기술 지표를 전략에 포함시키는 것을 고려하십시오.
  4. 반추 및 전망 테스트: 다양한 시장 조건과 시간 프레임에 따라 전략에 대한 철저한 반추. 전략의 안정성을 검증하기 위해 표본 외의 데이터에 대한 전략을 평가하기 위해 전망 테스트를 사용합니다.

요약하다

수정된 볼링거 밴드 전략은 강력한 상승 추세에서 반전 구매 기회를 잡기 위한 간단하고 효과적인 거래 전략이다. 부린 밴드, 이동 평균 및 무작위 RSI 지표를 결합하여 이 전략은 가격이 넘어섰지만 전체적인 추세는 여전히 낙관적 인 경우를 식별하려고 한다. 이 전략은 트렌드 추적 및 변동성 관리와 같은 몇 가지 장점에도 불구하고 위험 관리 및 변수 민감성의 부족과 같은 몇 가지 위험이 있습니다. 적절한 위험 관리 기술을 도입하여 변수를 최적화하고 다른 지표를 결합하면 이 전략을 더욱 향상시킬 수 있습니다. 실제 적용하기 전에 전략에 대한 전체적인 피드백과 전향 테스트가 필요합니다.

전략 소스 코드
/*backtest
start: 2024-03-01 00:00:00
end: 2024-03-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Modified Bollinger Bands Strategy", shorttitle="Mod BB Strategy", overlay=true)

// Input parameters for Bollinger Bands
length = input.int(20, minval=1, title="BB Length")
mult = input.float(2.0, minval=0.001, maxval=50, title="BB StdDev")

// Input parameters for moving average
maLength = input.int(50, minval=1, title="MA Length")

// Input parameters for Stochastic RSI
kLength = input.int(14, title="Stoch RSI K Length")
dLength = input.int(3, title="Stoch RSI D Length")
rsiLength = input.int(14, title="Stoch RSI Length")
oversold = input.float(20, title="Stoch RSI Oversold Level")

// Calculate Bollinger Bands
basis = ta.sma(close, length)
dev = mult * ta.stdev(close, length)
upperBB = basis + dev
lowerBB = basis - dev

// Calculate Moving Average
movingAvg = ta.sma(close, maLength)

// Calculate Stochastic RSI
rsi = ta.rsi(close, rsiLength)
k = ta.sma(ta.stoch(rsi, rsi, rsi, kLength), dLength)
d = ta.sma(k, dLength)

// Define buy and sell conditions
longCondition = close < lowerBB and close > movingAvg and k < oversold
exitCondition = close > upperBB

// Plotting
plot(basis, "Basis", color=color.new(#FF6D00, 0))
plot(upperBB, "Upper", color=color.new(#2962FF, 0))
plot(lowerBB, "Lower", color=color.new(#2962FF, 0))
plot(movingAvg, "Moving Average", color=color.new(#FFFF00, 0))

// Execute strategy
if (longCondition)
    strategy.entry("Buy", strategy.long)
if (exitCondition)
    strategy.close("Buy")