이 전략은 볼링거 밴드 지표에 기반한 브레이크아웃 거래 전략입니다. 볼링거 밴드의 상부 및 하부 레일을 계산하고 동적으로 조정 가능한 구매 및 판매 문턱과 결합하여 바이낸스에서 BTCUSDT의 거래를 자동화합니다.
이 전략의 핵심 지표는 볼링거 밴드 (Bollinger Bands) 이다. 볼링거 밴드는 N일 이동 평균과 그 위와 아래의 표준 편차 수준에서 그려진 상부 및 하부 밴드들로 구성된다. 이 전략의 볼링거 밴드는 20일 길이와 표준 편차 곱셈자 2를 가지고 있다. 가격이 볼링거 밴드의 하부 레일에 접근하거나 접촉할 때, 그것은 과판된 것으로 간주되며, 전략은 긴 포지션을 열 것이다. 가격이 상부 레일에 접근하거나 접촉할 때, 그것은 과반된 것으로 간주되며, 전략은 긴 포지션을 닫을 것이다.
볼링거 밴드 지표 외에도 이 전략은 두 가지 조정 가능한 매개 변수를 도입한다. 구매 임계율은 하위 밴드보다 58점 이하로 기본 설정되어 있으며, 긴 포지션을 개설하는 입구 조건으로 작용한다. 판매 임계율은 하위 밴드보다 470점 이상으로 기본 설정되어 있으며, 포지션을 종료하는 출구 조건으로 작용한다. 이 임계값은 실제 시장 조건과 백테스트 결과에 따라 역동적으로 조정되어 전략을 보다 유연하게 만들 수 있다.
구매 조건이 충족되면 전략은 계정 자본의 10%를 사용하여 긴 포지션을 열 것입니다. 긴 포지션을 열 후에 가격이 스톱 로스 레벨 (-125%) 에 도달할 때까지 상승하면 포지션은 스톱 로스 주문으로 닫을 것입니다. 판매 임계점을 유발하기 위해 가격이 상승하면 전략은 이익을 수집하기 위해 모든 포지션을 닫을 것을 선택합니다.
이 전략의 주요 장점은 다음과 같습니다.
이 전략에는 몇 가지 위험도 있습니다.
대책:
이 전략은 다음 측면에서 더 이상 최적화 될 수 있습니다.
요약하자면, 이것은 전반적으로 간단하고 실용적인 브레이크아웃 전략이다. 반전 기회를 식별하고 진출과 출출에 대한 역동적 임계치를 설정하기 위해 볼링거 밴드를 채택합니다. 한편, 합리적인 위치 사이징과 스톱 로스 조건은 위험을 제어하기 위해 활용됩니다. 몇 가지 주요 매개 변수를 최적화 한 후,이 전략은 비교적 안정적인 수익을 얻을 수 있습니다. 알고리즘 거래에 적합하며 주식 선택 또는 시장 정서를 측정하는 보조 도구로도 사용될 수 있습니다. 일반적으로,이 전략은 강력한 실용성과 확장성을 가지고 있습니다.
/*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")