브레이크아웃 풀백 전략 (breakout pullback strategy) 은 트렌드를 따르는 전략이다. 그 기본 원리는 가격이 이전 촛불의 최고 또는 최저를 넘어서면 길거나 짧게 이동하고 수익을 취하고 손실을 멈추는 것을 설정한 후 수익을 계속하도록하는 것입니다.
이 전략의 핵심 논리는 가격이 이전 촛불의 높은 또는 낮은 지점을 통과하는지 판단하여 진입 시기를 결정하는 것입니다. 구체적인 논리는 다음과 같습니다.
만약 현재 촛불의 최고가 이전 촛불의 최고보다 높다면, 긴 신호가 발동됩니다.
만약 현재 촛불의 하위값이 이전 촛불의 하위값보다 낮다면, 짧은 신호가 발사됩니다.
긴 또는 짧은 신호를 받은 후 즉시 포지션을 입력합니다. 포지션을 입력 한 후, 수익을 50 pips로 설정하고 손실을 100 pips로 중지하십시오.
손실이 스톱 로스 피프보다 크거나 같거나 수익이 취득 피프보다 크거나 같으면 적극적으로 포지션을 종료합니다.
이 브레이크아웃 철수 전략은 다음과 같은 장점을 가지고 있습니다.
이 전략에는 또한 몇 가지 위험이 있습니다.
이 전략은 다음 측면에서 더 이상 최적화 될 수 있습니다.
인디케이터 필터와 볼륨 확인을 사용하는 것과 같은 잘못된 브레이크오프를 피하기 위해 가격 브레이크의 유효성 검사를 추가합니다.
범위에 묶인 시장에서 위험을 포착하지 않도록 트렌드 결정 메커니즘을 추가합니다. 이동 평균 및 다른 트렌드 지표가 사용될 수 있습니다.
수익을 극대화하기 위해 수익을 취하고 손실을 멈추는 전략을 최적화하십시오.
최적의 수익을 얻고 손실을 멈추는 지점을 찾기 위한 매개 변수 최적화
일반적으로 이 브레이크아웃 풀백 전략은 간단한 논리, 쉬운 구현, 그리고 트렌드 시작을 효과적으로 포착하는 장점을 가지고 있다. 또한 위험과 드라우다운을 통제하는 좋은 능력을 가지고 있다. 추가 최적화로, 그것은 매우 실용적인 양 전략이 될 수 있다.
/*backtest start: 2023-01-25 00:00:00 end: 2024-01-31 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Breakout Strategy", shorttitle="BS", overlay=true) // Input for take profit and stop loss in pips tp_pips = input(50, title="Take Profit (in pips)") sl_pips = input(100, title="Stop Loss (in pips)") // Calculate take profit and stop loss levels in points tp_level = tp_pips * syminfo.mintick sl_level = sl_pips * syminfo.mintick // Function to check if a breakout has occurred breakout(high_or_low) => high_or_low > request.security(syminfo.tickerid, "D", high[1]) ? true : false // Buy condition buy_condition = breakout(high) strategy.entry("Buy", strategy.long, when=buy_condition) // Sell condition sell_condition = breakout(low) strategy.entry("Sell", strategy.short, when=sell_condition) // Take profit and stop loss conditions for Buy tp_buy_condition = strategy.position_avg_price + tp_level sl_buy_condition = strategy.position_avg_price - sl_level strategy.exit("Take Profit/Close Buy", from_entry="Buy", profit=tp_buy_condition, loss=sl_buy_condition) // Take profit and stop loss conditions for Sell tp_sell_condition = strategy.position_avg_price - tp_level sl_sell_condition = strategy.position_avg_price + sl_level strategy.exit("Take Profit/Close Sell", from_entry="Sell", profit=tp_sell_condition, loss=sl_sell_condition)