Strategi ini menggunakan isyarat persilangan antara purata bergerak halus (SMMA) 50 tempoh dan purata bergerak mudah (SMA) 20 tempoh untuk menentukan kemasukan dan keluar. Ia menghasilkan isyarat beli apabila garis SMA pantas melintasi di atas garis SMMA perlahan, dan isyarat jual apabila SMA melintasi di bawah SMMA. Pada masa yang sama, strategi menetapkan semula tahap keuntungan tetap dan stop loss dinamik untuk mengunci keuntungan dan mengawal risiko.
Uji kombinasi parameter yang berbeza ( tempoh kitaran, kriteria penapis, dll) untuk mencari yang optimum.
Sertakan faktor lain seperti lonjakan jumlah untuk menapis isyarat.
Menggunakan alat pengoptimuman parameter untuk mencari parameter optimum.
Pertimbangkan untuk mengintegrasikan kaedah mengambil keuntungan lain seperti hentian atau keluar berasaskan nisbah keuntungan.
Mengira julat stop loss dinamik berdasarkan turun naik pasaran.
Strategi ini mempunyai logik yang agak mudah, menangkap arah trend melalui purata bergerak berganda. Penggunaan keuntungan tetap dan kehilangan berhenti dinamik untuk mengambil keuntungan dan kawalan risiko mencapai keseimbangan antara risiko dan ganjaran. Pengoptimuman parameter dan logik lanjut dapat menyesuaikan strategi ini dengan pelbagai keadaan pasaran.
/*backtest start: 2023-01-26 00:00:00 end: 2024-02-01 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("50 SMMA and 20 SMA Crossover with TP and SL", overlay=true) // Define 50 SMMA smma50 = sma(close, 50) // Define 20 SMA sma20 = sma(close, 20) // Plotting the SMMA and SMA plot(smma50, color=color.blue, title="50 SMMA") plot(sma20, color=color.red, title="20 SMA") // Initialize TP and SL variables tp = 150 var float sl_price = na // Buy Signal buySignal = crossover(sma20, smma50) strategy.entry("Buy", strategy.long, when = buySignal) strategy.exit("Take Profit/Stop Loss", from_entry="Buy", profit=tp, loss=sl_price) // Sell Signal sellSignal = crossunder(sma20, smma50) strategy.entry("Sell", strategy.short, when = sellSignal) strategy.exit("Take Profit/Stop Loss", from_entry="Sell", profit=tp, loss=sl_price) // Update stop loss level on every crossover if (buySignal or sellSignal) sl_price := close[bar_index + 1] // Plot Stop Loss level plotshape(series=sl_price != na, title="Stop Loss Level", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.small)