Identifikasi titik pembalikan multi-periode dan strategi perdagangan otomatis

MAGIC-9/13 DRP CROSSOVER CONSECUTIVE PATTERNS STOP-LOSS TAKE-PROFIT
Tanggal Pembuatan: 2025-06-13 13:58:08 Akhirnya memodifikasi: 2025-06-13 13:58:08
menyalin: 0 Jumlah klik: 258
2
fokus pada
319
Pengikut

Identifikasi titik pembalikan multi-periode dan strategi perdagangan otomatis Identifikasi titik pembalikan multi-periode dan strategi perdagangan otomatis

Ringkasan

Multi-Cycle Reversal Point Identification and Automated Trading Strategy adalah sistem perdagangan kuantitatif yang didasarkan pada Magic-913 pattern and directional reversal point (DRP) identification. Strategi ini menangkap sinyal reversal pasar dengan mengidentifikasi pola harga berkelanjutan dan titik perubahan momentum, dan secara otomatis melakukan perdagangan. Inti dari strategi ini adalah menggabungkan konsep analisis teknis tradisional dengan metode kuantitatif modern, dengan menganalisis perilaku harga berkelanjutan, untuk mengidentifikasi titik balik pasar potensial, sehingga memasuki pasar pada awal reversal harga.

Prinsip Strategi

