볼링거 밴드 이중 표준편차 거래 전략

저자:차오장, 날짜: 2023-12-18 17:23:42
태그:

img

전반적인 설명

이 전략은 볼링거 밴드 이중 표준 편차 모형을 기반으로 설계된 거래 전략이다. 볼링거 밴드의 상부와 하부 레일과 하나와 두 개의 표준 편차를 거래 신호로 사용합니다. 가격이 상부 레일을 통과할 때 길고 가격이 하부 레일을 통과할 때 짧습니다. 이 전략은 또한 하나와 두 개의 표준 편차를 스톱 로스 라인으로 사용합니다.

전략 논리

이 전략은 먼저 볼링거 밴드의 중간 레일, 상부 레일 및 하부 레일을 계산합니다. 중간 레일은 CLOSE의 SMA이며, 상부 레일은 중간 레일 + 2입니다.표준편차, 그리고 하부 레일은 중부 레일 - 2표준편차. 가격이 상부 레일을 넘을 때, 사기 신호가 길게 이동하도록 생성됩니다. 가격이 하부 레일을 넘을 때, 판매 신호가 짧게 이동하도록 생성됩니다. 또한 전략은 또한 중간 레일 + 1 표준편차 및 중간 레일 - 1 표준편차의 선을 플롯합니다. 그들은 중지 손실 라인으로 사용됩니다. 구체적인 논리는 다음과 같습니다:

  1. Bollinger Bands의 중간 레일로 CLOSE의 SMA를 계산합니다.
  2. CLOSE의 표준편차 STD를 계산하고 2*STD를 계산합니다
  3. 중간 레일 + 2STD는 볼링거 반도의 상단 레일, 중단 레일 - 2STD는 하부 레일입니다
  4. 가격이 상위 레일을 통과 할 때 길게 가십시오
  5. 가격이 하부 레일을 통과 할 때 짧은 이동
  6. 중간 레일 + 1*STD는 스톱 로스 라인 역할을 합니다. 스톱 로스 라인이 끊어지면 포지션을 닫습니다.

전략 의 장점

  1. 이중 표준편차 설계는 잘못된 신호를 피하기 위해 브레이크오웃 판단을 더 엄격하게 만듭니다.
  2. 이중 스톱 손실 라인 설계는 위험 통제를 극대화
  3. 큰 매개 변수 최적화 공간, 중간 레일 기간 및 표준 편차의 복수 조정 할 수 있습니다
  4. 스톱 로스 레벨을 조정하여 마감량을 조절할 수 있습니다.

전략 의 위험

  1. 볼링거 밴드 전략은 잘못된 브레이크오웃에 취약하여 부정확한 거래 신호로 이어집니다.
  2. 이중 표준편차와 이중 스톱 손실 라인 설정 너무 엄격, 너무 많은 신호를 필터로 기회를 놓칠 수 있습니다
  3. 부적절한 매개 변수 설정은 전략의 위험을 증가시킬 수 있습니다.
  4. 적립 통제는 극단적인 시장 조건에서 손실을 효과적으로 통제하기에 충분하지 않습니다.

최적화 방향

  1. 거짓 브레이크오웃을 피하기 위해 볼링거 밴드 거래 신호를 필터하기 위해 다른 지표를 결합하는 것을 고려하십시오.
  2. 다른 매개 변수 설정을 테스트하고 더 나은 반환 / 드래곤 비율을 위해 매개 변수를 최적화
  3. 트레일링 스톱 로스 또는 주식 비율 스톱 로스와 같은 동적 스톱 로스 메커니즘을 설계
  4. 기계 학습 알고리즘을 결합하여 매개 변수를 자동으로 최적화합니다.

결론

일반적으로 이 전략은 전형적인 볼링거 밴드 브레이크아웃 전략이다. 신호 판단의 엄격성을 높이기 위해 이중 표준 오차를 사용하며 위험을 적극적으로 제어하기 위해 이중 스톱 손실 라인을 채택한다. 전략은 일부 매개 변수 최적화 공간을 가지고 있다. 중간 레일 기간과 표준 오차 곱셈자와 같은 매개 변수들을 조정함으로써 더 나은 전략 성능을 얻을 수 있다. 동시에, 전략은 볼링거 밴드 전략에서 잘못된 브레이크아웃의 일반적인 문제도 직면한다. 또한, 스톱 손실 메커니즘에 대한 추가 개선과 최적화의 여지가 있다.


/*backtest
start: 2022-12-11 00:00:00
end: 2023-12-17 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
// Bollinger Bands: Madrid : 14/SEP/2014 11:07 : 2.0
// This displays the traditional Bollinger Bands, the difference is 
// that the 1st and 2nd StdDev are outlined with two colors and two
// different levels, one for each Standard Deviation

strategy(shorttitle='MBB', title='Bollinger Bands', overlay=true)
src = input(close)
length = input.int(34, minval=1)
mult = input.float(2.0, minval=0.001, maxval=50)

basis = ta.sma(src, length)
dev = ta.stdev(src, length)
dev2 = mult * dev

upper1 = basis + dev
lower1 = basis - dev
upper2 = basis + dev2
lower2 = basis - dev2

colorBasis = src >= basis ? color.blue : color.orange

pBasis = plot(basis, linewidth=2, color=colorBasis)
pUpper1 = plot(upper1, color=color.new(color.blue, 0), style=plot.style_circles)
pUpper2 = plot(upper2, color=color.new(color.blue, 0))
pLower1 = plot(lower1, color=color.new(color.orange, 0), style=plot.style_circles)
pLower2 = plot(lower2, color=color.new(color.orange, 0))

fill(pBasis, pUpper2, color=color.new(color.blue, 80))
fill(pUpper1, pUpper2, color=color.new(color.blue, 80))
fill(pBasis, pLower2, color=color.new(color.orange, 80))
fill(pLower1, pLower2, color=color.new(color.orange, 80))

// Entry conditions
longCondition = ta.crossover(close, upper1)
shortCondition = ta.crossunder(close, lower1)

// Entry and exit strategy
strategy.entry("Buy", strategy.long, when=longCondition)
strategy.entry("Sell", strategy.short, when=shortCondition)

strategy.close("Buy", when=shortCondition)
strategy.close("Sell", when=longCondition)

더 많은