
Strategi pengiktirafan titik balik pelbagai kitaran dan strategi perdagangan automatik adalah sistem perdagangan kuantitatif yang berdasarkan pada model Magic-9⁄13 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-prinsip utama strategi ini adalah berdasarkan dua petunjuk teknikal utama: mod Magic-9⁄13 dan titik pembalikan arah (DRP).
Magic-9⁄13 pengenalan mod:
Pengiraan titik perubahan arah (DRP):
Sinyal dagangan dihasilkan:
Mekanisme pengurusan risiko:
Fungsi pembantu:
Pengesanan awalDengan menggabungkan Magic-9⁄13 dengan titik-titik perubahan arah, ia dapat menangkap isyarat pada peringkat awal perubahan pasaran, memberikan peluang masuk yang lebih baik.
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.
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.
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.
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.
Ketahanan pemprosesan data: mengandungi mekanisme untuk menangani nilai NA, meningkatkan kestabilan strategi dalam pelbagai keadaan data.
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.
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.
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.
Pertunjukan pasaran trendKaedah penyelesaian: Menambah penapis trend, yang memicu isyarat perdagangan hanya apabila ia mengesahkan bahawa pasaran tidak berada dalam keadaan trend yang kuat.
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.
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.
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.
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.
Pengaturan parameter dinamik:
Tambah penapis trend:
Optimumkan mekanisme stop loss dan take profit:
Meningkatkan penapisan jumlah transaksi:
Penapisan masa:
Menambah fungsi pengurusan kedudukan:
Mencapai penilaian kekuatan isyarat:
Menambah pengesahan pasaran:
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-9⁄13, 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.
/*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)