볼린저 밴드 표준 편차 돌파 전략

SMA
생성 날짜: 2024-04-30 16:51:34 마지막으로 수정됨: 2024-04-30 16:51:34
복사: 3 클릭수: 571
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

볼린저 밴드 표준 편차 돌파 전략

개요

이 전략은 부린띠 지표에 기초하여, 종결 가격이 상향 궤도를 돌파할 때 다단위 포지션을 개설하고, 종결 가격이 하향 궤도를 돌파할 때 공백 포지션을 개설한다. 다단위 포지션은 가격이 중도 궤도를 돌파하고, 공백 포지션은 가격이 중도 궤도를 돌파하는 것을 조건으로 한다. 이 전략은 부린띠 상향 하향 궤도에 대한 가격에 대한 경향 방향을 판단하고, 공백 포지션을 개설하는 시간을 이용한다.

전략 원칙

  1. 브린 벨트 상하중앙 궤도를 계산한다. 중앙 궤도는 종전 가격의 간단한 이동 평균이며, 상하중앙 궤도는 곱수의 표준차를 더 빼는 것이다.
  2. 마감가격이 경로를 돌파했을 때, 상장 포지션을 다.
  3. 종결 가격이 하락할 때, 공백 상점 포지션을 다.
  4. 다수 상위 포지션을 보유할 때, 종식 가격이 중간 궤도를 넘어간다면 다수 상위 포지션을 평면화한다.
  5. 공백점 포지션을 보유할 때, 만약 종결 가격이 중궤도를 뚫면 공백점 포지션을 평평하게 한다.

전략적 이점

  1. 부린 띠는 가격의 변동 범위와 추세 방향을 효과적으로 반영할 수 있으며, 가격의 부린 띠에 대한 위치를 활용하여 평점을 설정하여 추세 상황을 포착할 수 있다.
  2. 상하 궤도 거리는 중하 궤도에서 일정 표준 차이가 있으며, 가격 변동률의 변화에 적응할 수 있다. 표준 차이가 클수록 상하 궤도 거리는 중하 궤도에서 더 멀리 있다.
  3. 평상시 조건은 역으로 상하로 돌파하는 대신 중철을 사용함으로써 제동을 최대한 빨리 막을 수 있다.
  4. 매개 변수는 조정할 수 있으며, 브린반드 주기, 표준차이배수 등의 매개 변수는 다른 품종과 주기에 맞게 최적화할 수 있다.

전략적 위험

  1. 불안정한 시장에서, 가격이 상하철 근처에서 반복적으로 변동하며, 거래비용을 증가시키는 빈번한 하락이 발생할 수 있습니다.
  2. 가격 가속화 트렌드 운동이 있을 때, 포지션 개시 지점은 상대적으로 뒤쳐져 있고, 바람을 따라갈 능력이 약하다.
  3. 추세 전환 초기, 회귀는 중궤도 평소 지점을 만지며, 추세가 계속 발전하면, 후속 행세를 놓치게 된다.

전략 최적화 방향

  1. ATR과 같은 스톱로스 지표와 결합하여 회수를 제어할 수 있다.
  2. 다중 빈 위치의 동적 비율을 사용할 수 있습니다. 트렌드 강도에 따라 위치의 유연한配置.
  3. 포지션 개설 조건은 포지션 개설 신호의 신뢰성을 높이기 위해 양 가격 지표와 같은 더 많은 필터링 조건과 결합 할 수 있습니다.

요약하다

이 전략은 전형적인 트렌드 추적형 전략으로, 브린을 통해 트렌드 상황을 포착한다. 전략 논리는 명확하고, 장점은 분명하지만, 또한 약간의 위험이 존재한다. 전략의 성능을 개선하고, 적응력을 높일 수 있는 방법은, 스톱 로드, 포지션 관리 및 포지션 개설 필터 등을 최적화하는 것이다. 그러나 모든 전략에는 한계가 있으며, 실제 시장 상황과 결합하여 유연하게 적용되어야 한다.

전략 소스 코드
/*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
// 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(20, minval=1, title = "Length")
mult = input.float(2.0, minval=0.001, maxval=50, title = "Multiplier")

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

// Strategy
long_condition = ta.crossover(close, upper1)
short_condition = ta.crossunder(close, lower1)

if (long_condition)
    strategy.entry("Long", strategy.long)
if (short_condition)
    strategy.entry("Short", strategy.short)

// Exit conditions
exit_long_condition = ta.crossunder(close, basis)
exit_short_condition = ta.crossover(close, basis)

if (exit_long_condition)
    strategy.close("Long")
if (exit_short_condition)
    strategy.close("Short")


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))