
Strategi ini menggunakan 50 kitaran rata-rata bergerak licin ((SMMA) dan 20 kitaran rata-rata bergerak mudah ((SMA) untuk menentukan masa membeli dan menjual. Ia menghasilkan isyarat membeli apabila SMA cepat naik menembusi SMMA perlahan; ia menghasilkan isyarat menjual apabila SMA turun menembusi SMMA. Ia juga menetapkan kedudukan berhenti tetap dan kedudukan berhenti dinamik untuk mengunci keuntungan dan mengawal risiko.
boleh menguji kombinasi parameter yang berbeza (bilangan kitaran, keadaan penapisan dan sebagainya) untuk mencari parameter terbaik;
boleh digabungkan dengan faktor-faktor lain untuk memfilter isyarat, seperti peningkatan jumlah pelanggan;
Alat pengoptimuman parameter boleh digunakan untuk mencari parameter optimum;
Penghentian lain boleh dipertimbangkan, seperti penghentian bergerak dan penghentian perkadaran;
Stop loss dinamik boleh dikira dengan turun naik pasaran.
Strategi ini beroperasi secara keseluruhan dengan mudah, menangkap arah trend melalui dua garis rata; penggunaan yang fleksibel dari stop-loss tetap dan stop-loss dinamik untuk mengunci keuntungan dan mengawal risiko, risiko dan keuntungan yang boleh dikatakan. Strategi ini dapat disesuaikan dengan keadaan pasaran yang lebih luas melalui pengoptimuman parameter dan peraturan.
/*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)