Ini adalah strategi perdagangan kuantitatif yang menangkap gangguan trend menggunakan penunjuk ATR dan harga penutupan. Strategi ini secara dinamik mengira garis trend atas dan bawah untuk menentukan arah trend dan menghasilkan isyarat perdagangan apabila harga penutupan memecahkan garis trend. Strategi ini juga menetapkan tahap stop-loss dan harga sasaran dan membolehkan berhenti yang mengikut berdasarkan turun naik.
Penyelesaian:
Analisis jangka masa berbilang membantu menapis bunyi bising untuk pengenalan trend yang lebih stabil. Pengesahan jumlah dan harga sebelum pecah boleh menghapuskan isyarat palsu. Pengoptimuman saiz kedudukan meningkatkan kecekapan modal. Mengoptimumkan parameter stop-loss dan ganjaran / risiko dapat meningkatkan pulangan yang disesuaikan dengan risiko. Memperhalusi logik berhenti menyusul membolehkan menangkap lebih banyak keuntungan trend sambil mengawal penarikan.
Strategi ini menggunakan ATR sebagai pengukur turun naik untuk menyesuaikan kedudukan garis trend secara dinamik dan menangkap penembusan trend. Ia menetapkan sasaran stop-loss dan keuntungan yang munasabah, menggunakan berhenti yang menarik untuk mengunci keuntungan. Parameternya boleh diselaraskan untuk kebolehsesuaian yang kuat. Walau bagaimanapun, strategi penembusan trend terdedah kepada kerugian whipsaw dalam keadaan yang bergolak dan memerlukan pengoptimuman dan penyempurnaan lanjut. Menggabungkan pelbagai jangka masa, menapis isyarat, mengoptimumkan saiz kedudukan, pengoptimuman parameter, dan teknik lain dapat meningkatkan prestasi dan ketahanan strategi.
/*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)