Strategi Trend Tracking Reversal adalah strategi perdagangan tren jangka pendek yang didasarkan pada futures NQ 15 menit. Ini mengidentifikasi peluang perdagangan melalui penyaringan tren dan pengenalan pola pembalikan. Strategi sederhana namun efektif ini cocok untuk pedagang jangka pendek aktif.
Strategi ini bekerja pada prinsip-prinsip berikut:
Gunakan EMA 8 periode sebagai filter tren utama, dengan sinyal panjang di atas EMA dan sinyal pendek di bawah EMA.
Mengidentifikasi pola pembalikan candlestick tertentu sebagai sinyal masuk, termasuk lilin hijau panjang diikuti oleh lilin merah pendek untuk sinyal panjang, dan lilin merah panjang diikuti oleh lilin hijau pendek untuk sinyal pendek.
Titik masuk ditetapkan di dekat tinggi/rendah lilin pembalikan, dengan tingkat stop loss di tinggi/rendah lilin pembalikan itu sendiri, memungkinkan rasio risiko/pembayaran yang efisien.
Memvalidasi sinyal pembalikan menggunakan aturan hubungan candlestick misalnya harga buka lilin merah di atas tubuh lilin hijau terakhir, tubuh sepenuhnya menelan dll untuk menyaring kebisingan.
Hanya mengoperasikan strategi selama jam perdagangan tertentu, menghindari periode volatilitas di sekitar rollover kontrak utama dll, untuk mencegah kerugian yang tidak perlu dari aksi harga yang tidak normal.
Keuntungan utama dari strategi ini meliputi:
Logika sinyal yang sederhana dan efektif yang mudah dipahami dan dilaksanakan.
Berbasis tren dan pembalikan, menghindari whipsaws dari pasar banteng dan beruang yang marah.
Pengendalian risiko yang baik dengan penempatan stop loss yang wajar untuk melestarikan modal.
Kebutuhan data yang rendah cocok dengan berbagai platform dan alat.
Frekuensi perdagangan yang tinggi sesuai dengan gaya perdagangan jangka pendek yang aktif.
Ada beberapa risiko yang perlu diperhatikan:
Kemungkinan pembalikan yang tidak mencukupi dan sinyal yang terbatas.
Kadang-kadang kesalahan, tambahkan filter untuk logika kombinasi.
Volatilitas dalam sesi overnight dan non-main membatasi operasi strategi untuk jam perdagangan AS.
Fleksibilitas optimasi terbatas. Pertimbangkan pembelajaran mesin untuk penyesuaian parameter yang lebih baik.
Ada ruang untuk optimasi:
Uji periode EMA yang lebih panjang untuk meningkatkan definisi tren.
Tambahkan filter indeks ekuitas sebagai filter tren tambahan.
Gunakan teknik pembelajaran mesin untuk menyesuaikan otomatis masuk dan menghentikan tingkat kerugian.
Memperkenalkan ukuran posisi yang disesuaikan dengan volatilitas dan berhenti dinamis.
Menjelajahi arbitrage lintas aset untuk mendiversifikasi risiko sistemik aset tunggal.
Trend Tracking Reversal Strategy menawarkan kerangka strategi jangka pendek yang sangat praktis yang mudah diterapkan dengan parameter terbatas dan kontrol risiko pribadi yang baik. Ini cocok untuk pedagang jangka pendek aktif di forum perdagangan harian. Dengan R&D lebih lanjut, ini berpotensi dapat diterapkan untuk perdagangan algoritmik jangka menengah dan panjang, menunjukkan fleksibilitas dan potensi pengembangan yang kuat.
/*backtest start: 2023-12-01 00:00:00 end: 2023-12-31 23:59:59 period: 3h 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/ // © bdrex95 //@version=5 // Rob Reversal Strategy - Official // Using Rob Reversal Indicator: Original // Description // This indicator is based on the strategy created by Trader Rob on the NQ 15m chart. // // Timeframe for trading is 8:30am-1:15pm Central. // // Above the EMA line, look for a long position. You will have a short candle, then a long candle that opens below the short candle. It will have a lower high and a lower low. Once the long candle closes, your entry will be 1 tick above the wick (green line) and stop loss will be at the bottom of the bottom wick (red line). // // Below the EMA line, look for a short position. You will have a long candle, then a short candle that opens above the long candle. It will have a higher high and a higher low. Once the short candle closes, your entry will be 1 tick below the wick (green line) and stop loss will be at the top of the top wick (red line). // strategy("Trader Rob Reversal Strategy NQ 15min", shorttitle="Official Rob Rev Strat", overlay=true) //--- Session Input --- sess = input(defval = "0930-1415", title="Trading Session") t = time(timeframe.period, sess) sessionOpen = na(t) ? false : true flat_time = input(defval = "1515-1558", title="Close All Open Trades") ft = time(timeframe.period, flat_time) flatOpen = na(ft) ? false : true // Calculate start/end date and time condition startDate = input(timestamp('2018-12-24T00:00:00'),group = "ALL STRATEGY SETTINGS BELOW") finishDate = input(timestamp('2029-02-26T00:00:00'),group = "ALL STRATEGY SETTINGS BELOW") time_cond = true emaColor = input.color(color.orange, title="EMA Color") emaLength = input.int(8, title="EMA Length") emaInd = ta.ema(close, emaLength) rr = input(1.0,"Enter RR",group = "TP/SL CONDITION INPUTS HERE") sellShapeInput = input.string("Arrow", title="Sell Entry Shape", options=["Arrow", "Triangle"]) buyShapeInput = input.string("Arrow", title="Buy Entry Shape", options=["Arrow", "Triangle"]) sellShapeOption = switch sellShapeInput "Arrow" => shape.arrowdown "Triangle" => shape.triangledown buyShapeOption = switch buyShapeInput "Arrow" => shape.arrowup "Triangle" => shape.triangleup O = open C = close H = high L = low sellEntry = (C[1] > O[1]) and (C < O) and (H[1] < H) and (C < H[1]) and (C > L[1]) and (L > L[1]) and (C < emaInd) and sessionOpen and time_cond buyEntry = (C[1] < O[1]) and (C > O) and (H[1] > H) and (L[1] > L) and (C < H[1]) and (C > L[1]) and (C > emaInd) and sessionOpen and time_cond sellEntry_index = ta.valuewhen(sellEntry,bar_index,0) sellEntry_hi = ta.valuewhen(sellEntry,high,0) sellEntry_low = ta.valuewhen(sellEntry,low,0) buyEntry_index = ta.valuewhen(buyEntry,bar_index,0) buyEntry_hi = ta.valuewhen(buyEntry,high,0) buyEntry_lo = ta.valuewhen(buyEntry,low,0) plotshape(buyEntry, color = color.green, location = location.belowbar, style = buyShapeOption, size = size.small) plotshape(sellEntry, color = color.red, location = location.abovebar, style = sellShapeOption, size = size.small) plot(emaInd, color=emaColor) // Risk Management entry_price_long = (buyEntry_hi + syminfo.mintick) entry_price_short = (sellEntry_low - syminfo.mintick) long_sl_price = (buyEntry_lo-syminfo.mintick) short_sl_price = (sellEntry_hi + syminfo.mintick) long_tp_price = ((entry_price_long - long_sl_price)*rr) + entry_price_long short_tp_price = entry_price_short - ((short_sl_price - entry_price_short)*rr) long_sl_ticks = (entry_price_long - long_sl_price) / syminfo.mintick short_sl_ticks = (short_sl_price - entry_price_short) / syminfo.mintick long_tp_ticks = (long_tp_price - entry_price_long) / syminfo.mintick short_tp_ticks = (entry_price_short - short_tp_price) / syminfo.mintick // Positions if (buyEntry) strategy.entry("Long", strategy.long,stop = H + syminfo.mintick) if strategy.position_size > 0 strategy.exit("Long Ex","Long", loss = long_sl_ticks, profit = long_tp_ticks, comment_loss = "SL Long", comment_profit = "TP Long") if (sellEntry) strategy.entry("Short", strategy.short,stop = L - syminfo.mintick) if strategy.position_size < 0 strategy.exit("Short Ex","Short",loss = short_sl_ticks, profit = short_tp_ticks, comment_loss = "SL Short", comment_profit = "TP Short") // Cancel order if close beyond ema if (C < emaInd) strategy.cancel("Long") if (C > emaInd) strategy.cancel("Short") // Go flat at close (for futures funded account) if strategy.position_size > 0 and flatOpen strategy.close_all(comment = "EOD Flat") if strategy.position_size < 0 and flatOpen strategy.close_all(comment = "EOD Flat") //END