스윙 포인트 브레이크업 장기 전략

저자:차오장, 날짜: 2024-02-18 09:57:11
태그:

img

전반적인 설명

스윙 포인트 브레이크아웃 전략 (Swing Points Breakouts strategy) 은 스윙 하이와 스윙 로우를 식별하는 데 기반한 장기 트렌드 변동 전략이다. 이 전략은 가격이 입력 매개 변수에 의해 지정된 가장 최근의 기간의 가장 높은 가격을 뚫고 갈 때 긴 포지션을 입출하고, 가격이 가장 최근의 기간의 가장 낮은 가격을 뚫고 갈 때 짧은 포지션을 입출한다.

전략 논리

이 전략은 입력 매개 변수를 통해 가장 최근의 N 바의 최고 가격과 최저 가격을 스윙 하이 및 스윙 로우로 정의합니다. 방향 매개 변수에 따라 입출을 결정합니다. 장기간 거래할 때, 가격이 스윙 하이를 넘을 때 OCO 스톱 오더로 긴 포지션을 입력합니다. 단위로 거래할 때, 가격이 스윙 로우를 넘을 때 OCO 스톱 오더로 짧은 포지션을 입력합니다.

또한, 전략은 스톱 손실을 설정합니다. 긴 포지션을 열고 나면, 스톱 손실은 최근 최저 가격 근처에 설정됩니다. 짧은 포지션을 열고 나면, 스톱 손실은 가장 최근의 최고 가격 근처에 설정됩니다. 이것은 트렌딩 시장에서 엄청난 손실을 효과적으로 피합니다.

이점 분석

이 전략의 가장 큰 장점은 스윙 고도와 하위 주변 주요 변동과 그에 따라 수익을 포착한다는 것입니다. 스톱 손실을 설정하는 것은 또한 위험을 효과적으로 제어합니다.

특히 이점은 다음과 같습니다.

  1. 전략 논리는 명확합니다. 진입과 출입은 스윙 높은 / 낮은 브레이크오웃에 기반합니다.

  2. 그것은 회전 기회를 식별하기 위해 스윙 최고/하락을 이용합니다. 고전적인 기술 분석 접근법입니다.

  3. 트렌딩 시장에서 위험을 통제하고 큰 손실을 피하기 위해 스톱 로스가 있습니다.

  4. 코드는 명확한 구조를 가지고 있으며 이해하기 쉽고 수정 할 수 있습니다.

  5. 매개 변수는 전략 최적화를 위해 조정할 수 있습니다.

위험 분석

이 전략의 주요 위험은 잘못된 거래로 이어지는 부정확한 스윙 높은 / 낮은 식별에서 발생합니다. 구체적인 위험은 다음을 포함합니다.

  1. 잘못된 입력으로 인한 스윙 최고/저하점의 잘못된 파업

  2. 폭발점 근처에 엄청난 스톱 손실이 발생했습니다.

  3. 트렌딩 기호는 변동점을 결정하는 데 엄청난 비용이 필요합니다.

  4. 부적절한 매개 변수 조정도 전략 성능에 영향을 미칩니다.

그 해결책은 다음과 같습니다.

  1. 오프티마이징 매개 변수들, 예를 들어, 스윙 하이/로프 기간.

  2. 스톱 손실 거리를 늘립니다.

  3. 트렌드 기호에 사용하지 않도록 합니다.

  4. 동적으로 매개 변수를 최적화하기 위해 기계 학습을 채택합니다.

최적화 방향

이 전략은 다음과 같은 방향으로 최적화 될 수 있습니다.

  1. 오버 피팅을 피하기 위해 고정 값 대신 스윙 고/하 기간의 동적 최적화

  2. ATR 및 변동성에 기반한 동적 스톱 로스/프로프트 취득을 도입합니다.

  3. 여러 시간 프레임을 결합하고, 트렌드를 정의하기 위해 더 높은 TF를 사용하고, 진입을 위해 더 낮은 TF를 사용합니다.

  4. 기계 학습 모델을 통합하여 잠재적인 스윙 포인트를 예측하고 성능을 향상시킵니다.

  5. 스톱 로스 알고리즘을 최적화하여 불필요한 히트를 피하고 효과적인 스톱 로스를 유지합니다.

결론

스윙 포인트 브레이크아웃 전략은 전반적으로 실용적인 장기적인 양적 전략이다. 스윙 포인트 주변에서 반전 기회를 포착하고 위험을 제어하기 위해 스톱 손실을 설정함으로써 수익을 보장함과 동시에 드라우다운을 제어한다. 유연한 매개 변수 조정과 명확한 논리로, 그것은 활용할 가치가 있는 권장 전략 패러다임이다. 동적 최적화와 머신 러닝을 도입함으로써 추가 개선이 가능하다.


/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 4h
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/
// © tweakerID

// Long term strategy for managing a Crypto investment with Swing Trades of more than 1 day. The strategy buys with a 
// stop order at the Swing High price (green line) and sells with a stop order at the Swing Low price (red line). 
// The direction of the strategy can be adjusted in the Inputs panel.

//@version=4
strategy("Swing Points Breakouts", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100, initial_capital=10000, commission_value=0.04)

direction = input(0, title = "Strategy Direction", type=input.integer, minval=-1, maxval=1)
strategy.risk.allow_entry_in(direction == 0 ? strategy.direction.all : (direction < 0 ? strategy.direction.short : strategy.direction.long))

//Inputss
i_SL=input(true, title="Use Swing Lo/Hi Stop Loss & Take Profit")
i_SwingLow=input(10, title="Swing Low Lookback")
i_SwingHigh=input(10, title="Swing High Lookback")
i_reverse=input(false, "Reverse Trades")
i_SLExpander=input(defval=0, step=1, title="SL Expander")

//Strategy Calculations
SwingLow=lowest(i_SwingLow)
SwingHigh=highest(i_SwingHigh)

//SL & TP Calculations
bought=strategy.position_size != strategy.position_size[1]
LSL=valuewhen(bought, SwingLow, 0)-((valuewhen(bought, atr(14), 0)/5)*i_SLExpander)
SSL=valuewhen(bought, SwingHigh, 0)+((valuewhen(bought, atr(14), 0)/5)*i_SLExpander)
islong=strategy.position_size > 0
isshort=strategy.position_size < 0
SL= islong ? LSL : isshort ? SSL : na

//Entries and Exits
strategy.entry("long", true, stop=i_reverse?na:SwingHigh, limit=i_reverse?SwingLow:na)
strategy.entry("short", false, stop=i_reverse?na:SwingLow, limit=i_reverse?SwingHigh:na)

if i_SL
    strategy.exit("longexit", "long", stop=LSL)
    strategy.exit("shortexit", "short", stop=SSL)

//Plots
plot(i_SL ? SL : na, color=color.red, style=plot.style_cross, title="SL")
plot(SwingLow, color=color.red)
plot(SwingHigh, color=color.green)


더 많은