볼린저 밴드를 기반으로 한 이중 표준 편차 거래 전략


생성 날짜: 2023-12-18 17:23:42 마지막으로 수정됨: 2023-12-18 17:23:42
복사: 0 클릭수: 746
avatar of ChaoZhang ChaoZhang
1
집중하다
1621
수행원

볼린저 밴드를 기반으로 한 이중 표준 편차 거래 전략

개요

이 전략은 부린 띠의 이중 표준 격차 모형에 기반한 거래 전략이다. 부린 띠의 상하 궤도와 1과 2 표준 격차를 거래 신호로 사용한다. 가격이 부린 띠의 궤도를 돌파할 때 더 많이 하고, 가격이 부린 띠의 궤도를 돌파할 때 공백한다. 이 전략은 동시에 1과 2 표준 격차를 중단 지점으로 사용한다.

전략 원칙

이 전략은 먼저 브린 띠의 중간 궤도, 상단 궤도 및 하단 궤도를 계산한다. 중간 궤도는 CLOSE의 SMA이며 상단 궤도는 중간 궤도 +2이다.*표준이 떨어지고, 하단 트랙은 중도-2이다.*표준 격차. 가격이 상회할 때 더 많은 구매 신호를 생성하고, 가격이 하락할 때 더 많은 판매 신호를 생성한다. 또한, 전략은 중간 경로 + 1 표준 격차와 중간 경로 -1 표준 격차의 선을 그리기도 한다. 그들은 중단 지점으로 사용됩니다. 구체적인 논리는 다음과 같습니다.

  1. 브린 대역 중도선으로 CLOSE의 SMA를 계산한다
  2. CLOSE의 표준차 STD를 계산하고 2를 계산합니다.*STD
  3. 중궤도+2*STD는 브린을 궤도에 올리고, 중간 궤도-2*STD는 브린을 어
  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)