Strategi ini adalah sistem dagangan trend-mengikuti berdasarkan EMA dua dan penunjuk Stochastic. Ia menggabungkan purata bergerak untuk menentukan trend pasaran sambil menggunakan penunjuk Stochastic untuk menangkap isyarat silang di kawasan overbought / oversold, dengan tahap stop-loss dan mengambil keuntungan dinamik untuk pengurusan risiko. Pendekatan ini memastikan kebolehpercayaan isyarat dan pengurusan ganjaran risiko yang berkesan untuk setiap perdagangan.
Strategi ini bergantung pada beberapa elemen teras: 1. Menggunakan EMA 50 dan 150 tempoh untuk menentukan arah trend pasaran 2. Menggunakan penunjuk Stochastic (14,3,3) untuk mengenal pasti kawasan overbought/oversold 3. Cari isyarat silang Stochastic ke arah trend 4. Tetapkan stop-loss dinamik berdasarkan tindakan harga baru-baru ini 5. Menggunakan nisbah risiko-balasan 1: 2 untuk tahap mengambil keuntungan
Syarat pembelian memerlukan: - Penutupan harga di atas kedua-dua 50 dan 150 EMA - 50 EMA di atas 150 EMA - Nilai K stokastik di bawah 30 dan garis K melintasi di atas garis D
Syarat jualan adalah bertentangan: - Harga ditutup di bawah kedua-dua 50 dan 150 EMA - 50 EMA di bawah 150 EMA - Nilai Stochastic K di atas 70 dan garis K melintasi di bawah garis D
Ini adalah sistem strategi lengkap yang menggabungkan trend berikut dan perdagangan momentum. Melalui gabungan sistem EMA dan penunjuk Stochastic, ia memastikan perdagangan sejajar dengan trend utama sambil memasuki tahap harga yang sesuai. Di samping itu, strategi termasuk mekanisme pengurusan risiko yang komprehensif, menggunakan stop-loss dinamik dan nisbah risiko-balasan tetap untuk mengawal risiko. Walaupun terdapat beberapa batasan yang melekat, prestasi keseluruhan strategi dapat ditingkatkan lagi melalui pengoptimuman yang dicadangkan. Dalam aplikasi praktikal, peniaga dinasihatkan untuk menyesuaikan parameter mengikut ciri pasaran tertentu dan keutamaan risiko mereka sendiri.
/*backtest start: 2019-12-23 08:00:00 end: 2024-12-11 08:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © quadawosanya //@version=5 //indicator("My script") //@version=5 strategy("EMA-Stochastic Strategy", overlay=true) // EMA settings ema50 = ta.ema(close, 50) ema150 = ta.ema(close, 150) // Stochastic settings kLength = 14 dLength = 3 smoothK = 3 stochK = ta.sma(ta.stoch(close, high, low, kLength), smoothK) stochD = ta.sma(stochK, dLength) // Parameters for Stop Loss and Take Profit var float stopLossLevel = na var float takeProfitLevel = na // Buy condition buySignal = (close > ema50 and close > ema150) and (ema50 > ema150) and (stochK < 30 and ta.crossover(stochK, stochD)) // Sell condition sellSignal = (close < ema50 and close < ema150) and (ema50 < ema150) and (stochK > 70 and ta.crossunder(stochK, stochD)) // Previous low for Stop Loss for Buy lowBeforeBuy = ta.lowest(low, 5) // Previous high for Stop Loss for Sell highBeforeSell = ta.highest(high, 5) // Entry and exit logic if (buySignal) stopLossLevel := lowBeforeBuy risk = close - stopLossLevel takeProfitLevel := close + 2 * risk strategy.entry("Buy", strategy.long) strategy.exit("Take Profit/Stop Loss", "Buy", stop=stopLossLevel, limit=takeProfitLevel) if (sellSignal) stopLossLevel := highBeforeSell risk = stopLossLevel - close takeProfitLevel := close - 2 * risk strategy.entry("Sell", strategy.short) strategy.exit("Take Profit/Stop Loss", "Sell", stop=stopLossLevel, limit=takeProfitLevel) // Plotting EMAs plot(ema50, color=color.blue, title="50 EMA") plot(ema150, color=color.red, title="150 EMA") // Visualize Buy and Sell signals plotshape(series=buySignal, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY") plotshape(series=sellSignal, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL") // Visualize Stop Loss and Take Profit levels plot(stopLossLevel, color=color.red, style=plot.style_line, linewidth=2, title="Stop Loss") plot(takeProfitLevel, color=color.green, style=plot.style_line, linewidth=2, title="Take Profit") plot(close)