
Strategi ini adalah sistem perdagangan mengikuti tren yang menggabungkan sinyal persilangan rata-rata pergerakan dengan manajemen risiko ATR. Strategi ini menangkap tren pasar melalui persilangan rata-rata pergerakan cepat dan lambat, dan menggunakan indikator ATR untuk menyesuaikan stop loss dan tingkat keuntungan secara dinamis guna mencapai pengendalian risiko perdagangan yang tepat. Strategi ini juga menyertakan modul manajemen uang yang secara otomatis menyesuaikan ukuran posisi berdasarkan ekuitas akun dan parameter risiko yang telah ditetapkan.
Logika inti dari strategi ini didasarkan pada komponen-komponen kunci berikut:
Strategi ini menangkap tren melalui persilangan rata-rata pergerakan dan menggabungkannya dengan pengendalian risiko dinamis ATR untuk mencapai sistem perdagangan pelacakan tren yang lengkap. Kekuatan strategi ini terletak pada kemampuan beradaptasi dan pengendalian risiko, tetapi mungkin berkinerja buruk di pasar yang bergejolak. Kinerja strategi secara keseluruhan dapat ditingkatkan dengan menambahkan filter tren dan mengoptimalkan sistem pengelolaan uang.
/*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)