리소스 로딩... 로딩...

볼링거 밴드 이중 표준 오차 필터링 5분 양적 거래 전략

저자:차오장, 날짜: 2024-04-30 16:03:11
태그:BBSMAstdev

img

전반적인 설명

이 전략은 볼링거 밴드 지표에 기반하고 있으며, 5분 시간 프레임에서 빠른 거래를 달성하기 위해 이중 표준편차 필터를 사용합니다. 가격이 하위 밴드 아래로 넘어갈 때 구매하고 상위 밴드 위에 넘어갈 때 판매합니다. 상위 및 하위 밴드는 다른 표준편차로 설정되어 있으며 다른 색으로 표시되어 있으며, 시각적으로 트렌드의 힘을 보여줍니다.

전략 원칙

  1. 볼링거 밴드 (Bollinger Bands) 의 기준값을 계산합니다. 상단 1, 상단 2, 하단 1, 하단 2.
  2. 닫기 가격이 하위 계단 1을 넘을 때 구매 신호를 생성합니다.
  3. 닫기 가격이 상위 계단 1 아래로 넘어가면 판매 신호를 생성합니다.
  4. 구매 후, 판매 신호가 나타나면 포지션을 닫습니다. 판매 후, 구매 신호가 나타나면 포지션을 닫습니다.
  5. 상단 띠 2와 하단 띠 2는 트렌드 강도를 나타내고 보조 판단을 제공합니다.

전략적 장점

  1. 이중 표준편차 설정은 트렌드 판단의 정확성을 향상시킵니다.
  2. 5분 정도의 높은 거래 빈도는 빠른 입출동에 적합합니다.
  3. 트렌드 강도에 대한 보조 판단은 위험 통제에 도움이 됩니다.
  4. 조정 가능한 매개 변수는 다른 시장에 적응합니다.

전략 위험

  1. 빈번한 거래는 높은 수수료를 초래할 수 있습니다.
  2. 트렌드 판단에 오류가 발생하면 손실이 발생합니다.
  3. 스톱-러스 조치가 없다면 더 큰 위험을 감수하게 됩니다.
  4. 일방적인 추세를 제대로 파악하지 못하고 있습니다.

전략 최적화 방향

  1. 단일 거래 위험을 통제하기 위해 스톱 로스 및 수익 취득 메커니즘을 도입합니다.
  2. 트렌드 포착 능력을 향상시키기 위해 볼링거 밴드 매개 변수를 최적화합니다.
  3. 승률을 높이기 위해 MA와 같은 트렌드 판단을 위한 보조 지표를 추가합니다.
  4. 범위에 한정된 시장에 대한 필터링 조건을 설정합니다.

요약

이 전략은 5분 수준에서 트렌드 기회를 빠르게 포착하기에 적합한 트렌드 판단을 향상시키기 위해 이중 계층 필터링으로 볼링거 밴드의 통계적 특성을 사용합니다. 그러나 빈번한 거래와 불충분한 위험 관리 조치와 관련된 문제는 여전히 최적화가 필요합니다. 미래에, 종전 손실 및 수익을 취하기, 매개 변수 최적화 및 보조 판단의 측면에서 개선이 계속 될 수 있으며 전반적인 안정성과 수익성을 향상시킬 수 있습니다.


/*backtest
start: 2024-03-01 00:00:00
end: 2024-03-31 23:59:59
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
//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("Five Min Scalping Strategy", overlay=true)

src = input(close, title="Source")
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

LongCondition = close[1] < lower1 and close > lower1
ShortCondition = close[1] > upper1 and close < upper1

strategy.entry("Long", strategy.long, when = LongCondition)
strategy.entry("Short", strategy.short, when = ShortCondition)

strategy.close("Long", when = ShortCondition)
strategy.close("Short", when = LongCondition)

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), style=plot.style_circles)
pLower1 = plot(lower1, color=color.new(color.orange, 0), style=plot.style_circles)
pLower2 = plot(lower2, color=color.new(color.orange, 0), style=plot.style_circles)

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


관련

더 많은