
Multi-Cycle Reversal Point Identification and Automated Trading Strategy adalah sistem perdagangan kuantitatif yang didasarkan pada Magic-9⁄13 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-prinsip inti dari strategi ini didasarkan pada dua indikator teknis utama: Mode Magic-9⁄13 dan titik balik arah (DRP).
Magic-9⁄13 mode identifikasi:
Perhitungan DRP:
Sinyal perdagangan dihasilkan:
Mekanisme manajemen risiko:
Fungsi tambahan:
Identifikasi awal dari market reversalDengan kombinasi Magic-9⁄13 mode dan titik balik arah, dapat menangkap sinyal pada tahap awal dari pembalikan pasar, memberikan waktu masuk yang lebih baik.
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
Kontrol risiko otomatisTerintegrasi dengan Stop Loss dan Stop Stop, Anda dapat mengontrol risiko transaksi tunggal tanpa intervensi manual dan mencegah keputusan perdagangan emosional.
Sinyal perdagangan visualTag: Intuisi menunjukkan sinyal perdagangan dengan perubahan warna label dan grafik yang membantu pedagang untuk mengidentifikasi peluang perdagangan potensial dengan cepat.
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.
Stabilitas data processingTermasuk mekanisme untuk menangani nilai NA, meningkatkan stabilitas strategi dalam berbagai kondisi data.
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.
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.
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.
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.
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.
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.
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.
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.
Pengaturan parameter dinamis:
Tambahkan filter tren:
Optimalkan mekanisme stop loss dan take profit:
Meningkatkan filter volume transaksi:
Filter waktu implementasi:
Menambahkan fungsi manajemen posisi:
Untuk mencapai nilai intensitas sinyal:
Menambahkan identifikasi pasar yang relevan:
Strategi identifikasi dan perdagangan otomatis multi-siklus adalah sistem perdagangan kuantitatif berbasis portofolio indikator teknis yang dikombinasikan dengan identifikasi pola Magic-9⁄13 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.
/*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)