Prinsip-prinsip inti dari strategi ini didasarkan pada dua indikator teknis utama: Mode Magic-913 dan titik balik arah (DRP).

  1. Magic-913 mode identifikasi:

    • Sistem memantau perilaku harga selama 9 siklus berturut-turut untuk mencari pola harga yang konsisten
    • Mode puncak ((high_9)): terbentuk ketika harga 9 kali berturut-turut lebih tinggi dari harga penutupan 4 siklus sebelumnya, tetapi tidak memenuhi 10 kali
    • Low-point mode ((low_9)): terbentuk ketika harga 9 kali berturut-turut lebih rendah dari harga penutupan 4 siklus sebelumnya, namun tidak memenuhi 10 kali
  2. Perhitungan DRP:

    • Dengan menganalisis hubungan antara harga dalam panjang input dan harga sebelum panjang lookback
    • Hitung up count ((up_count): jumlah kali harga saat ini lebih tinggi dari harga periode mundur
    • Hitung hitungan turun ((down_count): jumlah kali harga saat ini lebih rendah dari harga periode mundur
    • Ketika down_count sama dengan panjang yang ditetapkan, ditandai sebagai uptrend reversal point (value 1)
    • Ketika up_count sama dengan panjang yang ditetapkan, ditandai sebagai titik balik penurunan (value = -1)
  3. Sinyal perdagangan dihasilkan:

    • Signal beli: dipicu ketika mode low_9 terdeteksi dan titik balik arah melewati nilai negatif atau nol ke atas
    • SELL SIGNAL: Dipicu ketika mode high_9 terdeteksi dan titik balik arah melintasi ke bawah dari nilai positif atau nol
  4. Mekanisme manajemen risiko:

    • Stop loss otomatis: 10 titik stop loss yang diatur ke arah yang berlawanan dengan harga awal
    • Stop otomatis: 10 stop set di arah yang berlawanan dengan harga awal
  5. Fungsi tambahan:

    • get_first_non_na_value: fungsi yang mendapatkan nilai yang bukan NA
    • count_consecutive_occurrences: menghitung jumlah kejadian berurutan
    • check_condition_occurrence: memeriksa apakah kondisi terjadi dalam periode tertentu
    • filter_occurrences: jumlah kejadian filter berdasarkan siklus mundur

Keunggulan Strategis

  1. Identifikasi awal dari market reversalDengan kombinasi Magic-913 mode dan titik balik arah, dapat menangkap sinyal pada tahap awal dari pembalikan pasar, memberikan waktu masuk yang lebih baik.

  2. Mekanisme multiple confirmation: Kebijakan meminta untuk memenuhi dua kondisi independen secara bersamaan ((Magic mode dan arah reversal titik melintasi), mengurangi kemungkinan sinyal palsu, meningkatkan kualitas transaksi

  3. Kontrol risiko otomatisTerintegrasi dengan Stop Loss dan Stop Stop, Anda dapat mengontrol risiko transaksi tunggal tanpa intervensi manual dan mencegah keputusan perdagangan emosional.

  4. Sinyal perdagangan visualTag: Intuisi menunjukkan sinyal perdagangan dengan perubahan warna label dan grafik yang membantu pedagang untuk mengidentifikasi peluang perdagangan potensial dengan cepat.

  5. Parameter yang dapat disesuaikanStrategi memberikan opsi penyesuaian untuk dua parameter penting, yaitu panjang dan panjang mundur, yang memungkinkan pedagang untuk mengoptimalkannya sesuai dengan berbagai kondisi pasar dan varietas perdagangan.

  6. Stabilitas data processingTermasuk mekanisme untuk menangani nilai NA, meningkatkan stabilitas strategi dalam berbagai kondisi data.

  7. Adaptasi Siklus: Strategi dapat diterapkan pada grafik dengan periode waktu yang berbeda, dari grafik menit hingga grafik hari, memberikan pilihan frame waktu perdagangan yang fleksibel.

Risiko Strategis

  1. Parameter SensitivitasPerforma strategi sangat bergantung pada pengaturan parameter panjang dan panjang mundur, kombinasi parameter yang berbeda mungkin diperlukan dalam lingkungan pasar yang berbeda, dan pengaturan parameter yang salah dapat menyebabkan overtrading atau kehilangan peluang perdagangan. Solusi: Melakukan retrospeksi sejarah yang komprehensif dan membangun matriks optimasi parameter untuk kondisi pasar yang berbeda.

  2. Risiko fluktuasi pasarDalam pasar yang berfluktuasi tinggi, setting stop loss menjadi 10 poin tetap mungkin terlalu kecil, sehingga sering dipicu; dan dalam pasar yang berfluktuasi rendah, setting ini mungkin terlalu besar. Solusi: Atur stop loss berdasarkan nilai dinamis dari volatilitas pasar (seperti ATR), bukan jumlah poin tetap.

  3. Performa pasar trenStrategi ini terutama ditujukan untuk desain titik balik, yang dapat menghasilkan sinyal kesalahan yang sering terjadi di pasar tren yang kuat. Solusi: Tambahkan filter tren, yang memicu sinyal perdagangan hanya jika dikonfirmasi bahwa pasar tidak dalam keadaan tren yang kuat.

  4. Titik geser dan risiko likuiditasDalam pasar yang kurang likuid, harga eksekusi dapat berbeda secara signifikan dari harga sinyal. Solusi: Tambahkan kondisi penyaringan likuiditas, atau pertimbangkan faktor slippage saat menjalankan pesanan.

  5. Risiko overadaptasiStrategi menggunakan beberapa kondisi dan parameter, dan mungkin ada risiko over-fitting terhadap data historis. Solusi: Menggunakan pengujian sampel (Out-of-sample testing) dan pengujian ke depan (Forward testing) untuk memverifikasi kehandalan strategi.

  6. Akumulasi sinyal berkelanjutanDalam kondisi pasar tertentu, sinyal dari arah yang sama dapat dihasilkan secara berturut-turut, sehingga menyebabkan posisi yang berlebihan. Solusi: menerapkan mekanisme penyaringan sinyal, membatasi jumlah sinyal dari arah yang sama dalam waktu singkat.

  7. Pembatasan Stop Loss TetapStop loss dengan nilai tetap mungkin tidak cocok untuk semua kondisi pasar, dan dapat menyebabkan berakhirnya perdagangan yang menguntungkan atau stop loss yang terlambat. Solusi: menerapkan mekanisme stop loss yang dinamis berdasarkan fluktuasi pasar, atau menggunakan strategi stop loss yang dilacak.

Arah optimasi strategi

  1. Pengaturan parameter dinamis:

    • Mekanisme untuk menyesuaikan length_input dan lookback_length parameter secara otomatis berdasarkan volatilitas pasar
    • Prinsip: Adaptasi strategi dapat ditingkatkan dengan penyesuaian dinamis yang memerlukan parameter dengan sensitivitas yang berbeda untuk lingkungan dengan tingkat fluktuasi yang berbeda
    • Metode implementasi: Formula yang dapat menyesuaikan parameter desain ATR berdasarkan N siklus terakhir
  2. Tambahkan filter tren:

    • Mengintegrasikan indikator pengenalan tren (seperti moving averages, ADX, dan lain-lain), hanya melakukan perdagangan jika sesuai dengan arah tren
    • Prinsip: Strategi reversal biasanya berkinerja buruk di pasar dengan tren yang jelas, dan penyaringan tren dapat mengurangi sinyal yang salah
    • Metode pelaksanaan: menambahkan rata-rata bergerak jangka panjang sebagai referensi arah tren, hanya melakukan over jika harga berada di atas rata-rata, melakukan short jika berada di bawah rata-rata
  3. Optimalkan mekanisme stop loss dan take profit:

    • Pengaturan titik tetap diganti dengan stop loss stop dynamic based on volatility
    • Prinsip: volatilitas pasar sangat bervariasi dari periode ke periode, dan poin tetap tidak dapat disesuaikan dengan semua kondisi pasar
    • Metode implementasi: Menggunakan ATR dalam perkalian untuk mengatur Stop Loss Stop Loss, misalnya 1.5 kali ATR sebagai Stop Loss, 3 kali ATR sebagai Stop Loss
  4. Meningkatkan filter volume transaksi:

    • Mempertimbangkan faktor volume transaksi dan hanya melakukan sinyal jika volume transaksi dikonfirmasi
    • Prinsip: Volume transaksi adalah pengkonfirmasi penting untuk efektivitas perubahan harga yang dapat mengurangi terobosan palsu
    • Metode implementasi: memeriksa apakah volume transaksi pada saat sinyal terjadi lebih tinggi dari rata-rata volume transaksi pada N siklus sebelumnya
  5. Filter waktu implementasi:

    • Menghindari transaksi pada periode waktu tertentu (misalnya, sebelum dan sesudah waktu buka dan tutup pasar, atau sebelum dan sesudah terbitnya data ekonomi penting)
    • Prinsip: Terkadang ada ketidakstabilan volatilitas atau ketidakpastian arah dalam beberapa periode waktu, sehingga risiko transaksi lebih tinggi
    • Metode implementasi: Meningkatkan penilaian kondisi waktu, melarang sinyal baru di masa-masa berisiko tinggi
  6. Menambahkan fungsi manajemen posisi:

    • Ukuran posisi yang disesuaikan secara dinamis berdasarkan volatilitas pasar dan tingkat risiko akun
    • Prinsip: Posisi tetap tidak dapat beradaptasi dengan lingkungan risiko yang berbeda, posisi dinamis dapat mengendalikan risiko sambil mempertahankan pengembalian yang diharapkan
    • Metode Implementasi: Desain rumus perhitungan posisi berdasarkan persentase pengembalian maksimum
  7. Untuk mencapai nilai intensitas sinyal:

    • Pembagian nilai intensitas untuk setiap sinyal perdagangan, hanya melakukan sinyal di atas nilai ambang
    • Prinsip: Tidak semua sinyal yang memenuhi persyaratan memiliki kualitas yang sama, dan sistem penilaian dapat menyaring sinyal berkualitas tinggi
    • Metode implementasi: Skor komposit berdasarkan faktor-faktor seperti jarak harga dari garis rata-rata, kejernihan mode Magic, intensitas titik balik
  8. Menambahkan identifikasi pasar yang relevan:

    • Masukkan data pasar atau indeks yang relevan sebagai syarat konfirmasi tambahan
    • Prinsip: Konsistensi pasar yang relevan dapat meningkatkan keandalan sinyal
    • Metode implementasi: memeriksa apakah indeks utama atau pasar terkait juga menunjukkan tanda-tanda pembalikan yang serupa

Meringkaskan

Strategi identifikasi dan perdagangan otomatis multi-siklus adalah sistem perdagangan kuantitatif berbasis portofolio indikator teknis yang dikombinasikan dengan identifikasi pola Magic-913 dan analisis titik balik arah untuk menangkap peluang pasar yang berpotensi berbalik. Keunggulan inti dari strategi ini adalah mekanisme konfirmasi ganda dan fungsi manajemen risiko yang terintegrasi, yang dapat memberikan sinyal perdagangan yang relatif andal pada awal berbaliknya pasar, sekaligus mengendalikan risiko dengan mengotomatiskan stop loss.

Namun, strategi ini juga menghadapi keterbatasan seperti sensitivitas parameter, adaptasi lingkungan pasar, dan stop loss tetap. Dengan menerapkan langkah-langkah optimasi seperti penyesuaian parameter dinamis, penambahan filter tren, pengoptimalan mekanisme stop loss, dan peningkatan konfirmasi volume perdagangan, strategi dapat secara signifikan meningkatkan adaptasi dan stabilitas kinerja.

Untuk pedagang, strategi ini memberikan kerangka kerja yang sistematis untuk menangkap titik balik pasar, tetapi masih perlu melakukan penyesuaian dan pengoptimalan parameter yang masuk akal yang dikombinasikan dengan preferensi risiko pribadi dan pemahaman pasar. Dalam proses penerapan praktis, disarankan untuk melakukan pengujian penuh di lingkungan simulasi untuk memahami karakteristik kinerja strategi di berbagai lingkungan pasar, dan kemudian secara bertahap menerapkannya pada perdagangan saham nyata. Dengan terus mengoptimalkan dan memperbaiki, strategi ini dapat menjadi alat yang efektif dalam toolkit pedagang, terutama dalam menangkap titik balik pasar.

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