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

볼링거 밴드 높은 빈도의 양적 전략과 높은 낮은 브레이크 아웃 시스템 결합

저자:차오장, 날짜: 2024-12-04 15:15:50
태그:BBSMASDRRHHLL

img

전반적인 설명

이 전략은 고주파 거래 시스템으로 볼링거 밴드 지표와 가격 브레이크 아웃 신호를 결합합니다. 이 전략은 시장 과잉 구매 및 과잉 판매 조건에서 반전 거래를 실행하기 위해 가격과 볼링거 밴드 사이의 관계를 모니터링하고 이전 고점 및 저점 브레이크 아웃 신호와 결합하여 수익 및 손실 목표에 대한 1:1 리스크-어워드 비율을 구현하고 트레이더가 시장 추세를 직관적으로 이해하는 데 도움이되는 주요 가격 수준을 시각화합니다.

전략 원칙

이 전략의 핵심 논리는 두 가지 주요 조건에 기반합니다: 가격이 이전 최고치를 넘어서고 그 높이가 낮은 볼링거 밴드 아래에있을 때 구매 신호가 발동됩니다. 가격이 이전 최저치를 넘어서고 그 낮은 수준이 상위 볼링거 밴드 위에있을 때 판매 신호가 발동됩니다. 볼링거 밴드 매개 변수는 시장 변동성 범위 및 과잉 구매 / 과잉 판매 영역을 결정하기 위해 2 개의 표준 편차를 가진 20 기간 이동 평균을 사용합니다. 거래 신호를 발동 한 후 시스템은 자동으로 해당 스톱 로스 및 목표 수준을 설정하여 다른 라인 스타일을 통해 시각화합니다.

전략적 장점

  1. 트렌드 브레이크와 평균 리버션 거래 방식을 결합하여 다른 시장 조건에서 안정성을 유지합니다.
  2. 포지션 관리에 고정된 위험/이익 비율을 사용하며, 장기적으로 수익성 있는 거래에 유리합니다.
  3. 엔트리, 스톱 로스 및 타겟 레벨을 시각화하여 전략 운영성을 향상시킵니다.
  4. 거래 정확성을 높이는 시장 과잉 구매/ 과잉 판매 조건을 식별하기 위해 볼링거 밴드를 사용합니다.
  5. 간단하고 명확한 전략 논리, 이해하기 쉽고 실행하기 쉽습니다

전략 위험

  1. 높은 주파수 거래는 더 높은 거래 비용을 직면 할 수 있으며 수수료 영향을 고려해야합니다.
  2. 다양한 시장에서 빈번한 잘못된 파업 신호를 생성할 수 있습니다.
  3. 고정된 위험/이익 비율은 강한 트렌드 움직임을 완전히 포착하지 않을 수 있습니다.
  4. 고정 볼링거 밴드 매개 변수는 모든 시장 조건에 적응하지 않을 수 있습니다.
  5. 실시간 시장 모니터링을 요구하여 신호의 신속한 실행을 보장합니다.

전략 최적화 방향

  1. 신호 확인을 위한 부피 표시기를 통합하여 브레이크오웃 신뢰성을 향상시킵니다.
  2. 시장 변동성에 따라 볼링거 밴드 매개 변수를 동적으로 조정합니다.
  3. 트렌드 필터를 추가하여 다양한 시장에서 빈번한 거래를 피합니다.
  4. 비활성 기간 동안 거래를 피하기 위해 시간 필터를 추가하는 것을 고려하십시오.
  5. 적응성 있는 위험/이익 비율을 설정하는 메커니즘 개발

요약

이 시스템은 여러 가지 기술 분석 개념을 통합하는 포괄적인 거래 시스템이다. 볼링거 밴드 지표와 가격 브레이크오웃의 조합을 통해 전략은 시장의 과잉 구매 및 과잉 판매 영역에서 반전 기회를 포착 할 수 있습니다. 최적화 할 여지가 있지만 시스템의 기본 프레임워크는 좋은 확장성과 실용적 가치를 가지고 있습니다. 적절한 리스크 관리 및 매개 변수 최적화를 통해이 전략은 실제 거래에서 안정적인 수익을 얻을 수 있습니다.


/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-03 00:00:00
period: 2d
basePeriod: 2d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Bollinger Band Scalping", overlay=true)

// Input for Bollinger Bands length and standard deviation
bbLength = input(20, title="Bollinger Bands Length")
stdDev = input(2.0, title="Bollinger Bands Std Dev")

// Calculate and plot the Bollinger Bands
basis = ta.sma(close, bbLength)
deviation = stdDev * ta.stdev(close, bbLength)
upperBB = basis + deviation
lowerBB = basis - deviation

// Get previous candle's values
prevHigh = high[1]   // Previous candle high
prevLow = low[1]     // Previous candle low

// Buy Signal Condition: Current high crossed above previous high and previous high is below the lower Bollinger Band
buyCondition = ta.crossover(high, prevHigh) and (prevHigh < lowerBB[1])

// Sell Signal Condition: Current low crossed below previous low and previous low is above the upper Bollinger Band
sellCondition = ta.crossunder(low, prevLow) and (prevLow > upperBB[1])

// Entry and exit for Buy signals
if (buyCondition)
    strategy.entry("Buy", strategy.long)
    // Calculate target and stop loss
    stopLossPrice = prevLow
    targetPrice = prevHigh + (prevHigh - stopLossPrice)  // 1:1 RR target

    // Set stop loss and target orders
    strategy.exit("Sell", "Buy", limit=targetPrice, stop=stopLossPrice)

    // // Plot entry line
    // line.new(x1=bar_index, y1=prevHigh, x2=bar_index + 12, y2=prevHigh, color=color.green, width=2, style=line.style_solid)
    // // Plot stop loss line
    // line.new(x1=bar_index, y1=stopLossPrice, x2=bar_index + 12, y2=stopLossPrice, color=color.red, width=1, style=line.style_dashed)
    // // Plot target line
    // line.new(x1=bar_index, y1=targetPrice, x2=bar_index + 12, y2=targetPrice, color=color.blue, width=2, style=line.style_solid)

// Entry and exit for Sell signals
if (sellCondition)
    strategy.entry("Sell", strategy.short)
    // Calculate target and stop loss
    stopLossPriceSell = prevHigh
    targetPriceSell = prevLow - (stopLossPriceSell - prevLow)  // 1:1 RR target

    // Set stop loss and target orders
    strategy.exit("Cover", "Sell", limit=targetPriceSell, stop=stopLossPriceSell)

    // // Plot entry line
    // line.new(x1=bar_index, y1=prevLow, x2=bar_index + 12, y2=prevLow, color=color.red, width=2, style=line.style_solid)
    // // Plot stop loss line
    // line.new(x1=bar_index, y1=stopLossPriceSell, x2=bar_index + 12, y2=stopLossPriceSell, color=color.green, width=1, style=line.style_dashed)
    // // Plot target line
    // line.new(x1=bar_index, y1=targetPriceSell, x2=bar_index + 12, y2=targetPriceSell, color=color.blue, width=2, style=line.style_solid)

// Plotting Bollinger Bands with 70% transparency
plot(upperBB, color=color.red, title="Upper Bollinger Band", transp=70)
plot(lowerBB, color=color.green, title="Lower Bollinger Band", transp=70)
plot(basis, color=color.blue, title="Middle Band", transp=70)


관련

더 많은