Ini adalah strategi trend yang didasarkan pada beberapa crossover EMA jangka waktu. Strategi ini terutama bergantung pada hubungan crossover antara 20, 50, dan 200 periode Eksponensial Moving Averages (EMA) dan hubungan harga-EMA untuk menentukan titik masuk, sambil menggabungkan tingkat take profit dan stop-loss berbasis persentase untuk manajemen risiko. Strategi ini sangat efektif pada jangka waktu yang lebih besar seperti grafik 1 jam, harian, dan mingguan.
Logika inti didasarkan pada sistem rata-rata bergerak ganda dan analisis aksi harga:
Ini adalah tren yang dirancang dengan baik mengikuti strategi dengan logika yang jelas. Melalui kombinasi beberapa indikator teknis, ini memastikan keandalan strategi dan solusi manajemen risiko yang jelas. Strategi ini sangat cocok untuk grafik jangka waktu yang lebih besar dan memiliki keuntungan unik dalam menangkap tren jangka menengah hingga panjang. Melalui arah optimasi yang disarankan, ada ruang untuk perbaikan lebih lanjut. Pedagang disarankan untuk menguji strategi secara menyeluruh dalam sistem backtesting sebelum melakukan perdagangan langsung dan menyesuaikan parameter sesuai dengan karakteristik instrumen perdagangan tertentu.
/*backtest start: 2024-10-28 00:00:00 end: 2024-11-27 00:00:00 period: 1h basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("EMA Cross Strategy with Targets and Fill", overlay=true) // Define EMAs ema20 = ta.ema(close, 20) ema50 = ta.ema(close, 50) ema200 = ta.ema(close, 200) // Plot EMAs (hidden) plot(ema20, color=color.blue, title="EMA 20", display=display.none) plot(ema50, color=color.red, title="EMA 50", display=display.none) plot(ema200, color=color.green, title="EMA 200", display=display.none) // Define the conditions priceCrossAboveEMA20 = ta.crossover(close, ema20) priceCloseAboveEMA20 = close > ema20 ema20AboveEMA50 = ema20 > ema50 ema50AboveEMA200 = ema50 > ema200 // Buy condition buyCondition = priceCrossAboveEMA20 and priceCloseAboveEMA20 and ema20AboveEMA50 and ema50AboveEMA200 // Plot buy signals plotshape(series=buyCondition, location=location.belowbar, color=color.green, style=shape.labelup, text="BUY") // Declare and initialize variables for take profit and stop loss levels var float longTakeProfit = na var float longStopLoss = na var float buyPrice = na // Update levels and variables on buy condition if (buyCondition) // Enter a new buy position strategy.entry("Buy", strategy.long) // Set new take profit and stop loss levels longTakeProfit := strategy.position_avg_price * 1.10 // Target is 10% above the buy price longStopLoss := strategy.position_avg_price * 0.95 // Stop loss is 5% below the buy price buyPrice := strategy.position_avg_price // Plot levels for the new trade plotTakeProfit = plot(longTakeProfit, color=color.green, title="Take Profit", linewidth=1, offset=-1) plotStopLoss = plot(longStopLoss, color=color.red, title="Stop Loss", linewidth=1, offset=-1) plotBuyPrice = plot(buyPrice, color=color.blue, title="Buy Price", linewidth=1, offset=-1) // Fill areas between buy price and take profit/stop loss levels fill(plotBuyPrice, plotTakeProfit, color=color.new(color.green, 90), title="Fill to Take Profit") // Light green fill to target fill(plotBuyPrice, plotStopLoss, color=color.new(color.red, 90), title="Fill to Stop Loss") // Light red fill to stop loss // Exit conditions strategy.exit("Take Profit/Stop Loss", from_entry="Buy", limit=longTakeProfit, stop=longStopLoss)