The Turtle Trading 3-Day Reversion Strategy adalah modifikasi dari
Melalui latihan dan backtesting, saya telah menemukan bahwa strategi secara konsisten bekerja lebih baik ketika menggunakan EMA alih-alih SMA untuk garis tren. jadi skrip ini menggunakan EMA untuk garis tren. saya juga telah membuat panjang exit EMA disesuaikan.
Strategi ini bekerja sebagai berikut:
EMA keluar default ke EMA 5 hari, panjangnya dapat disesuaikan.
Ide utama dari strategi ini adalah untuk mengambil keuntungan dari reversi rata-rata jangka pendek. Ketika harga terus menurun, mereka cenderung bangkit kembali dalam jangka pendek. Strategi ini mengidentifikasi peluang reversi rata-rata dengan memeriksa apakah harga menyempit selama 3 hari berturut-turut di bawah EMA jangka pendek.
Dibandingkan dengan strategi crossover rata-rata bergerak tradisional, strategi ini memiliki keuntungan berikut:
Menggunakan penyempitan 3 hari berturut-turut untuk mengidentifikasi pembalikan meningkatkan kualitas sinyal.
Menyaring dengan EMA panjang dan pendek menghindari perdagangan di pasar tren.
Menggunakan EMA alih-alih SMA untuk garis tren lebih sensitif dalam menangkap pembalikan.
Panjang EMA keluar yang dapat disesuaikan memungkinkan penyesuaian strategi stop loss berdasarkan kondisi pasar.
Frekuensi perdagangan yang rendah dengan periode penyimpanan 1-2 hari menghindari risiko yang terkait dengan taruhan arah panjang.
Strategi ini juga memiliki risiko berikut:
Risiko pembalikan gagal. Harga mungkin gagal untuk bangkit dan terus menurun setelah sinyal pembalikan.
Harga bisa berulang kali mencapai stop loss di pasar yang bergolak.
Risiko optimasi parameter. Exit EMA dan parameter lainnya membutuhkan pengujian dan penyesuaian terus menerus berdasarkan pasar yang berkembang. Kinerja dapat memburuk tanpa penyesuaian.
Risiko overfitting. Optimasi harus menghindari overfitting. Parameter harus kuat.
Risiko dapat dikurangi dengan:
Mengikuti aturan stop loss untuk mengendalikan kerugian perdagangan tunggal.
Pengaturan parameter yang kuat selama optimasi untuk menyeimbangkan risiko dan pengembalian.
Menyesuaikan ukuran posisi untuk mengurangi risiko per perdagangan.
Strategi ini dapat ditingkatkan dalam hal berikut:
Uji panjang EMA yang berbeda untuk masuk dan keluar untuk menemukan parameter optimal.
Tambahkan filter lain seperti volume untuk memastikan sinyal pembalikan lebih andal.
Tingkatkan stop loss dengan metode seperti ATR atau trailing stop untuk fleksibilitas yang lebih besar.
Masukkan filter tren untuk menghindari mengambil sinyal pembalikan dalam tren yang ada.
Gabungkan dengan strategi lain untuk optimasi portofolio dan diversifikasi.
Menggunakan pembelajaran mesin untuk penyesuaian parameter adaptif.
Turtle Trading 3-day Reversion Strategy mengidentifikasi peluang pembalikan jangka pendek dengan mendeteksi pola penyempitan 3 hari di bawah EMA pendek. Dibandingkan dengan strategi rata-rata bergerak tradisional, strategi ini memiliki sinyal masuk yang lebih andal dan EMA keluar yang dapat disesuaikan untuk pengoptimalan stop loss. Strategi ini bekerja dengan baik untuk pasar yang bergolak dan menangkap bouncing pendek.
/*backtest start: 2023-10-05 00:00:00 end: 2023-10-12 00:00:00 period: 10m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // @version = 5 // Author = TradeAutomation strategy(title="ETF 3-Day Reversion Strategy", shorttitle="ETF 3-Day Reversion Strategy", process_orders_on_close=true, overlay=true, commission_type=strategy.commission.cash_per_order, commission_value=1, initial_capital = 10000000, default_qty_type=strategy.percent_of_equity, default_qty_value=100) // Backtest Date Range Inputs // StartTime = input(defval=timestamp('01 Jan 2012 05:00 +0000'), title='Start Time') EndTime = input(defval=timestamp('01 Jan 2099 00:00 +0000'), title='End Time') InDateRange = true // Strategy Rules // DayEMA5 = ta.ema(close, 5) Rule1 = close>ta.ema(close, 200) Rule2 = close<DayEMA5 Rule3 = high<high[1] and low<low[1] and high[1]<high[2] and low[1]<low[2] and high[2]<high[3] and low[2]<low[3] ExitEMA = ta.ema(close, input.int(5, "EMA Length For Exit Strategy", tooltip = "The strategy will sell when the price crosses over this EMA")) plot(DayEMA5) plot(ExitEMA, color=color.green) // Entry & Exit Functions // if (InDateRange) strategy.entry("Long", strategy.long, when = Rule1 and Rule2 and Rule3) // strategy.close("Long", when = ta.crossunder(close, ATRTrailingStop)) strategy.close("Long", when = ta.crossover(close, ExitEMA)) if (not InDateRange) strategy.close_all()