이것은 ATR 지표와 폐쇄 가격을 사용하여 트렌드 브레이크우트를 캡처하는 양적 거래 전략입니다. 전략은 동적으로 트렌드 방향을 결정하기 위해 상부 및 하부 트렌드 라인을 계산하고 종료 가격이 트렌드 라인을 깨는 경우 거래 신호를 생성합니다. 전략은 또한 스톱 로스 및 목표 가격 수준을 설정하고 변동성에 따라 트레일링 스톱을 허용합니다.
해결책:
멀티 타임프레임 분석은 더 안정적인 트렌드 식별을 위해 잡음을 필터링하는 데 도움이됩니다. 브레이크아웃 전에 볼륨과 가격 확인은 잘못된 신호를 제거 할 수 있습니다. 포지션 사이즈 최적화는 자본 효율성을 향상시킵니다. 스톱 로스 및 보상 / 리스크 매개 변수를 최적화하면 위험 조정 수익을 향상시킬 수 있습니다. 트레일링 스톱 논리를 정제하면 드래운드를 제어하면서 더 많은 트렌드 수익을 얻을 수 있습니다.
이 전략은 트렌드 라인 포지션을 동적으로 조정하고 트렌드 브레이크오웃을 캡처하기 위해 변동성 지표로 ATR을 사용합니다. 수익을 잠금하기 위해 트레일링 스톱을 사용하여 합리적인 스톱-로스 및 수익 목표를 설정합니다. 매개 변수는 강력한 적응력을 위해 조정 가능합니다. 그러나 트렌드 브레이크오웃 전략은 불안정한 조건에서 휘프사 손실에 민감하며 추가 최적화 및 정리를 요구합니다. 여러 시간 프레임, 필터링 신호, 최적화 위치 사이징, 매개 변수 최적화 및 기타 기술을 결합하면 전략의 성능과 견고성을 향상시킬 수 있습니다. 양적 전략은 더 많은 야심찬 거래자에게 아이디어와 지침을 제공하기 위해 기본 원칙에 대한 탄탄한 이해에 기반한 지속적인 테스트 및 최적화를 요구합니다.
/*backtest start: 2023-03-16 00:00:00 end: 2024-03-21 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy(title = "Claw-Pattern", overlay=true, calc_on_every_tick=true, default_qty_type= strategy.percent_of_equity,default_qty_value=10, currency="USD") //Developer: Trading Strategy Guides //Creator: Trading Strategy Guides //Date: 3/18/2024 //Description: A trend trading system strategy atr_period = input(title="ATR Period", defval=120, type=input.integer) atr_mult = input(title="ATR Multiplier", defval=2, type=input.integer) dir = input(title="Direction (Long=1, Short=-1, Both = 0)", defval=1, type=input.integer) factor = input(title="Stop Level Deviation (% Chan.)", defval=0.75, type=input.float) rr = input(title="Reward to Risk Multiplier", defval=2, type=input.integer) trail_bar_start = input(title="Trail Stop Bar Start", defval=20, type=input.integer) col_candles = input(title="Enable Colored Candles", defval=false, type=input.bool) atr_signal = atr(atr_period) lower_trend = low - atr_mult*atr_signal upper_trend = high + atr_mult*atr_signal upper_trend := upper_trend > upper_trend[1] and close < upper_trend[1] ? upper_trend[1] : upper_trend lower_trend := lower_trend < lower_trend[1] and close > lower_trend[1] ? lower_trend[1] : lower_trend upper_color = barssince(cross(close, upper_trend[1])) > barssince(cross(close, lower_trend[1])) ? color.red : na lower_color = barssince(cross(close, upper_trend[1])) > barssince(cross(close, lower_trend[1])) ? na : color.green trend_line = lower_trend plot(lower_trend, color=lower_color, title="Lower Trend Color") plot(upper_trend, color=upper_color, title="Upper Trend Color") is_buy = strategy.position_size == 0 and crossover(close, upper_trend[1]) and upper_color[1]==color.red and (dir == 1 or dir == 0) is_sell = strategy.position_size == 0 and crossover(close, lower_trend[1]) and lower_color[1]==color.green and (dir == -1 or dir == 0) if is_buy strategy.entry("Enter Long", strategy.long) else if is_sell strategy.entry("Enter Short", strategy.short)