볼링거 밴드 브레이크 트렌드 거래 전략

저자:차오장, 날짜: 2024-02-27 18:00:39
태그:

img

전반적인 설명

볼링거 밴드 브레이크아웃 트렌드 트레이딩 전략은 최근 변동성에 비해 극단적인 가격 수준에서 잠재적 인 트렌드 반전을 식별하도록 설계되었습니다. 새로운 트렌드의 시작을 잡기 위해 브레이크아웃 논리와 평균 반전 지표로 볼링거 밴드를 결합합니다.

전략 논리

핵심 전략 논리는 다음과 같은 구성 요소로 구성됩니다.

  1. 볼링거 대역은 상위와 하위 대역을 식별하기 위해 20주기 EMA +/- 1.5 표준편차로 표시됩니다.

  2. 가격이 볼링거 밴드 바깥에 닫을 때 추적 2 기간 전에 잠재적 인 반전을 예측하기 위해.

  3. 입문 신호는 현재 바가 반대 범위를 넘어서 닫은 2 주기의 촛불의 높은 / 낮은 지점을 깨면 시작됩니다.

  4. 현재 바의 높기/하위 바로 바깥에 있는 Stop Loss 설정.

  5. 미리 정의된 리스크/이익 비율을 기준으로 수익을 취합니다.

장점

이 전략의 주요 장점은 다음과 같습니다.

  1. 볼링거 대역은 변화하는 시장 변동성에 적응합니다. 변동성 시장에서 더 넓은 대역은 잘못된 신호의 가능성을 감소시킵니다.

  2. 가격이 반역으로 넘어갈 때 트렌드 반전을 빨리 감지하는 것을 목표로 합니다.

  3. 유연한 리스크 관리, 조정 가능한 리스크/이익 비율 입력

  4. 강력한 백테스팅은 지속적인 방향적인 움직임을 가진 트렌딩 시장으로 이어집니다.

  5. 거래 플랫폼에 코딩된 후에 자동화 된 거래 입출출 및 관리

위험성

고려해야 할 주요 위험은:

  1. 범위에 묶여있는 트렌드 아닌 시장에서 윙사 손실 가능성.

  2. 스톱 손실은 현재 바의 범위만을 차지하므로 격차는 원치 않는 청산을 일으킬 수 있습니다.

  3. 다양한 시장 조건에 대한 광범위한 백테스트없이 성능을 평가하는 것이 어렵습니다.

  4. 코딩 오류는 의도하지 않은 주문 또는 거래 관리로 이어질 수 있습니다.

추가적인 필터를 통해 위험을 완화할 수 있고, 성능을 강력하게 평가하고 실제 배치 전에 강력하게 테스트할 수 있습니다.

개선

이 전략이 향상될 수 있는 몇 가지 방법:

  1. 부피, RSI 또는 MACD와 같은 필터를 추가하여 신호의 타이밍과 정확성을 향상시킵니다.

  2. 특정 도구에 대한 볼링거 밴드 길이 또는 표준편차 배수 최적화

  3. 각 시장별로 다른 리스크/리워드 비율을 사용하여 백테스트 기대를 기반으로 합니다.

  4. 적응적인 스톱을 포함해서 수익성이 높을 때 가격을 추적합니다.

  5. 입력 시 자동으로 순서를 전달하는 알고리즘으로 구축됩니다.

신중한 최적화와 보안 선택은 실시간 시장에서 이 전략을 성공적으로 구현하는 데 핵심이 될 것입니다.

결론

볼링거 밴드 브레이크아웃 트렌드 트레이딩 전략은 다양한 시장의 신흥 트렌드에 들어가는 규칙 기반 접근 방식을 제공합니다. 변동성과 초기 브레이크아웃 신호를 계산하는 적응 대역을 결합함으로써 추진력이 가속화됨에 따라 움직임을 포착하는 것을 목표로합니다. 그러나 모든 체계적인 전략과 마찬가지로 시장 주기에 대한 체제 변화를 고려하기 위해 강력한 역사적 분석과 위험 관리가 필요합니다.


/*backtest
start: 2024-02-25 00:00:00
end: 2024-02-26 00:00:00
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/


//@version=5
strategy("Bollinger Band Strategy with Early Signal (v5)", overlay=true)

// Inputs
length = 20
mult = 1.5
src = close
riskRewardRatio = input(3.0, title="Risk-Reward Ratio")

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

// Plotting Bollinger Bands
plot(upper, "Upper Band", color=color.red)
plot(lower, "Lower Band", color=color.green)

// Tracking Two Candles Ago Crossing Bollinger Bands
var float twoCandlesAgoUpperCrossLow = na
var float twoCandlesAgoLowerCrossHigh = na

if (close[2] > upper[2])
    twoCandlesAgoUpperCrossLow := low[2]
if (close[2] < lower[2])
    twoCandlesAgoLowerCrossHigh := high[2]

// Entry Conditions
longCondition = (not na(twoCandlesAgoLowerCrossHigh)) and (high > twoCandlesAgoLowerCrossHigh)
shortCondition = (not na(twoCandlesAgoUpperCrossLow)) and (low < twoCandlesAgoUpperCrossLow)

// Plotting Entry Points
plotshape(longCondition, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY")
plotshape(shortCondition, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL")

// Strategy Execution
if (longCondition)
    stopLoss = low - (high - low) * 0.05
    takeProfit = close + (close - stopLoss) * riskRewardRatio
    strategy.entry("Buy", strategy.long)
    strategy.exit("Exit Buy", "Buy", stop=stopLoss, limit=takeProfit)

if (shortCondition)
    stopLoss = high + (high - low) * 0.05
    takeProfit = close - (stopLoss - close) * riskRewardRatio
    strategy.entry("Sell", strategy.short)
    strategy.exit("Exit Sell", "Sell", stop=stopLoss, limit=takeProfit)



더 많은