Pengenalpastian titik pembalikan berbilang tempoh dan strategi perdagangan automatik

MAGIC-9/13 DRP CROSSOVER CONSECUTIVE PATTERNS STOP-LOSS TAKE-PROFIT
Tarikh penciptaan: 2025-06-13 13:58:08 Akhirnya diubah suai: 2025-06-13 13:58:08
Salin: 0 Bilangan klik: 258
2
fokus pada
319
Pengikut

Pengenalpastian titik pembalikan berbilang tempoh dan strategi perdagangan automatik Pengenalpastian titik pembalikan berbilang tempoh dan strategi perdagangan automatik

Gambaran keseluruhan

Strategi pengiktirafan titik balik pelbagai kitaran dan strategi perdagangan automatik adalah sistem perdagangan kuantitatif yang berdasarkan pada model Magic-913 dan pengiktirafan titik balik arah ((DRP)). Strategi ini menangkap isyarat perubahan pasaran dengan mengenal pasti pola harga berturut-turut dan titik perubahan momentum, dan melakukan perdagangan secara automatik. Inti strategi ini adalah menggabungkan falsafah analisis teknikal tradisional dengan kaedah kuantitatif moden, dengan menganalisis tingkah laku harga berturut-turut, untuk mengenal pasti titik perubahan pasaran yang berpotensi, sehingga memasuki pasaran pada awal perubahan harga.

Prinsip Strategi

