Strategi ini adalah sistem perdagangan mengikut trend berdasarkan crossover purata bergerak berbilang dan penunjuk RSI. Ia menggabungkan EMA20, EMA50, dan SMA200 untuk menentukan trend pasaran, menggunakan penunjuk RSI untuk menapis isyarat perdagangan, dan melaksanakan dagangan apabila harga memecahkan paras tertinggi sebelumnya.
Logik teras adalah berdasarkan syarat utama berikut: 1. Penentuan Trend: EMA20 mesti berada di atas EMA50, dan SMA200 di bawah kedua-dua EMA, mengesahkan trend menaik. 2. Kedudukan Harga: Harga penutupan semasa mesti berada dalam julat 1% sama ada EMA20 atau EMA50, memastikan tahap sokongan utama. 3. Penapis RSI: Nilai RSI mesti berada di atas ambang yang ditetapkan (default 40), penapis untuk pasaran yang kuat. 4. Entry Trigger: Posisi panjang diaktifkan apabila harga memecahkan tinggi lilin sebelumnya. 5. Pengurusan Risiko: Menetapkan tahap mengambil keuntungan 25% dan stop-loss 10% untuk kawalan risiko.
Strategi ini adalah sistem trend berikut yang berstruktur dan logik. Melalui gabungan beberapa penunjuk teknikal, ia dengan berkesan menangkap trend pasaran sambil mengekalkan pengurusan risiko yang komprehensif. Strategi ini mempunyai ruang yang signifikan untuk pengoptimuman dan dapat mencapai peningkatan kestabilan dan keuntungan melalui peningkatan berterusan.
/*backtest start: 2025-01-02 00:00:00 end: 2025-01-09 00:00:00 period: 5m basePeriod: 5m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("EMA/SMA Strategy", overlay=false) // Input parameters ema20Length = input(20, title="20 EMA Length") ema50Length = input(50, title="50 EMA Length") sma200Length = input(200, title="200 SMA Length") rsiLength = input(14, title="RSI Length") rsiThreshold = input(40, title="RSI Threshold") // Calculate indicators ema20 = ta.ema(close, ema20Length) ema50 = ta.ema(close, ema50Length) sma200 = ta.sma(close, sma200Length) rsiValue = ta.rsi(close, rsiLength) // Conditions emaCondition = ema20 > ema50 and sma200 < ema20 and sma200 < ema50 priceNearEMA = (close <= ema20 * 1.01 and close >= ema20 * 0.99) or (close <= ema50 * 1.01 and close >= ema50 * 0.99) rsiCondition = rsiValue > rsiThreshold // Entry condition: Price crosses previous candle high entryCondition = priceNearEMA and rsiCondition and emaCondition and (close > high[1]) // Strategy entry if entryCondition strategy.entry("Long", strategy.long) // Take profit and stop loss settings takeProfitLevel = strategy.position_avg_price * 1.25 // Take profit at +25% stopLossLevel = strategy.position_avg_price * 0.90 // Stop loss at -10% // Exit conditions if strategy.position_size > 0 strategy.exit("Take Profit", from_entry="Long", limit=takeProfitLevel) strategy.exit("Stop Loss", from_entry="Long", stop=stopLossLevel) // Plotting indicators for visualization plot(ema20, color=color.blue, title="20 EMA") plot(ema50, color=color.red, title="50 EMA") plot(sma200, color=color.green, title="200 SMA") hline(rsiThreshold, "RSI Threshold", color=color.orange)