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

볼링거 밴드 및 프랙탈 브레이크아웃을 기반으로 한 동적 역전점 전략

저자:차오장, 날짜: 2024-06-28 15:06:36
태그:BBMASMASD프랑스

img

전반적인 설명

이 전략은 볼링거 밴드와 가격 프랙탈을 결합한 동적 역전점 식별 시스템이다. 이 전략은 거래 신호를 생성하기 위해 볼링거 밴드의 가격 브레이크와 중요한 프랙탈 수준을 식별하여 주요 시장 역전점을 포착하는 것을 목표로 한다. 이 전략은 기술 분석에서 일반적으로 사용되는 볼링거 밴드 지표와 가격 프랙탈 이론을 활용하여 변동성 시장에서 높은 확률의 거래 기회를 찾으려고 한다.

전략 원칙

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

  1. 볼링거 밴드: 중간 밴드로서 20 기간 간 간단한 이동 평균 (SMA) 을 사용하며, 상단과 하단 밴드는 상단과 하단 2개의 표준편차로 설정됩니다. 볼링거 밴드는 가격이 과잉 구매 또는 과잉 판매 상태인지 결정하는 데 사용됩니다.

  2. 가격 프랙탈: 이 전략은 상승 및 하락 프랙탈을 식별하기 위해 5개의 촛불을 사용합니다. 상승 프랙탈은 현재 촛불의 최고가 그 이전의 두 촛불의 최고보다 높을 때 발생합니다. 하락 프랙탈은 그 반대입니다.

  3. 파기 신호:

    • 가격이 아래 볼링거 밴드를 넘으면 잠재적인 하향 파업으로 표시됩니다.
    • 만약 하향 브레이크 후 가격이 상승하고 최근 상승 프랙탈 최고치를 넘으면 긴 신호가 생성됩니다.
    • 가격이 상단 볼링거 반도를 넘으면 잠재적인 상승폭으로 표시됩니다.
    • 만약 상향 브레이크 이후 가격이 하락하고 가장 최근의 하향 프랙탈 최저치 아래로 넘어간다면, 짧은 신호가 생성됩니다.
  4. 거래 실행:

    • 올림 프랙탈이 확인되면 긴 포지션을 개척합니다.
    • 하향 프랙탈이 확인되면 짧은 포지션을 개척합니다.

이 디자인은 트렌드 따라와 역전 거래의 요소를 결합하여 주요 시장 전환점을 포착하는 것을 목표로합니다.

전략적 장점

  1. 복수의 확인: 전략은 두 개의 독립적인 기술 지표, 볼링거 밴드 및 가격 프랙탈을 결합하여 복수의 확인을 제공하며 잘못된 브레이크의 위험을 줄입니다.

  2. 동적 적응: 볼링거 밴드는 시장 변동성에 따라 자동으로 조정되며 전략이 다른 시장 환경에 적응 할 수 있습니다.

  3. 균형 잡힌 트렌드 및 역전 접근: 전략은 트렌드 지속 (프랙탈 브레이크아웃) 과 잠재적 역전 포인트 (볼린거 밴드 브레이크아웃) 를 모두 포착하여 유연성을 높일 수 있습니다.

  4. 명확한 입점: 명확한 거래 신호는 특정 조건 (볼린저 밴드 브레이크오프 및 프랙탈 브레이크오프) 을 통해 정의되며 주관적 판단의 필요성을 줄입니다.

  5. 시각 지원: 전략은 차트에서 볼링거 밴드 및 프랙탈 포인트를 그래프로 표시하여 거래자가 직관적으로 시장 구조와 잠재적 인 거래 기회를 이해하는 데 도움이됩니다.

전략 위험

  1. 지연: 20주기 볼링거 밴드 및 5개의 촛불 프랙탈을 사용하면 신호가 지연되어 빠르게 움직이는 시장에서 기회를 놓칠 수 있습니다.

  2. 가짜 브레이크오웃: 범위에 묶인 시장에서 가격은 실제 트렌드를 형성하지 않고 볼링거 밴드 또는 프랙탈 레벨을 자주 깨고 종종 잘못된 신호로 이어질 수 있습니다.

  3. 스톱 로스 메커니즘의 부족: 현재 전략에는 명시적인 스톱 로스 규칙이 없습니다. 이는 잘못된 거래에서 과도한 손실로 이어질 수 있습니다.

  4. 과잉 거래: 매우 변동적인 시장에서 전략은 거래 비용을 증가시키는 너무 많은 거래 신호를 생성 할 수 있습니다.

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

전략 최적화 방향

  1. 스톱 로스 및 트레이프 로스를 도입합니다. 중간 볼링거 밴드 또는 반대 볼링거 밴드에서 스톱 로스 포인트를 설정하는 것을 고려하고 ATR (평균 진정한 범위) 를 기반으로 스톱 로스 수준을 동적으로 조정하십시오.

  2. 거래 필터를 추가하십시오. 잠재적 인 잘못된 브레이크오웃 신호를 필터하고 거래 품질을 향상시키기 위해 추가 지표 (RSI 또는 MACD) 를 도입하십시오.

  3. 멀티 타임프레임 분석: 더 큰 시간 프레임에서 트렌드 정보를 통합하고, 승률을 향상시키기 위해 더 큰 트렌드의 방향으로 거래를 수행합니다.

  4. 매개 변수를 최적화: 특정 시장에 대한 최상의 조합을 찾기 위해 볼린거 대역 기간 및 프랙탈 촛불 수와 같은 매개 변수를 최적화하기 위해 백테스트를 수행합니다.

  5. 변동성 필터를 추가합니다. 낮은 변동성 기간 동안 거래 조건을 강화하여 범위 제한 시장에서 과잉 거래를 피합니다.

  6. 트레일링 스톱을 고려하십시오. 부분적인 이익을 확보하기 위해 거래가 수익성이 높아질수록 점진적으로 스톱-러스 포인트를 높여보세요.

  7. 부피 확인을 포함: 부피 정보를 결합하여 브레이크의 유효성을 확인하여 신호 신뢰성을 향상시킵니다.

요약

볼링거 밴드 (Bollinger Band) 와 프랙탈 브레이크아웃 (Fractal Breakout) 을 기반으로 한 동적 역점 전략 (Dynamic Reversal Point Strategy) 은 트렌드 추종과 역전 거래 아이디어를 결합한 포괄적인 시스템이다. 이 방법은 주요 지원 및 저항 수준을 식별하기 위해 가격 프랙탈을 활용하는 동안 가격의 상대적 위치를 판단하기 위해 볼링거 밴드를 사용합니다. 이 방법은 주요 시장 전환점을 포착하는 것을 목표로하며 중장기 거래자에게 특히 적합합니다.

이 전략의 주요 장점은 여러 가지 확인 메커니즘과 시장 변동에 동적으로 적응하는 능력에 있다. 그러나 신호 지연 및 잠재적 인 가짜 브레이크의 위험도 있습니다. 전략의 견고성을 향상시키기 위해 스톱 로스 메커니즘, 멀티 타임프레임 분석 및 추가 거래 필터를 도입하는 것이 좋습니다.

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


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

관련

더 많은