Prinsip-prinsip utama strategi ini adalah berdasarkan dua petunjuk teknikal utama: mod Magic-913 dan titik pembalikan arah (DRP).

  1. Magic-913 pengenalan mod:

    • Sistem memantau tingkah laku harga selama 9 kitaran berturut-turut untuk mencari corak harga yang konsisten
    • Mod tinggi ((high_9)): terbentuk apabila harga 9 kali berturut-turut lebih tinggi daripada harga penutupan 4 kitaran sebelumnya, tetapi tidak memenuhi 10 kali
    • Moden titik rendah ((low_9)): terbentuk apabila harga 9 kali berturut-turut lebih rendah daripada harga penutupan 4 kitaran sebelumnya, tetapi tidak memenuhi 10 kali
  2. Pengiraan titik perubahan arah (DRP):

    • Dengan menganalisis hubungan antara harga dalam panjang input dan harga sebelum panjang lookback
    • Hitung jumlah kenaikan ((up_count): jumlah kali harga semasa lebih tinggi daripada harga pada tempoh pengulangan
    • Hitung pengiraan turun ((down_count): bilangan kali harga semasa lebih rendah daripada harga pada tempoh pengembalian
    • Apabila down_count sama dengan panjang yang ditetapkan, menandakan titik putar balik ke atas (value 1)
    • Apabila up_count sama dengan panjang yang ditetapkan, menandakan titik balik turun (nilai -1)
  3. Sinyal dagangan dihasilkan:

    • Isyarat beli: dicetuskan apabila mod low_9 dikesan dan titik balik arah melintasi ke atas dari nilai negatif atau sifar
    • Isyarat menjual: dipicu apabila mod tinggi_9 dikesan dan titik pembalikan arah melintasi ke bawah dari nilai positif atau nol
  4. Mekanisme pengurusan risiko:

    • Penutupan automatik: 10 titik penutupan diletakkan di arah yang bertentangan dengan harga pembukaan
    • Penangguhan automatik: menetapkan penangguhan 10 titik ke arah yang bertentangan dengan harga pembukaan
  5. Fungsi pembantu:

    • get_first_non_na_value: fungsi untuk mendapatkan nilai bukan NA
    • count_consecutive_occurrences: kiraan jumlah kejadian berturut-turut
    • check_condition_occurrence: memeriksa sama ada keadaan berlaku dalam tempoh yang diberikan
    • filter_occurrences: bilangan kejadian penapis berdasarkan kitaran mundur

Kelebihan Strategik

  1. Pengesanan awalDengan menggabungkan Magic-913 dengan titik-titik perubahan arah, ia dapat menangkap isyarat pada peringkat awal perubahan pasaran, memberikan peluang masuk yang lebih baik.

  2. Mekanisme pengesahan berganda: Strategi yang memerlukan dua syarat bebas untuk dipenuhi pada masa yang sama ((Magic mode dan arah reversal titik penembusan), mengurangkan kemungkinan isyarat palsu, meningkatkan kualiti urus niaga.

  3. Kawalan risiko automatikIa mempunyai fungsi stop loss dan stop-loss yang terintegrasi, mengawal risiko perdagangan tunggal tanpa campur tangan manual, dan mengelakkan keputusan perdagangan emosi.

  4. Isyarat perdagangan visual: Menunjukkan isyarat perdagangan secara intuitif melalui perubahan warna label dan grafik yang membantu peniaga mengenal pasti peluang perdagangan yang berpotensi dengan cepat.

  5. Parameter yang boleh disesuaikanStrategi ini menawarkan pilihan untuk menyesuaikan dua parameter utama iaitu panjang dan panjang mundur, yang membolehkan peniaga mengoptimumkan mengikut keadaan pasaran dan jenis perdagangan yang berbeza.

  6. Ketahanan pemprosesan data: mengandungi mekanisme untuk menangani nilai NA, meningkatkan kestabilan strategi dalam pelbagai keadaan data.

  7. Kebolehan beradaptasi: Strategi boleh digunakan untuk carta dari tempoh masa yang berbeza, dari carta minit hingga carta hari, memberikan pilihan jangka masa perdagangan yang fleksibel.

Risiko Strategik

  1. Kepekaan ParameterPerforma strategi sangat bergantung kepada tetapan parameter panjang dan panjang mundur, keadaan pasaran yang berbeza mungkin memerlukan kombinasi parameter yang berbeza, tetapan parameter yang salah boleh menyebabkan terlalu banyak perdagangan atau kehilangan peluang perdagangan. Penyelesaian: Melakukan pengulangan sejarah yang komprehensif, membina matriks pengoptimuman parameter untuk keadaan pasaran yang berbeza.

  2. Risiko turun naik pasaran: Dalam pasaran yang bergelombang tinggi, penyetempatan titik berhenti sebagai 10 titik tetap mungkin terlalu kecil, menyebabkan ia sering dicetuskan; dan dalam pasaran yang bergelombang rendah, penyetempatan ini mungkin terlalu besar. Penyelesaian: penyetempatan titik berhenti berdasarkan nilai dinamik kadar turun naik pasaran (seperti ATR), dan bukan bilangan titik tetap.

  3. Pertunjukan pasaran trendKaedah penyelesaian: Menambah penapis trend, yang memicu isyarat perdagangan hanya apabila ia mengesahkan bahawa pasaran tidak berada dalam keadaan trend yang kuat.

  4. Titik tergelincir dan risiko kecairan: Dalam pasaran yang kurang cair, harga pelaksanaan mungkin berbeza dengan harga isyarat. Penyelesaian: Tambah syarat penapis kecairan, atau pertimbangkan faktor slippage semasa melaksanakan pesanan.

  5. Risiko terlalu serasiStrategi menggunakan pelbagai syarat dan parameter, mungkin ada risiko over-fit untuk data sejarah. Penyelesaian: menggunakan ujian sampel (Out-of-sample testing) dan ujian ke hadapan (Forward testing) untuk mengesahkan kehandalan strategi.

  6. Pengumpulan isyarat berterusan: Dalam keadaan pasaran tertentu, mungkin menghasilkan beberapa isyarat yang sama secara berturut-turut, yang menyebabkan kedudukan yang berlebihan. Penyelesaian: Menerapkan mekanisme penapisan isyarat, mengehadkan jumlah pelaksanaan isyarat yang sama dalam masa yang singkat.

  7. Had Stop Loss TetapPenangguhan dan hentian dengan nombor titik tetap mungkin tidak sesuai untuk semua keadaan pasaran, dan boleh menyebabkan penamatan perdagangan yang menguntungkan atau penangguhan yang terlambat. Penyelesaian: mewujudkan mekanisme hentian dan hentian yang dinamik berdasarkan turun naik pasaran, atau menggunakan strategi penangguhan dan hentian yang dikesan.

Arah pengoptimuman strategi

  1. Pengaturan parameter dinamik:

    • Mekanisme untuk menyesuaikan parameter length_input dan lookback_length secara automatik berdasarkan turun naik pasaran
    • Prinsip: persekitaran kadar turun naik yang berbeza memerlukan parameter dengan kepekaan yang berbeza, penyesuaian dinamik dapat meningkatkan fleksibiliti strategi
    • Metode pelaksanaan: formula untuk menyesuaikan parameter reka bentuk ATR berdasarkan N kitaran terakhir
  2. Tambah penapis trend:

    • Penunjuk pengiktirafan trend bersepadu (seperti purata bergerak, ADX, dan lain-lain), hanya menjalankan perdagangan apabila ia selaras dengan arah trend
    • Prinsip: Strategi pembalikan biasanya lebih buruk dalam pasaran yang jelas bercenderungan, penapis trend dapat mengurangkan isyarat palsu
    • Kaedah pelaksanaan: menambah purata bergerak jangka panjang sebagai rujukan arah trend, hanya melakukan lebih banyak apabila harga berada di atas purata, melakukan shorting di bawah purata
  3. Optimumkan mekanisme stop loss dan take profit:

    • Tetapan titik tetap digantikan dengan hentian kerugian dinamik berdasarkan kadar turun naik
    • Prinsip: Kadar turun naik pasaran berbeza-beza dalam tempoh yang berbeza, dan mata tetap tidak sesuai untuk semua keadaan pasaran
    • Cara pelaksanaan: Tetapan stop loss dengan menggunakan ATR ganda, contohnya 1.5 kali ATR sebagai stop loss, 3 kali ATR sebagai stop loss
  4. Meningkatkan penapisan jumlah transaksi:

    • Mempertimbangkan faktor jumlah transaksi dan hanya melaksanakan isyarat jika jumlah transaksi telah disahkan
    • Prinsip: Jumlah dagangan adalah pengesahan penting untuk keberkesanan perubahan harga yang dapat mengurangkan penembusan palsu
    • Metode pelaksanaan: Periksa sama ada jumlah transaksi semasa isyarat berlaku adalah lebih tinggi daripada purata transaksi N kitaran sebelumnya
  5. Penapisan masa:

    • Elakkan berdagang dalam tempoh tertentu (seperti sebelum dan selepas waktu buka dan tutup pasaran, atau sebelum dan selepas data ekonomi penting dikeluarkan)
    • Prinsip: Ketidakstabilan turun naik atau arah yang tidak jelas dalam beberapa tempoh masa, risiko dagangan yang lebih tinggi
    • Kaedah pelaksanaan: Meningkatkan penilaian syarat masa, menghalang penjanaan isyarat baru pada masa risiko tinggi
  6. Menambah fungsi pengurusan kedudukan:

    • Saiz kedudukan yang disesuaikan secara dinamik berdasarkan turun naik pasaran dan tahap risiko akaun
    • Prinsip: Kedudukan tetap tidak dapat disesuaikan dengan pelbagai keadaan risiko, kedudukan dinamik dapat mengawal risiko sambil mengekalkan pendapatan yang diharapkan
    • Kaedah pelaksanaan: Reka bentuk formula untuk mengira kedudukan berdasarkan peratusan pengeluaran maksimum
  7. Mencapai penilaian kekuatan isyarat:

    • Bagi setiap isyarat dagangan, diberikan skor kekuatan, hanya menjalankan isyarat di atas paras terhad
    • Prinsip: Tidak semua isyarat yang memenuhi syarat mempunyai kualiti yang sama, mekanisme penarafan dapat menyaring isyarat berkualiti tinggi
    • Kaedah pelaksanaan: penilaian komposit berdasarkan faktor-faktor seperti jarak dari harga ke garis rata-rata, kejernihan model Magic, kekuatan titik balik
  8. Menambah pengesahan pasaran:

    • Memperkenalkan data pasaran atau indeks yang berkaitan sebagai syarat tambahan
    • Prinsip: Keserasian pasaran yang berkaitan dapat meningkatkan kebolehpercayaan isyarat
    • Kaedah pelaksanaan: Periksa sama ada indeks utama atau pasaran berkaitan menunjukkan tanda-tanda perubahan yang sama

ringkaskan

Strategi pengenalan titik balik berkala dan perdagangan automatik adalah sistem perdagangan kuantitatif berdasarkan gabungan petunjuk teknikal, yang digabungkan dengan analisis titik balik arah melalui pengenalan pola Magic-913, untuk menangkap peluang terbalik yang berpotensi di pasaran. Kelebihan utama strategi ini adalah mekanisme pengesahan berganda dan fungsi pengurusan risiko bersepadu yang dapat memberikan isyarat perdagangan yang agak dipercayai pada awal perubahan pasaran, sambil mengawal risiko dengan menghentikan kerugian secara automatik.

Walau bagaimanapun, strategi ini juga menghadapi batasan seperti sensitiviti parameter, kesesuaian dengan persekitaran pasaran dan penangguhan kerugian tetap. Dengan melaksanakan langkah-langkah pengoptimuman seperti penyesuaian parameter dinamik, penambahan penapis trend, pengoptimuman mekanisme penangguhan kerugian, dan peningkatan pengesahan jumlah perdagangan, anda dapat meningkatkan kebolehpasaran dan kestabilan prestasi strategi dengan ketara.

Bagi peniaga, strategi ini memberikan kerangka kerja untuk menangkap titik balik pasaran secara sistematik, tetapi masih memerlukan penyesuaian dan pengoptimuman parameter yang munasabah yang digabungkan dengan keutamaan risiko peribadi dan pemahaman pasaran. Dalam proses penerapan praktikal, disarankan untuk melakukan ujian yang mencukupi di persekitaran simulasi untuk memahami ciri-ciri prestasi strategi dalam pelbagai persekitaran pasaran, dan kemudian secara beransur-ansur diterapkan pada perdagangan saham sebenar. Dengan terus mengoptimumkan dan memperbaiki, strategi ini boleh menjadi alat yang berkesan dalam kotak alat peniaga, terutama dalam menangkap titik balik pasaran.

Kod sumber strategi
/*backtest
start: 2025-06-05 00:00:00
end: 2025-06-05 15:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/

//@version=5
strategy('L3 Magic-9/13 Strategy', overlay=true, max_bars_back=4000, max_labels_count=500)

// 输入参数
length_input = input.int(title='Length', defval=9, minval=1)
lookback_length = input.int(title='Lookback Length', defval=4, minval=1)

// 获取第一个非 NA 值的函数
get_first_non_na_value(values, length) =>
    result = float(na)
    if length >= 1
        for i = 0 to length - 1
            if na(result) or not na(values[i])
                result := values[i]
    result

// 计算连续条件出现次数的函数
count_consecutive_occurrences(condition, length) =>
    count = 0
    for i = 1 to length
        if condition[i - 1]
            count += 1
    count

// 检查条件是否在给定周期内出现的函数
check_condition_occurrence(condition, length) =>
    occurrence = count_consecutive_occurrences(condition, length) != 0 ? 1 : 0
    occurrence

// 基于回溯周期过滤出现次数的函数
filter_occurrences(condition, lookback_period) =>
    output = 0.0
    temp = 0
    for i = lookback_period to 0
        if temp > 0
            output := 0.0
            temp := temp[1] - 1
        else
            if not condition[i]
                output := 0.0
            else
                output := 1.0
                temp := lookback_period + 1
    output_bool = output == 1 ? true : false
    output_bool

// Magic-9/13 逻辑
high_9 = count_consecutive_occurrences(close > get_first_non_na_value(close, 4), 9) == 9 and count_consecutive_occurrences(close > get_first_non_na_value(close, 4), 10) == 9
low_9 = count_consecutive_occurrences(close < get_first_non_na_value(close, 4), 9) == 9 and count_consecutive_occurrences(close < get_first_non_na_value(close, 4), 10) == 9

// 计算方向反转点
up_count = 0
down_count = 0
for i = 0 to length_input - 1
    up_count += (nz(close[i]) > nz(close[i + lookback_length]) ? 1 : 0)
    down_count += (nz(close[i]) < nz(close[i + lookback_length]) ? 1 : 0)

directional_reversal_point = down_count == length_input ? 1 : up_count == length_input ? -1 : 0

// 定义交易信号
buy_signal = check_condition_occurrence(low_9, 2) and ta.crossover(directional_reversal_point, 0)
sell_signal = check_condition_occurrence(high_9, 2) and ta.crossunder(directional_reversal_point, 0)

// 执行交易
if (buy_signal)
    strategy.entry("Buy", strategy.long)
    strategy.exit("Take Profit", "Buy", limit=close + 10 * syminfo.pointvalue, stop=close - 10 * syminfo.pointvalue)

if (sell_signal)
    strategy.entry("Sell", strategy.short)
    strategy.exit("Take Profit", "Sell", limit=close - 10 * syminfo.pointvalue, stop=close + 10 * syminfo.pointvalue)

// 绘制标签
labels = buy_signal ? label.new(bar_index, low, 'B', color=color.new(color.red, 40), textcolor=color.white, style=label.style_label_up, yloc=yloc.price, size=size.small) : sell_signal ? label.new(bar_index, high, 'S', color=color.new(color.lime, 40), textcolor=color.white, style=label.style_label_down, yloc=yloc.price, size=size.small) : na

// 绘制蜡烛图颜色
signal = directional_reversal_point > 0 or up_count > down_count ? 1 : directional_reversal_point < 0 or down_count > up_count ? -1 : 0
drp_color = signal > 0 ? color.green : signal < 0 ? color.red : color.black
barcolor(drp_color)