Strategi ini adalah sistem perdagangan yang mengikuti tren berdasarkan EMA ganda dan indikator Stochastic. Ini menggabungkan moving average untuk menentukan tren pasar sambil menggunakan indikator Stochastic untuk menangkap sinyal silang di area overbought / oversold, dengan tingkat stop-loss dan take-profit dinamis untuk manajemen risiko. Pendekatan ini memastikan keandalan sinyal dan manajemen risiko-pahala yang efektif untuk setiap perdagangan.
Strategi ini didasarkan pada beberapa elemen inti:
Kondisi pembelian mengharuskan:
Kondisi jualannya berlawanan:
Ini adalah sistem strategi lengkap yang menggabungkan mengikuti tren dan perdagangan momentum. Melalui kombinasi sistem EMA dan indikator Stochastic, ia memastikan perdagangan selaras dengan tren utama sambil memasuki tingkat harga yang sesuai. Selain itu, strategi ini mencakup mekanisme manajemen risiko yang komprehensif, menggunakan stop-loss dinamis dan rasio risiko-imbalan tetap untuk mengendalikan risiko. Meskipun ada beberapa keterbatasan yang melekat, kinerja keseluruhan strategi dapat ditingkatkan lebih lanjut melalui optimasi yang disarankan. Dalam aplikasi praktis, pedagang disarankan untuk menyesuaikan parameter sesuai dengan karakteristik pasar tertentu dan preferensi 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)