Strategi pengesanan pembalikan ekstrim mengesan titik ekstrim julat turun naik harga dan membuat pembalikan kedudukan panjang / pendek pada titik ekstrim untuk mengesan trend.
Strategi ini berdasarkan prinsip-prinsip berikut:
Menggunakan fungsi keselamatan untuk mendapatkan harga tinggi dan rendah garis K kitaran yang berbeza untuk mengesan sama ada mereka sama dengan yang sebelumnya, untuk menilai sama ada titik ekstremum baru dicapai.
Apabila titik ekstrim baru dikesan, buat kedudukan pendek jika ia adalah pasaran lembu, dan buat kedudukan panjang jika ia adalah pasaran beruang.
Tetapkan titik stop loss sebagai titik extremum baru yang terbentuk selepas kedudukan panjang/pendek dibuat untuk mengesan trend dengan stop loss.
Tetapkan julat masa efektif strategi dengan mengkonfigurasi tahun permulaan, bulan dan tarikh untuk membuat penyesuaian untuk tempoh masa yang berbeza.
Kelebihan utama strategi ini ialah:
Menangkap titik-titik extremum perubahan harga dengan berkesan dan membuat kedudukan pembalikan untuk mengesan trend.
Mengatur pengurusan masa dan risiko untuk mengawal masa penggunaan dan modal strategi untuk mengurangkan risiko.
Menggunakan titik ekstrim baru sebagai titik stop loss untuk menyesuaikan kedudukan stop loss secara dinamik berdasarkan julat turun naik harga baru.
Logik strategi yang mudah dan jelas untuk mudah difahami, debug dan pengoptimuman.
Terdapat juga beberapa risiko untuk strategi ini:
Mungkin ada salah menilai dalam menentukan titik ekstrem, menyebabkan kesilapan dalam kedudukan panjang / pendek. Logik boleh dioptimumkan.
Kedudukan stop loss adalah berhampiran dengan titik masuk, meningkatkan kebarangkalian stop loss yang dicetuskan.
Tiada pertimbangan mengenai kedudukan piramid sepanjang trend dan kedudukan terbalik, kurang menguntungkan dalam pasaran trend. Logik yang berkaitan boleh ditambah.
Konfigurasi mata wang dan julat masa agak kaku, tidak boleh membuat penyesuaian dinamik. Sistem pengoptimuman parameter boleh diperkenalkan.
Strategi ini boleh dioptimumkan dalam aspek berikut:
Mengoptimumkan logika titik ekstrem dengan lebih banyak penapis untuk mengelakkan pertimbangan yang salah.
Tambah mekanisme stop loss terapung berdasarkan perubahan harga dan turun naik untuk menyesuaikan jarak stop loss.
Memperkenalkan modul piramid dan membalikkan kedudukan berdasarkan trend dan turun naik untuk meningkatkan keuntungan.
Menubuhkan mekanisme pengoptimuman parameter untuk ujian automatik dan penyesuaian parameter.
Menggabungkan model pembelajaran mesin untuk membantu membuat keputusan strategi.
Strategi pengesanan pembalikan ekstremum berfungsi dengan menangkap ekstrem harga dan trend pengesanan, dapat disesuaikan dan menguntungkan. Pengoptimuman lanjut mengenai penilaian ekstremum, mekanisme hentian kerugian, peraturan pembukaan kedudukan dan lain-lain boleh membentuknya menjadi strategi perdagangan kuantitatif yang kukuh.
/*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()