Strategi ini adalah sistem perdagangan yang menggabungkan sinyal crossover rata-rata bergerak dengan manajemen risiko berbasis ATR. Strategi ini menangkap tren pasar melalui crossover rata-rata bergerak cepat dan lambat sambil menggunakan indikator ATR untuk menyesuaikan secara dinamis tingkat stop-loss dan take-profit, mencapai kontrol yang tepat terhadap risiko perdagangan. Strategi ini juga mencakup modul manajemen uang yang secara otomatis menyesuaikan ukuran posisi berdasarkan ekuitas akun dan parameter risiko yang telah ditetapkan sebelumnya.
Logika inti dari strategi ini didasarkan pada komponen kunci berikut:
Strategi ini menangkap tren melalui penyeberangan MA dan menggabungkan kontrol risiko dinamis ATR untuk menciptakan tren lengkap setelah sistem perdagangan. Kekuatan strategi terletak pada kemampuan adaptasi dan kontrol risiko, meskipun mungkin kurang baik di pasar yang bergolak.
/*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)