추세 추종 브레이크아웃 풀백 전략


생성 날짜: 2024-02-01 14:37:02 마지막으로 수정됨: 2024-02-01 14:37:02
복사: 6 클릭수: 741
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

추세 추종 브레이크아웃 풀백 전략

개요

브레이크 리커드 전략은 트렌드 추적 전략이다. 그것의 기본 원칙은 K 선의 가장 높은 가격 또는 가장 낮은 가격의 첫 번째 브레이크를 할 때 더 많은 공백을 하고, 스톱 스톱 손실을 설정 한 후 let 이윤이 계속 작동한다.

전략 원칙

이 전략은 주로 가격이 전 K 선의 최고 가격이나 최저 가격을 뚫었는지 판단하여 Entry 시점을 결정한다. 구체적인 논리는 다음과 같다:

만약 현재 K 선의 최고값이 이전 K 선의 최고값보다 높다면, 더 많은 신호를 발산한다.

현재 K선 최저가격이 이전 K선 최저가격보다 낮으면 공백 신호를 낸다.

추가 공백 신호를 받은 후 즉시 진입한다. 진입 후 스톱을 50점, 스톱로스를 100점으로 설정한다.

손실이 스톱로스 포인트에 해당하는 것보다 많거나 이익이 스톱로스 포인트에 해당하는 것보다 많으면 적극적으로 탈퇴한다.

우위 분석

이 전략은 다음과 같은 장점을 가지고 있습니다.

  1. 작업 논리는 간단하고 구현하기 쉽다.
  2. 트렌드의 시작을 파악할 수 있고,
  3. 스티커스 스탠드 (Stop Loss) 를 설정한 후, 리 (利) 가 계속 작동할 수 있도록 하고, 조기 퇴장을 방지한다.
  4. 철수와 위험 통제 능력이 강하다.

위험 분석

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

  1. 파격 신호는 가짜 파격으로 인해 잘못 진입할 수 있다.
  2. 위험성을 조절하기 위해 합리적인 스톱 스톱 손실 포인트를 설정해야 합니다.

최적화 방향

이 전략은 다음의 몇 가지 측면에서 계속 개선될 수 있습니다.

  1. 가격 돌파의 유효성을 판단하여 가짜 돌파를 피한다. 예를 들어, 지표 필터링과 거래량 검증을 추가할 수 있다.

  2. 트렌드 판단 기계를 추가하고, 시장의 재조정으로 인한 피폐쇄 위험을 피한다. 이동 평균과 같은 트렌드 지표가 추가될 수 있다.

  3. 이윤을 극대화하기 위해 스톱로스, 스톱로스 추적, 스톱로스 이윤 후 이동 등의 스톱로스 전략을 최적화하십시오.

  4. 변수를 최적화하여 최적의 스톱 스톱 손실 점수를 찾습니다.

요약하다

이 돌파 회귀 전략은 전체적으로 논리적으로 간단하고, 실행에 편리하며, 트렌드 시작을 효과적으로 포착할 수 있으며, 회귀 및 위험 제어 능력도 강하다. 추가적인 최적화를 통해 매우 실용적인 수치화 전략이 될 수 있다.

전략 소스 코드
/*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)