Ini adalah strategi trend berikut berdasarkan pelbagai persilangan EMA jangka masa. Strategi ini terutamanya bergantung pada hubungan persilangan antara purata bergerak eksponen (EMA) 20, 50, dan 200 tempoh dan hubungan harga-EMA untuk menentukan titik masuk, sambil menggabungkan tahap mengambil keuntungan dan stop-loss berasaskan peratusan untuk pengurusan risiko. Strategi ini sangat berkesan pada jangka masa yang lebih besar seperti carta 1 jam, harian, dan mingguan.
Logik teras berdasarkan sistem purata bergerak berganda dan analisis tindakan harga:
Ini adalah trend yang direka dengan baik mengikuti strategi dengan logik yang jelas. Melalui gabungan beberapa penunjuk teknikal, ia memastikan kedua-dua kebolehpercayaan strategi dan penyelesaian pengurusan risiko yang jelas. Strategi ini sangat sesuai untuk carta jangka masa yang lebih besar dan mempunyai kelebihan unik dalam menangkap trend jangka menengah hingga panjang. Melalui arah pengoptimuman yang dicadangkan, terdapat ruang untuk penambahbaikan lanjut. Pedagang dinasihatkan untuk menguji sepenuhnya strategi dalam sistem backtesting sebelum perdagangan langsung dan menyesuaikan parameter mengikut ciri 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)