
Strategi ini adalah sistem trend-tracking berdasarkan purata bergerak sederhana 200 kitaran ((MA200) yang menggabungkan indikator teknikal seperti RSI yang agak kuat ((RSI), indeks trend rata-rata ((ADX) dan purata gelombang sebenar ((ATR) untuk membentuk kerangka keputusan perdagangan yang lengkap. Strategi ini mencapai kawalan risiko yang berkesan melalui penetapan sasaran berhenti dan keuntungan yang dinamik. Dari hasil pengesanan semula, strategi ini memperoleh kadar kemenangan yang lebih baik dalam pelbagai jenis perdagangan, menunjukkan kebolehpasaran dan kestabilan yang lebih kuat.
Logik utama strategi ini adalah berdasarkan beberapa perkara penting:
Strategi ini membina sistem pengesanan trend yang mantap dengan menggabungkan beberapa petunjuk teknikal. Strategi ini dicipta dengan memberi tumpuan kepada kawalan risiko dan meningkatkan kebolehpercayaan perdagangan melalui mekanisme berhenti dan pengesahan isyarat yang dinamik. Walaupun terdapat beberapa ruang untuk pengoptimuman, secara keseluruhan merupakan strategi perdagangan yang mempunyai nilai praktikal.
/*backtest
start: 2024-02-21 00:00:00
end: 2025-02-18 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Binance","currency":"TRB_USDT"}]
*/
//@version=5
strategy("BTC/USD MA200 with RSI, ADX, ATR", overlay=true)
// Definition of the main moving average
ma_trend = ta.sma(close, 200) // Main trend filter
// Definition of RSI and ADX
rsi = ta.rsi(close, 14)
[diplus, diminus, adx] = ta.dmi(14, 14) // Correction for ADX
// Definition of ATR for Stop Loss and Take Profit
atr = ta.atr(14)
// Conditions for crossing of the MA200
crossover_condition = ta.crossover(close, ma_trend)
crossunder_condition = ta.crossunder(close, ma_trend)
// Trend confirmation after 2 bars
buy_confirmation = crossover_condition[2] and (rsi > 40) and (adx > 20) and close > ma_trend
sell_confirmation = crossunder_condition[2] and (rsi < 60) and (adx > 20) and close < ma_trend
// Definition of Stop Loss and Take Profit
take_profit = close * 1.02 // 2% profit
stop_loss = close - (1.5 * atr) // Dynamic stop based on ATR
// Execution of orders
if (buy_confirmation and strategy.opentrades == 0)
strategy.entry("Buy", strategy.long)
strategy.exit("Take Profit/Stop Loss", from_entry="Buy", limit=take_profit, stop=stop_loss)
label.new(bar_index, high, "BUY", style=label.style_label_down, color=color.green, textcolor=color.white, size=size.normal)
if (sell_confirmation)
if (strategy.opentrades > 0)
strategy.close("Buy")
label.new(bar_index, low, "SELL", style=label.style_label_up, color=color.red, textcolor=color.white, size=size.normal)
// Draw the main moving average
plot(ma_trend, color=color.purple, title="MA 200")