Strategi Pengesanan Kembali Ekstrim

Penulis:ChaoZhang, Tarikh: 2024-02-20 15:17:41
Tag:

img

Ringkasan

Strategi pengesanan pembalikan ekstrim mengesan titik ekstrim julat turun naik harga dan membuat pembalikan kedudukan panjang / pendek pada titik ekstrim untuk mengesan trend.

Prinsip Strategi

Strategi ini berdasarkan prinsip-prinsip berikut:

  1. 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.

  2. Apabila titik ekstrim baru dikesan, buat kedudukan pendek jika ia adalah pasaran lembu, dan buat kedudukan panjang jika ia adalah pasaran beruang.

  3. Tetapkan titik stop loss sebagai titik extremum baru yang terbentuk selepas kedudukan panjang/pendek dibuat untuk mengesan trend dengan stop loss.

  4. Tetapkan julat masa efektif strategi dengan mengkonfigurasi tahun permulaan, bulan dan tarikh untuk membuat penyesuaian untuk tempoh masa yang berbeza.

Kelebihan

Kelebihan utama strategi ini ialah:

  1. Menangkap titik-titik extremum perubahan harga dengan berkesan dan membuat kedudukan pembalikan untuk mengesan trend.

  2. Mengatur pengurusan masa dan risiko untuk mengawal masa penggunaan dan modal strategi untuk mengurangkan risiko.

  3. Menggunakan titik ekstrim baru sebagai titik stop loss untuk menyesuaikan kedudukan stop loss secara dinamik berdasarkan julat turun naik harga baru.

  4. Logik strategi yang mudah dan jelas untuk mudah difahami, debug dan pengoptimuman.

Risiko

Terdapat juga beberapa risiko untuk strategi ini:

  1. Mungkin ada salah menilai dalam menentukan titik ekstrem, menyebabkan kesilapan dalam kedudukan panjang / pendek. Logik boleh dioptimumkan.

  2. Kedudukan stop loss adalah berhampiran dengan titik masuk, meningkatkan kebarangkalian stop loss yang dicetuskan.

  3. Tiada pertimbangan mengenai kedudukan piramid sepanjang trend dan kedudukan terbalik, kurang menguntungkan dalam pasaran trend. Logik yang berkaitan boleh ditambah.

  4. Konfigurasi mata wang dan julat masa agak kaku, tidak boleh membuat penyesuaian dinamik. Sistem pengoptimuman parameter boleh diperkenalkan.

Arahan pengoptimuman

Strategi ini boleh dioptimumkan dalam aspek berikut:

  1. Mengoptimumkan logika titik ekstrem dengan lebih banyak penapis untuk mengelakkan pertimbangan yang salah.

  2. Tambah mekanisme stop loss terapung berdasarkan perubahan harga dan turun naik untuk menyesuaikan jarak stop loss.

  3. Memperkenalkan modul piramid dan membalikkan kedudukan berdasarkan trend dan turun naik untuk meningkatkan keuntungan.

  4. Menubuhkan mekanisme pengoptimuman parameter untuk ujian automatik dan penyesuaian parameter.

  5. Menggabungkan model pembelajaran mesin untuk membantu membuat keputusan strategi.

Ringkasan

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()

Lebih lanjut