동적 볼링거 브레이크업 전략

저자:차오장, 날짜: 2024-01-26 14:52:59
태그:

img

전반적인 설명

이 전략은 볼링거 밴드 지표에 기반한 브레이크아웃 거래 전략입니다. 볼링거 밴드의 상부 및 하부 레일을 계산하고 동적으로 조정 가능한 구매 및 판매 문턱과 결합하여 바이낸스에서 BTCUSDT의 거래를 자동화합니다.

전략 논리

이 전략의 핵심 지표는 볼링거 밴드 (Bollinger Bands) 이다. 볼링거 밴드는 N일 이동 평균과 그 위와 아래의 표준 편차 수준에서 그려진 상부 및 하부 밴드들로 구성된다. 이 전략의 볼링거 밴드는 20일 길이와 표준 편차 곱셈자 2를 가지고 있다. 가격이 볼링거 밴드의 하부 레일에 접근하거나 접촉할 때, 그것은 과판된 것으로 간주되며, 전략은 긴 포지션을 열 것이다. 가격이 상부 레일에 접근하거나 접촉할 때, 그것은 과반된 것으로 간주되며, 전략은 긴 포지션을 닫을 것이다.

볼링거 밴드 지표 외에도 이 전략은 두 가지 조정 가능한 매개 변수를 도입한다. 구매 임계율은 하위 밴드보다 58점 이하로 기본 설정되어 있으며, 긴 포지션을 개설하는 입구 조건으로 작용한다. 판매 임계율은 하위 밴드보다 470점 이상으로 기본 설정되어 있으며, 포지션을 종료하는 출구 조건으로 작용한다. 이 임계값은 실제 시장 조건과 백테스트 결과에 따라 역동적으로 조정되어 전략을 보다 유연하게 만들 수 있다.

구매 조건이 충족되면 전략은 계정 자본의 10%를 사용하여 긴 포지션을 열 것입니다. 긴 포지션을 열 후에 가격이 스톱 로스 레벨 (-125%) 에 도달할 때까지 상승하면 포지션은 스톱 로스 주문으로 닫을 것입니다. 판매 임계점을 유발하기 위해 가격이 상승하면 전략은 이익을 수집하기 위해 모든 포지션을 닫을 것을 선택합니다.

이점 분석

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

  1. 볼링거 밴드를 사용하면 가격이 비정상적으로 밴드에서 벗어날 때 기회를 잡을 수 있으며 반전에서 이익을 얻을 수 있습니다.
  2. 조정 가능한 구매 및 판매 문턱을 도입하면 입출점을 최적화 할 수 있습니다
  3. 부분적인 포지션 크기를 취하는 것은 위험을 통제합니다.
  4. 스톱 로스 조건을 설정하면 추가 손실을 피할 수 있습니다.
  5. 5분 간격으로 백테스팅하면 단기 거래 기회를 적시에 파악할 수 있습니다.

위험 분석

이 전략에는 몇 가지 위험도 있습니다.

  1. 볼링거 밴드 자체는 100% 신뢰할 수 없습니다, 가격이 다시 떨어지기 전에 오랫동안 낮은 오스ily 할 수 있습니다.
  2. 부적절한 문턱 설정으로 인해 가장 좋은 입구 또는 출구 지점이 빠질 수 있습니다.
  3. 너무 느슨한 중지 손실 설정은 시간에 손실을 중지하지 못할 수 있습니다, 또는 너무 단단한 중지 손실을 너무 민감하게 만들 수 있습니다
  4. 부적절한 백테스팅 기간 선택은 안정적인 수입으로 때때로 수익을 가져갈 수 있습니다.

대책:

  1. 시장 조건을 판단하고 볼링거 밴드의 잘못된 신호를 피하기 위해 더 많은 지표를 결합
  2. 최적의 조합을 찾기 위해 임계 매개 변수를 테스트하고 최적화합니다.
  3. 균형을 찾기 위해 중지 손실 조건을 테스트하고 최적화합니다.
  4. 전략의 안정성을 검사하기 위해 더 긴 역 테스트 기간을 채택

최적화 방향

이 전략은 다음 측면에서 더 이상 최적화 될 수 있습니다.

  1. KD, RSI와 같은 다른 지표를 결합하여 더 엄격한 입시 규칙을 설정하십시오. 너무 일찍 또는 너무 늦게 입시를 피하십시오.
  2. 대역 길이를 최적화하고 표준편차 곱셈을 위해 볼링거 밴드 매개 변수의 다른 조합을 테스트
  3. 수익률을 높이기 위해 구매 및 판매 기준을 최적화합니다.
  4. 동적 ATR 기반 스톱 로스 비율을 채택하여 시장 변동성에 대응하도록 시도하십시오.
  5. 포지션 크기를 최적화하고, 예를 들어, 수익을 올릴 때 포지션을 적절히 피라미드화하여 단일 손실 위험을 제어합니다.

요약

요약하자면, 이것은 전반적으로 간단하고 실용적인 브레이크아웃 전략이다. 반전 기회를 식별하고 진출과 출출에 대한 역동적 임계치를 설정하기 위해 볼링거 밴드를 채택합니다. 한편, 합리적인 위치 사이징과 스톱 로스 조건은 위험을 제어하기 위해 활용됩니다. 몇 가지 주요 매개 변수를 최적화 한 후,이 전략은 비교적 안정적인 수익을 얻을 수 있습니다. 알고리즘 거래에 적합하며 주식 선택 또는 시장 정서를 측정하는 보조 도구로도 사용될 수 있습니다. 일반적으로,이 전략은 강력한 실용성과 확장성을 가지고 있습니다.


/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © SuperDS_BTC

//@version=5
strategy("布林通道策略多5min", overlay=true) 

// 布林通道计算
length = input(20, title="布林通道周期")
mult = input(2.0, title="标准差倍数")
basis = ta.sma(close, length)
dev = mult * ta.stdev(close, length)
upper = basis + dev
lower = basis - dev

// 计算买入数量:每次检查仓位的大小 
// 每次买入使用总资金的10%
position_size = strategy.equity * 10 / close 

// 定義可調整的閾值
buy_threshold = input(58, title="買入閾值")
exit_threshold = input(470, title="賣出閾值")

// 买入条件:当现价低于布林通道的下限减去 buy_threshold
buy_condition = close < lower - buy_threshold

// 卖出条件和结清仓位条件
exit_condition = close > lower + exit_threshold

// 买入逻辑
if buy_condition
    strategy.entry("BuyLong", strategy.long, qty=position_size, comment="LongBTC")

// 卖出逻辑
if exit_condition
    strategy.close("BuyLong")

// 止损逻辑
stop_loss_percent = -1.25 //止损百分比为-125%
if strategy.position_size > 0
    position_profit_percent = (strategy.position_avg_price - close) / strategy.position_avg_price * 100
    if position_profit_percent <= stop_loss_percent
        strategy.close("BuyLong")

더 많은