
고저점 돌파 전략은 고저점 식별에 기반한 긴 기간의 변동 전략이다. 이 전략은 전략 방향 변수 방향으로, 가장 최근의 특정 창문 기간의 최고 가격을 돌파했을 때 더 많이 하고, 가장 최근의 특정 창문 기간의 최저 가격을 돌파했을 때 더 적게 한다.
이 전략은 입력 변수 설정을 통해 가장 가까운 N 근 K 선의 최고 가격과 최저 가격을 볼 수 있습니다. 즉, 변동의 높고 낮은 점입니다. 방향 변수에 따라 전략 방향을 판단하십시오. 과잉 할 때, 가격이 가장 가까운 N 근 K 선의 최고점을 돌파 할 때, 상습 방식으로 상장하십시오. 가격이 가장 가까운 N 근 K 선의 최저점을 넘어서는 경우 상습 방식으로 상장하십시오.
또한, 이 전략은 손실의 위치를 설정한다. 포지션을 더 많이 열었을 때, 손실의 경계는 최저 가격 인근에 설정된다.
이 전략의 가장 큰 장점은 높은 낮은 지점 근처의 중요한 변동성을 포착할 수 있다는 것입니다. 또한 스톱 라인을 설정하면 위험을 효과적으로 제어 할 수 있습니다.
이 장점은 다음과 같습니다:
전략적 사고가 명확하고, 높은 낮은 지점을 돌파하여 진출과 출전을 판단한다.
스윙의 높고 낮은 지점을 이용해 역전 기회를 찾는 것은 기술 분석의 고전적인 방법이다.
단편적인 행동으로 인한 큰 손실을 방지하기 위해 위험을 통제하기 위해 손해 차단 설정을 설정하십시오.
코드 구조는 명확하고 이해하기 쉽고 수정할 수 있습니다.
최고 최저점 주기 수를 조정하는 등 전략을 최적화하기 위해 다양한 매개 변수를 입력할 수 있다.
이 전략의 주요 위험은 높은 낮은 점 판단이 허용되지 않는 잘못된 거래입니다. 구체적인 위험은 다음과 같습니다:
가장 낮은 지점에서는 잘못된 진입으로 인한 잘못된 돌파가 발생할 수 있습니다.
파격점 근처에서 엄청난 스톱가스가 유발될 수 있다.
트렌드 품종은 높은 점과 낮은 점의 결정에 엄청난 비용을 지불합니다.
잘못된 변수 설정은 정책의 성능에도 영향을 미칩니다.
대응방법은 다음과 같습니다:
최적화 변수, 최저점 판단을 조정하는 주기 수
“이런 일이 벌어진다면,
트렌드 품종에서 사용하는 것을 피하기 위해 품종 특성을 구별하십시오.
기계학습 방법을 적용하여 동적으로 최적화 파라미터 .
이 전략은 다음과 같은 방향으로 최적화될 수 있습니다.
최대 최저점 주기수 최적화: 현재 고정된 주기수, 고정 모드에서 가져오는 오버 최적화를 피하기 위해 동적 최적화로 변경할 수 있다.
스톱포드 최적화: ATR, 변동률 등의 지표에 따라 스톱포드 폭을 동적으로 조정할 수 있다.
여러 시간주기를 결합: 높은 시간주기는 트렌드를 결정할 수 있고, 낮은 시간주기는 진출을 결정한다.
기계학습을 강화: 잠재적인 고/저점 돌파 확률을 예측하기 위해 신경망과 같은 방법을 사용하여 효과를 향상시킵니다.
최적화 중지 알고리즘: 중지 손실을 보장하는 조건에서 무효 중지 손실이 유발되는 상황을 최소화하기 위해 알고리즘을 개선하십시오.
고저점 돌파 전략은 전체적으로 매우 실용적인 긴 줄 수량화 전략이다. 그것은 고저점 근처의 반전 기회를 포착하여 수익을 창출하고, 손실을 방지하기 위해 위험을 제어하여 수익을 보장하면서 회수도 제어한다. 이 전략의 매개 변수 설정은 유연하고, 아이디어가 명확하며, 추천할 만한 전략이다.
/*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)