BB 켈트너 스퀴즈 트레이딩 전략


생성 날짜: 2023-09-25 17:38:08 마지막으로 수정됨: 2023-09-25 17:38:08
복사: 4 클릭수: 1351
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

개요

BB Keltner Squeeze 거래 전략은 부린띠와 켈트 통로의 압축을 결합하여 트렌드 반전을 판단하는 짧은 라인 거래 전략에 속한다. 이 전략은 부린띠를 기반으로, 켈트 통로를 보조하여 거래 신호를 검증한다. 가격이 부린띠를 뚫고 궤도에 오르거나 내리면, 켈트 통로와 압축이 발생하면 트렌드 반전을 판단하여 거래 신호를 발생시킨다.

전략 원칙

이 전략은 다음과 같은 원칙에 기초하고 있습니다.

  1. 브린 띠를 사용하여 가격을 판단하는 변동 범위. 브린 띠는 상반, 중반, 하반을 포함하며 가격이 변동하는지를 판단할 수 있다.

  2. 켈트 통로를 적용하여 브린 벨트 신호를 검증한다. 켈트 통로는 가격 변동 범위를 판단할 수 있다. 켈트 통로와 압축이 발생하면, 불린 벨트가 궤도에 오르거나 내려갈 때, 변동이 심해지는 것을 나타냅니다. 반전이 발생할 수 있습니다.

  3. 부린 띠와 켈트 통로의 압축 상황에 따라 거래 신호를 판단하십시오. 가격이 부린 띠를 뚫고 경로에 올라갔을 때 켈트 통로가 좁아지고 부린 띠의 경로에서 압축을 일으킨다면, 더 많이 보십시오. 가격이 부린 띠의 경로로 넘어갔을 때 켈트 통로가 좁아지고 부린 띠의 경로에서 압축을 일으킨다면, 더 많이 보십시오.

  4. 평균선을 사용하여 트렌드 방향을 판단한다. 브린의 중간선은 평균선을 나타내며, 가격이 중간 궤도 위에 있다면, 더 많은 신호를 보거나, 가격이 중간 궤도 아래에 있다면, 공평 신호를 본다.

  5. 평선 방향과 결합하여 포지션 개시 또는 평상시 작업을 수행한다. 압축 상황에서 평선 방향이 거래 신호와 일치하면 포지션을 개시하면 더 많은 코카이팅을 한다. 평선 방향이 이전 포지션 개시 방향과 일치하지 않으면 평상시한다.

이 전략은 부린 벨트와 켈트 통로 지표의 상호 보완성을 최대한 활용하여 압축을 통해 가격 역점을 판단하며, 전형적인 평균값 회귀 거래 전략에 속한다.

우위 분석

이 전략은 다음과 같은 장점을 가지고 있습니다.

  1. 두 가지 지표가 결합되어 신호의 신뢰성을 높인다. 단일 지표는 가짜 돌파의 영향을 받기 쉽고, 이 전략은 부린 벨트와 켈트 통로의 압축을 통해 검증되어 가짜 신호를 필터링 할 수 있다.

  2. 명확한 트렌드 판단 지표。 중앙 궤도는 평선 방향을 나타내고, 직관적으로 현재의 트렌드를 판단하고, 트렌드 방향을 놓치지 않도록 한다。

  3. 유연한 진상규명 논리. 평행선과 압축 신호의 일치 상황에 따라 진상규명 및 평화 진상규정을 결정하고, 역작업을 피한다.

  4. 단선 거래에 적합하다. 이 전략은 주로 단기 가격 돌파구와 압축을 식별하고, 단선 수익에 적합하며, 더 높은 주파수 거래 기회를 얻을 수 있다.

  5. 직관적인 시각적 표시. 압축 영역, 중도선 및 MACD 기둥 모양 방향 등을 다른 색상으로 표시하여 명확한 시각 효과를 형성한다.

  6. 실행 및 복제하기 쉬운. 이 전략은 간단하고 직접적이며, 거래 논리 및 파라미터 설정은 이해하기 쉽고, 직접 실행하거나 플랫폼에서 복제하여 사용할 수 있습니다.

위험 분석

이 전략에는 다음과 같은 주요 위험도 있습니다.

  1. 회수 위험. 가격의 장기적인 이동이 발생하면, 압축 신호가 자주 발생하여, produceseriesot trades and drawdowns.

  2. 가격 돌파 실패의 위험. 가격 돌파 부린 밴드를 경로에 올린 후, 단기적인 가짜 돌파가 될 수 있으며, 이로 인해 거래가 실패한다.

  3. 매개 변수 최적화 위험. 브린 벨트 및 켈트 통로의 매개 변수 설정은 거래 결과에 영향을 미치며, 반복 테스트 최적화가 필요하며, 그렇지 않으면 최적의 효과를 얻지 못할 수 있다.

  4. 다수 시장 위험. 장기적 인 비지니스 시장에서이 전략은 손실로 이어지는 과도한 상향 신호를 생성합니다. 명백한 다수 시장에서 사용해서는 안됩니다.

  5. 빈번한 거래 위험. 이 전략은 짧은 거래를 추구하며, 빈번하게 포지션을 열고, 거래 수수료와 슬라이드 포인트 손실을 증가시킵니다.

  6. 지표 실패의 위험. 시장의 극단적 상황에서는 전략의 지표 조합이 실패하여 효과적인 신호를 생성 할 수 없습니다.

