Это количественная торговая стратегия, которая фиксирует прорыв тренда с использованием индикатора 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)