볼린저 밴드 표준 편차 더블 필터 5분 양적 거래 전략

Boll BB SMA stdev
생성 날짜: 2024-04-30 16:03:11 마지막으로 수정됨: 2024-04-30 16:03:11
복사: 0 클릭수: 720
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

볼린저 밴드 표준 편차 더블 필터 5분 양적 거래 전략

개요

이 전략은 브린 벨트 지표에 기반을 두고 있으며, 이중 표준 간격 필터링을 통해 5분 시간 프레임에서 빠른 거래를 수행한다. 가격이 하락할 때 구매하고, 상승할 때 판매한다. 상승과 하락은 다른 표준 간격으로 설정되어 있으며, 다른 색상의 표시를 사용하여 직관적으로 트렌드의 강점을 나타냅니다.

전략 원칙

  1. 브린 벨트 기준선, 상반도 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. 지진에 대한 필터링 조건을 설정하십시오.

요약하다

이 전략은 브린띠의 통계적 특성을 활용하여, 2층 필터링으로 트렌드 판단을 강화하여, 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))