볼린저 밴드와 프랙탈 브레이크아웃을 기반으로 한 역동적인 전환점 전략

BB MA SMA SD FRAC
생성 날짜: 2024-06-28 15:06:36 마지막으로 수정됨: 2024-06-28 15:06:36
복사: 12 클릭수: 679
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

볼린저 밴드와 프랙탈 브레이크아웃을 기반으로 한 역동적인 전환점 전략

개요

이 전략은 부린밴드와 가격 분화 (Price Split) 를 결합한 동적 전환점 식별 시스템이다. 시장의 주요 반전점을 포착하여 가격의 부린밴드 및 중요한 분화 수준을 돌파하는 것을 식별하여 거래 신호를 생성하는 것을 목적으로 한다. 이 전략은 기술 분석에서 일반적으로 사용되는 부린밴드 지표와 가격 분화 이론을 활용하여 변동하는 시장에서 높은 확률의 거래 기회를 찾으려고 한다.

전략 원칙

이 전략의 핵심은 다음과 같은 핵심 요소에 기반합니다.

  1. 브린 밴드: 20주기의 간단한 이동 평균 ((SMA) 을 중간 궤도로 사용하며, 상하의 궤도는 각각 중간 궤도 더하의 2배 표준차이다. 브린 밴드는 가격이 과매매 또는 과매매 상태에 있는지 판단하는 데 사용됩니다.

  2. 가격 분화: 전략은 5개의 K선으로 승과 하락의 분화를 식별한다. 승과 하락의 분화는 현재 K선의 높이가 앞뒤의 두 K선 높이의 높이에 해당할 때 나타난다. 하락의 분화는 그 반대이다.

  3. 은 신호

    • 가격이 부린 띠 아래로 떨어지면 잠재적인 하락의 돌파구로 표시된다.
    • 하락의 돌파를 거치면, 가격 상승이 가장 최근의 시점 분기 고점을 돌파하면, 더 많은 신호가 생성된다.
    • 가격이 브린을 뚫고 궤도에 올랐을 때, 잠재적인 상승 돌파구로 표시된다.
    • 만약 상승이 돌파한 후, 가격이 하락하여 가장 최근의 하락의 하위점을 돌파한다면, 하위 신호가 생성된다.
  4. 거래 실행:

    • 이 분화되는 것을 알아차릴 때 더 많은 을 니다.
    • 하락의 형태를 인식할 때 포지션을 공백하게 한다.

이 디자인은 트렌드 추적과 반전 거래의 요소를 결합하여 주요 시장 전환점을 포착하기 위해 고안되었습니다.

전략적 이점

  1. 다중확인: 이 전략은 부린밴드와 가격분열이라는 두 개의 독립적인 기술 지표를 결합하여, 가짜 돌파의 위험을 줄일 수 있는 다중확인을 제공한다.

  2. 동적 적응: 브린 띠는 시장의 변동성에 따라 자동으로 조정할 수 있어 전략이 다른 시장 환경에 적응할 수 있다.

  3. 트렌드 및 반전 상용화: 전략은 트렌드의 지속을 잡을 수 있습니다 (분형 돌파구) 또는 잠재적인 반전 지점을 식별 할 수 있습니다 (블린 밴드 돌파구) 전략의 유연성을 증가시킵니다.

  4. 명확한 진입점: 명확한 조건 (부린 띠 돌파구와 분화 돌파구) 을 통해 명확한 거래 신호를 정의하여 주관적 판단의 필요성을 줄인다.

  5. 시각적 도움말: 전략은 시장 구조와 잠재적인 거래 기회를 직관적으로 이해하는 데 도움이되는 도표에 브린 띠와 분화점을 그려줍니다.

전략적 위험

  1. 지연성: 20주기 브린띠와 5개의 K선으로 된 분형은 신호의 지연을 유발할 수 있으며, 빠른 시장에서 몇 가지 기회를 놓칠 수 있다.

  2. 가짜 돌파구: 변동하는 시장에서 가격이 종종 브린 벨트 또는 분화 수준을 돌파 할 수 있지만 진정한 추세가 형성되지 않아 종종 가짜 신호를 유발할 수 있습니다.

  3. 중단 손실 장치의 부재: 현재 전략에는 명확한 중단 손실 규칙이 없으며, 잘못된 거래에서 과도한 손실이 발생할 수 있습니다.

  4. 과도한 거래: 변동성이 높은 시장에서, 전략은 거래 신호를 과도하게 생성하여 거래 비용을 증가시킬 수 있습니다.

  5. 단일 시간 프레임: 전략은 단일 시간 프레임의 데이터에만 기반하여 더 큰 시간 프레임의 중요한 시장 구조를 무시할 수 있습니다.

전략 최적화 방향

  1. 스톱 및 스톱을 도입한다: 브린띠의 중도 또는 반대쪽 브린띠에 스톱 포인트를 설정하고 ATR에 따라 스톱 레벨을 동적으로 조정한다.

  2. 거래 필터 추가: 거래 품질을 향상시키기 위해 잠재적 인 가짜 브레이크 신호를 필터링하는 추가 지표 (RSI 또는 MACD와 같은) 를 도입 할 수 있습니다.

  3. 다중 시간 프레임 분석: 더 큰 시간 프레임의 트렌드 정보와 결합하여, 큰 트렌드 방향의 신호만이 거래를 수행하여 승률을 높일 수 있습니다.

  4. 최적화 매개 변수: 브린 밴드 주기, K 선의 개수 등의 매개 변수를 재검토하여 최적화하여 특정 시장에 가장 적합한 매개 변수 조합을 찾습니다.

  5. 변동성 필터를 추가합니다. 낮은 변동성이 있는 기간에 거래 조건을 강화하는 것이 필요할 수 있습니다.

  6. 이동식 스톱을 추가하는 것을 고려하십시오. 거래 수익이 증가함에 따라 점진적으로 스톱을 높이고 수익의 일부를 잠금 할 수 있습니다.

  7. 거래량 확인: 거래량 정보와 결합하여 침입의 유효성을 확인하고 신호의 신뢰성을 높일 수 있습니다.

요약하다

부린 띠와 분화 돌파구를 기반으로 한 동적 전환점 전략은 트렌드 추적과 반전 거래의 아이디어를 결합한 통합 시스템입니다. 부린을 통해 가격의 상대적인 위치를 판단하고, 가격 분화를 사용하여 중요한 지원 및 저항 수준을 식별합니다. 이 방법은 시장의 주요 전환점을 포착하기 위해 고안되었으며, 특히 중장기 거래자에게 적합합니다.

전략의 주요 장점은 다중 확인 메커니즘과 동적으로 시장의 변동에 적응하는 능력에 있습니다. 그러나, 그것은 또한 신호 지연과 가짜 돌파구를 일으킬 수 있는 위험에 직면합니다. 전략의 안정성을 높이기 위해, 손실을 막는 장치, 다중 시간 프레임 분석 및 추가 거래 필터를 도입하는 것이 좋습니다.

지속적인 최적화와 조정으로, 이 전략은 신뢰할 수 있는 거래 시스템으로의 잠재력을 가지고 있다. 그러나, 모든 거래 전략과 마찬가지로, 실제 거래에서 충분한 테스트와 검증이 필요합니다. 거래자는이 전략을 사용할 때 자신의 위험 수용 능력과 시장 경험을 결합하고 항상 시장에 대한 경계와 학습 태도를 유지해야합니다.

전략 소스 코드
/*backtest
start: 2024-05-01 00:00:00
end: 2024-05-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Breakdown and Breakup Strategy", overlay=true)

// Bollinger Bands settings
length = input.int(20, title="Bollinger Bands Length")
src = close
mult = input.float(2.0, title="Bollinger Bands Multiplier")

// Calculate Bollinger Bands
basis = ta.sma(src, length)
dev = mult * ta.stdev(src, length)
upper = basis + dev
lower = basis - dev

plot(upper, color=color.red, linewidth=1)
plot(lower, color=color.red, linewidth=1)
plot(basis, color=color.blue, linewidth=1)

// Fractals identification
isBullishFractal = ta.highest(high, 5)[2] == high[2] and high[2] > high[1] and high[2] > high[3]
isBearishFractal = ta.lowest(low, 5)[2] == low[2] and low[2] < low[1] and low[2] < low[3]

// Variables to store the latest fractal values
var float latestBullishFractal = na
var float latestBearishFractal = na

if (isBullishFractal)
    latestBullishFractal := high[2]
    
if (isBearishFractal)
    latestBearishFractal := low[2]

// Conditions
breakdownCondition = close < lower
breakupCondition = close > latestBullishFractal
breakupUpperCondition = close > upper
breakdownBearishCondition = close < latestBearishFractal

// Variables to track state
var bool breakdownOccurred = false
var bool breakupUpperOccurred = false

// Signals
var bool plotBreakupSignal = false
var bool plotBreakdownSignal = false

// Logic for breakdown and breakup above bullish fractal
if (breakdownCondition)
    breakdownOccurred := true

if (breakdownOccurred and breakupCondition)
    plotBreakupSignal := true
    breakdownOccurred := false

// Logic for breakup and breakdown below bearish fractal
if (breakupUpperCondition)
    breakupUpperOccurred := true

if (breakupUpperOccurred and breakdownBearishCondition)
    plotBreakdownSignal := true
    breakupUpperOccurred := false

// Plot signals as icons
plotshape(series=plotBreakupSignal, location=location.abovebar, color=color.green, style=shape.triangleup, title="Breakup", size=size.small)
plotshape(series=plotBreakdownSignal, location=location.belowbar, color=color.red, style=shape.triangledown, title="Breakdown", size=size.small)

// Plotting fractals for reference
plotshape(series=isBullishFractal, location=location.abovebar, color=color.green, style=shape.triangleup, title="Bullish Fractal", offset=-2)
plotshape(series=isBearishFractal, location=location.belowbar, color=color.red, style=shape.triangledown, title="Bearish Fractal", offset=-2)

// Reset signals
plotBreakupSignal := false
plotBreakdownSignal := false


if isBullishFractal
    strategy.entry("Enter Long", strategy.long)
else if isBearishFractal
    strategy.entry("Enter Short", strategy.short)