이러한 위험은 거래 관리를 통해 제어해야 합니다. 예를 들어, 스톱로스를 설정하고, 포지션 규모를 조정하고, 최적화 매개 변수 등을 조정해야 합니다. 또한, 시장 상황에 따라 대응 계획을 수립해야 합니다.

최적화 방향

이 전략은 다음과 같은 부분에서 최적화될 수 있습니다.

  1. 다른 지표들을 통합하여 더 강력한 거래 신호를 형성한다. 다른 트렌드, 쇼크 지표들을 추가하여 거래 신호를 더욱 검증하고 승률을 높이는 것을 고려할 수 있다.

  2. 단편 손실을 제어하기 위해 스톱 전략을 추가하십시오. 단편 손실을 제한하기 위해 이동 스톱 또는 atr 스톱을 설정하여 드로다운을 줄일 수 있습니다.

  3. 브린 띠와 켈트 통로의 파라미터를 최적화한다. 테스트를 통해 최적의 파라미터 조합을 찾아 특정 품종을 대상으로 거래 효과를 높인다.

  4. 시장 상황에 따라 포지션 규모를 조정한다. 추세가 분명할 때 포지션을 적절히 증가시킬 수 있으며, 정리할 때 포지션을 줄일 수 있다.

  5. 기계 학습 기술을 적용하여 변수 최적화, 신호 정제 등으로 전략을 더 적응시킬 수 있습니다.

  6. 다단계와 공단시장을 구분하고, 상황에 따라 더 많은 투기를 선택한다. 장기적인 추세 판단에 추가할 수 있으며, 큰 방향이 명확할 때 역거래를 줄일 수 있다.

  7. 수량 가격 지표와 같은 응용과 결합하여 전략 포트폴리오를 풍요롭게 한다. 추세 반전을 더 포괄적으로 판단하는 방법이 형성될 수 있다.

지속적인 최적화와 개선을 통해 이 전략을 안정적이고 신뢰할 수 있는 단선 거래 전략으로 만들 수 있으며, 다양한 시장 조건에서 이익을 얻을 수 있습니다.

요약하다

BB Keltner Squeeze 전략은 부린 벨트와 켈트 통로의 긴축을 통해 가격 반전 기회를 잡습니다. 두 가지 지표를 통합하여 거래 신호를 형성하고, 평행선 판단 방향을 사용하여 압축을 통해 반전을 예측합니다. 이 전략은 짧은 라인 거래에 적합하며, 빈번한 거래 기회를 얻을 수 있습니다. 그러나 또한 회수 제어 및 파라미터 최적화에 주의를 기울여야합니다.

전략 소스 코드
/*backtest
start: 2023-09-17 00:00:00
end: 2023-09-24 00:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("BB Keltner Squeeze Strategy", overlay=true, initial_capital=10000, currency='USD')
length = input(title="Length", type=input.integer, defval=20, minval=0)
src = input(close, title="Source")
bband(length, mult) =>
    sma(close, length) + mult * stdev(close, length)
keltner(length, mult) =>
    ema(close, length) + mult * ema(tr, length)


//BB
B2mult = input(2.0, minval=0.001, maxval=50, title="Band 1 StDev")
B2basis = sma(src, length)
B2dev = B2mult * stdev(src, length)
B2upper = B2basis + B2dev
B2lower = B2basis - B2dev
plot(B2basis, color=color.blue)
p1 = plot(B2upper, color=#00ffff, linewidth=2, title="Band 2SD upper")
p2 = plot(B2lower, color=#00ffff, linewidth=2, title="Band 2SD lower")

//Keltner
useTrueRange = input(true)
Kmult = input(1.5, title="Keltner Range")
Kma = ema(src, length)
Krange = useTrueRange ? tr : high - low
Krangema = ema(Krange, length)
Kupper = Kma + Krangema * Kmult
Klower = Kma - Krangema * Kmult
p5 = plot(Kupper, color=color.yellow, linewidth=2, style=plot.style_circles, title="Keltner upper")
p6 = plot(Klower, color=color.yellow, linewidth=2, style=plot.style_circles, title="Keltner lower")


e1 = (highest(high, length) + lowest(low, length)) / 2 + sma(close, length)
osc = linreg(close - e1 / 2, length, 0)
diff = bband(length, 2) - keltner(length, 1)
osc_color = osc[1] < osc[0] ? osc[0] >= 0 ? #00ffff : #cc00cc : 
   osc[0] >= 0 ? #009b9b : #ff9bff
mid_color = diff >= 0 ? color.green : color.red
fromYear = year > 2014
toYear = year < 2016


direction = 0
squeeze = Kupper > B2upper
midc = 0
midc := squeeze ? 0 : close > B2basis ? 1 : 2
midcolor = midc == 0 ? #666666 : midc == 1 ? #00ff00 : #ff0000
direction := midc[1]

plot(B2basis, color=midcolor, linewidth=4, title="BB Mid")
bgcolor(midc == 0 ? #333333 : #000000, transp=75)

if direction == 0
    if midc[1] == 0 and midc == 1
        strategy.entry("LONG", strategy.long)
        direction := 1
    else if midc[1] == 0 and midc == 2
        strategy.entry("SHORT", strategy.short)
        direction := 2
else if direction != midc
    strategy.close_all()
    direction := 0