Strategi ini adalah sistem perdagangan trend yang menggabungkan isyarat crossover purata bergerak dengan pengurusan risiko berasaskan ATR. Ia menangkap trend pasaran melalui persilangan purata bergerak pantas dan perlahan sambil menggunakan penunjuk ATR untuk menyesuaikan tahap stop-loss dan mengambil keuntungan secara dinamik, mencapai kawalan yang tepat terhadap risiko perdagangan. Strategi ini juga merangkumi modul pengurusan wang yang menyesuaikan saiz kedudukan secara automatik berdasarkan ekuiti akaun dan parameter risiko yang telah ditetapkan.
Logik teras strategi ini berdasarkan komponen utama berikut:
Strategi ini merangkumi trend melalui persilangan MA dan menggabungkan kawalan risiko dinamik ATR untuk mewujudkan sistem perdagangan trend yang lengkap. Kekuatan strategi terletak pada kemampuan penyesuaiannya dan kawalan risiko, walaupun ia mungkin kurang berprestasi di pasaran yang bergolak. Melalui penambahan penapis trend dan pengoptimuman sistem pengurusan wang, terdapat ruang untuk peningkatan dalam prestasi keseluruhan strategi.
/*backtest start: 2024-12-06 00:00:00 end: 2025-01-04 08:00:00 period: 3h basePeriod: 3h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © davisash666 //@version=5 strategy("Trend-Following Strategy", overlay=true) // Inputs for strategy parameters timeframe = input.timeframe("D", "Timeframe") risk_tolerance = input.float(2.0, "Risk Tolerance (%)", step=0.1) / 100 capital_allocation = input.float(200, "Capital Allocation (%)", step=1) / 100 // Technical indicators (used to emulate machine learning) ma_length_fast = input.int(10, "Fast MA Length") ma_length_slow = input.int(50, "Slow MA Length") atr_length = input.int(14, "ATR Length") atr_multiplier = input.float(1.5, "ATR Multiplier") // Calculations fast_ma = ta.sma(close, ma_length_fast) slow_ma = ta.sma(close, ma_length_slow) atr = ta.atr(atr_length) // Entry and exit conditions long_condition = ta.crossover(fast_ma, slow_ma) short_condition = ta.crossunder(fast_ma, slow_ma) // Risk management stop_loss_long = close - (atr * atr_multiplier) stop_loss_short = close + (atr * atr_multiplier) take_profit_long = close + (atr * atr_multiplier) take_profit_short = close - (atr * atr_multiplier) // Capital allocation position_size = strategy.equity * capital_allocation // Execute trades if long_condition strategy.entry("Long", strategy.long, qty=position_size / close) strategy.exit("Take Profit/Stop Loss", "Long", stop=stop_loss_long, limit=take_profit_long) if short_condition strategy.entry("Short", strategy.short, qty=position_size / close) strategy.exit("Take Profit/Stop Loss", "Short", stop=stop_loss_short, limit=take_profit_short) // Plotting for visualization plot(fast_ma, color=color.green, title="Fast MA") plot(slow_ma, color=color.red, title="Slow MA") plot(stop_loss_long, color=color.blue, title="Stop Loss (Long)", linewidth=1, style=plot.style_cross) plot(take_profit_long, color=color.purple, title="Take Profit (Long)", linewidth=1, style=plot.style_cross)