Strategi ini adalah strategi grid posisi variabel yang mengikuti tren yang terutama menggunakan pola EMA, RSI, dan engulfing untuk menentukan arah tren dan waktu masuk. Strategi ini menyesuaikan posisi stop-loss dan take-profit berdasarkan ukuran tubuh pola engulfing sambil memungkinkan pengguna untuk memilih untuk pergi panjang saja, pendek saja, atau keduanya. Selain itu, strategi ini menyediakan opsi untuk menggunakan MACD sebagai filter tren.
Strategi ini menggunakan EMA 200 periode untuk menentukan arah tren keseluruhan. Ketika harga di atas EMA, itu dianggap sebagai uptrend, dan ketika di bawah EMA, itu dianggap sebagai downtrend. RSI 9 periode digunakan untuk mengukur momentum, dengan RSI di atas 50 menunjukkan momentum bullish yang lebih kuat dan di bawah 50 menunjukkan momentum bearish yang lebih kuat. Strategi ini juga menggunakan pola bullish dan bearish engulfing sebagai sinyal masuk. Ketika sinyal EMA, RSI, dan pola engulfing sepakat, strategi membuka posisi.
Stop-loss dan take-profit posisi ditentukan berdasarkan ukuran tubuh pola engulfing. Stop-loss ditetapkan pada dua kali ukuran tubuh engulfing, dengan persentase stop-loss minimum 0,3% dari harga masuk untuk menghindari sering stop-out karena jarak stop-loss yang kecil. Posisi take-profit ditetapkan dengan mengalikan jarak stop-loss dengan rasio risiko-imbalan yang telah ditentukan sebelumnya untuk memastikan rasio risiko-imbalan yang tetap. Selain itu, strategi ini memberikan pilihan untuk menggunakan MACD sebagai filter tren, dengan mempertimbangkan tren bullish yang lebih kuat ketika garis MACD berada di atas garis sinyal dan tren bearish yang lebih kuat ketika garis MACD berada di bawah garis sinyal.
Mengikuti tren: Strategi menggunakan beberapa indikator untuk menentukan tren, membantu memasuki pada tahap awal pembentukan tren dan menangkap gerakan tren.
Stop-loss dan take-profit dinamis: Dengan menyesuaikan posisi stop-loss dan take-profit berdasarkan ukuran tubuh pola engulfing, strategi memperluas rentang take-profit ketika tren kuat dan mempersempit rentang stop-loss ketika tren lemah, memungkinkan manajemen posisi yang fleksibel.
Pengguna dapat menyesuaikan arah perdagangan, preferensi risiko, dan parameter lainnya agar sesuai dengan kebutuhan pengguna yang berbeda.
Pilihan untuk menggunakan MACD sebagai filter tren lebih lanjut mengkonfirmasi kekuatan tren dan meningkatkan akurasi entri.
Identifikasi tren yang salah: Meskipun strategi menggunakan beberapa indikator untuk menentukan tren, masih mungkin ada kasus di mana tren yang salah diidentifikasi, yang mengarah pada kerugian.
Rentang penyempitan: Jika tubuh pola engulfing kecil, jarak stop-loss dan take-profit akan sangat dekat, yang menyebabkan penurunan rasio risiko-manfaat.
Optimasi parameter: Parameter optimal dapat bervariasi secara signifikan di berbagai instrumen dan kerangka waktu, yang mengharuskan pengguna untuk terus menguji dan mengoptimalkan.
Identifikasi tren: Pertimbangkan untuk memperkenalkan alat konfirmasi tren tambahan seperti Bollinger Bands, Average Directional Index (ADX), dll, untuk meningkatkan akurasi identifikasi tren.
Optimasi stop-loss dan take-profit: Pertimbangkan untuk memasukkan indikator terkait volatilitas seperti ATR untuk menyesuaikan jarak stop-loss dan take-profit secara dinamis, mengurangi risiko yang terkait dengan kisaran kecil.
Ukuran posisi: Sesuaikan ukuran posisi secara dinamis berdasarkan kekuatan tren, profitabilitas akun, dll., Meningkatkan ukuran posisi ketika tren kuat dan konsisten menguntungkan, dan mengurangi biaya perdagangan yang sering.
Koordinasi multi-frame waktu dan multi-instrumen: Memvalidasi sinyal tren di seluruh kerangka waktu dan instrumen untuk meningkatkan keakuratan identifikasi tren sambil mendiversifikasi risiko dari satu instrumen atau kerangka waktu.
Strategi grid posisi variabel mengikuti tren ini berkinerja baik di pasar tren dengan menggunakan beberapa indikator untuk menentukan arah dan kekuatan tren, secara dinamis menyesuaikan stop-loss, take-profit, dan ukuran posisi untuk menangkap tren dan mencapai laba yang berlebihan. Namun, kinerja strategi ini rata-rata di pasar yang tidak jelas atau sering fluktuasi. Oleh karena itu, ketika menggunakan strategi ini, sangat penting untuk fokus pada pemilihan instrumen tren dan menyesuaikan parameter ketika kondisi pasar berubah. Selain itu, ada ruang untuk optimasi lebih lanjut dalam identifikasi tren, penempatan stop-loss dan take-profit, ukuran posisi, dan koordinasi multi-frame dan multi-instrumen.
/*backtest start: 2024-02-01 00:00:00 end: 2024-02-29 23:59:59 period: 1h basePeriod: 15m 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/ // © niosupetranmartinez //@version=5 strategy("Trend Follower Scalping Strategy", overlay=true, process_orders_on_close = true) // Inputs emaLen = input(200, 'EMA Length') rsiLen = input(9, 'RSI Length') trendDirection = input.string("Both", 'Trend Direction', options=["Long Only", "Short Only", "Both"]) risk_reward_ratio = input(2, 'Risk Reward Ratio') useMacdFilter = input.bool(true, "Use MACD Filter") macdTimeframe = input("5", "MACD Timeframe") // EMA and RSI ema200 = ta.ema(close, emaLen) customRsi = ta.rsi(close, rsiLen) // MACD Filter [macdLine, signalLine, _] = request.security(syminfo.tickerid, macdTimeframe, ta.macd(close, 12, 26, 9)) // Majority Body Candle Identification Function isMajorityBodyCandle(candleOpen, candleClose, high, low) => bodySize = math.abs(candleClose - candleOpen) fullSize = high - low bodySize / fullSize > 0.6 // Engulfing Patterns isBullishEngulfing = close > open and close[1] < open[1] and (close - open) > (open[1] - close[1]) and isMajorityBodyCandle(open, close, high, low) isBearishEngulfing = close < open and close[1] > open[1] and (open - close) > (close[1] - open[1]) and isMajorityBodyCandle(open, close, high, low) // Entry Conditions with MACD Filter longCondition = close > ema200 and customRsi > 50 and isBullishEngulfing and (not useMacdFilter or macdLine > signalLine) shortCondition = close < ema200 and customRsi < 50 and isBearishEngulfing and (not useMacdFilter or macdLine < signalLine) // Trade Execution var float stopLossPrice = na var float entryPrice = na // Long Entry if (longCondition and (trendDirection == "Long Only" or trendDirection == "Both")) entryPrice := close engulfingBodySize = math.abs(close - open) minimumStopLoss = entryPrice * 0.997 calculatedStopLoss = entryPrice - (engulfingBodySize * 2) stopLossPrice := calculatedStopLoss < minimumStopLoss ? calculatedStopLoss : minimumStopLoss risk = entryPrice - stopLossPrice takeProfitPrice = entryPrice + (risk_reward_ratio * risk) strategy.entry("Long", strategy.long) strategy.exit("Exit Long", "Long", stop = stopLossPrice, limit = takeProfitPrice) // Short Entry if (shortCondition and (trendDirection == "Short Only" or trendDirection == "Both")) entryPrice := close engulfingBodySize = math.abs(open - close) minimumStopLoss = entryPrice * 1.003 calculatedStopLoss = entryPrice + (engulfingBodySize * 2) stopLossPrice := calculatedStopLoss > minimumStopLoss ? calculatedStopLoss : minimumStopLoss risk = stopLossPrice - entryPrice takeProfitPrice = entryPrice - (risk_reward_ratio * risk) strategy.entry("Short", strategy.short) strategy.exit("Exit Short", "Short", stop = stopLossPrice, limit = takeProfitPrice) // Plotting plot(ema200, color=color.blue, linewidth=2, title="EMA 200")