Strategi pelacakan kemunduran ekstrem melacak titik ekstrem rentang fluktuasi harga dan membuat pembalikan posisi panjang/pendek pada titik ekstrem untuk melacak tren.
Strategi ini didasarkan pada prinsip-prinsip berikut:
Menggunakan fungsi keamanan untuk mendapatkan harga tinggi dan rendah dari siklus K-line yang berbeda untuk mendeteksi apakah mereka sama dengan yang sebelumnya, sehingga dapat menilai apakah titik ekstremum baru tercapai.
Ketika titik ekstremum baru terdeteksi, buat posisi pendek jika saat ini pasar bull, dan buat posisi panjang jika saat ini pasar bear.
Tetapkan titik stop loss sebagai titik extremum baru yang terbentuk setelah posisi panjang/pendek dibuat untuk melacak tren dengan stop loss.
Atur rentang waktu efektif strategi dengan mengkonfigurasi tahun awal, bulan dan tanggal untuk melakukan penyesuaian untuk periode waktu yang berbeda.
Keuntungan utama dari strategi ini adalah:
Efektif menangkap titik ekstrim dari perubahan harga dan membuat posisi pembalikan untuk melacak tren.
Mengkonfigurasi waktu dan manajemen risiko untuk mengontrol waktu penggunaan dan modal strategi untuk mengurangi risiko.
Menggunakan titik ekstrim baru sebagai titik stop loss untuk menyesuaikan posisi stop loss secara dinamis berdasarkan kisaran fluktuasi harga baru.
Logika strategi yang sederhana dan jelas untuk mudah dipahami, debug dan optimasi.
Ada juga beberapa risiko untuk strategi ini:
Mungkin ada kesalahan penilaian dalam menentukan titik ekstrem, menyebabkan kesalahan dalam posisi panjang / pendek.
Stop loss posisi dekat dengan titik masuk, meningkatkan kemungkinan stop loss yang dipicu.
Tidak ada pertimbangan pada posisi piramida di sepanjang tren dan posisi terbalik, kurang menguntungkan di pasar tren.
Konfigurasi mata uang dan rentang waktu cukup kaku, tidak dapat melakukan penyesuaian dinamis. Sistem optimasi parameter dapat diperkenalkan.
Strategi dapat dioptimalkan dalam aspek berikut:
Mengoptimalkan logika titik ekstrem dengan lebih banyak filter untuk menghindari penilaian yang salah.
Tambahkan mekanisme stop loss yang mengambang berdasarkan perubahan harga dan volatilitas untuk menyesuaikan jarak stop loss.
Memperkenalkan modul piramida dan posisi terbalik berdasarkan tren dan volatilitas untuk meningkatkan profitabilitas.
Menetapkan mekanisme optimasi parameter untuk pengujian otomatis dan penyesuaian parameter.
Menggabungkan model pembelajaran mesin untuk membantu pengambilan keputusan strategi.
Strategi pelacakan reversi ekstrim bekerja dengan menangkap ekstrim harga dan melacak tren, dapat beradaptasi dan menguntungkan. Optimasi lebih lanjut pada penilaian ekstrim, mekanisme stop loss, aturan pembukaan posisi dll dapat membentuknya menjadi strategi perdagangan kuantitatif yang solid.
/*backtest start: 2024-01-01 00:00:00 end: 2024-01-31 23:59:59 period: 6h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //Noro //2018 //@version=2 strategy(title = "Noro's Extremum Strategy v1.0", shorttitle = "Extremum str 1.0", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0) //Settings needlong = input(true, defval = true, title = "Long") needshort = input(false, defval = false, title = "Short") capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Capital, %") tf = input('W', title = 'Timeframe for extremums') fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year") toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year") frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month") tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month") fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day") today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day") //Levels highm = request.security(syminfo.tickerid, tf, high[1]) lowm = request.security(syminfo.tickerid, tf, low[1]) upcolorm = highm == highm[1] ? lime : na dncolorm = lowm == lowm[1] ? red : na plot(highm, color = upcolorm, linewidth = 3) plot(lowm, color = dncolorm, linewidth = 3) //Signals size = strategy.position_size up = size > 0 ? highm * 1000000 : highm != highm[1] ? highm : up[1] dn = size < 0 ? 0 : lowm != lowm[1] ? lowm : dn[1] exit = true //Trading lot = strategy.position_size != strategy.position_size[1] ? strategy.equity / close * capital / 100 : lot[1] if highm > 0 and high[1] < highm and highm == highm[1] strategy.entry("Long", strategy.long, needlong == false ? 0 : lot, stop = up) if lowm > 0 and low[1] > lowm and lowm == lowm[1] strategy.entry("Short", strategy.short, needshort == false ? 0 : lot, stop = dn) if exit strategy.close_all()