
Strategi penembusan tepi awan keseragaman pelbagai isyarat adalah strategi perdagangan kuantitatif berdasarkan elemen penting pada tabel keseimbangan pertama (Ichimoku Cloud). Strategi ini menganalisis secara komprehensif beberapa penunjuk teknikal seperti garis peralihan (Tenkan-sen), garis rujukan (Kijun-sen), garis pendahuluan (A) (Senkou Span A), garis pendahuluan (B) (Senkou Span B) dan garis kelewatan (Chikou Span) untuk mengenal pasti trend pasaran dan potensi pembalikan dengan menilai lapan isyarat bullish yang berbeza.
Prinsip teras strategi ini adalah menggunakan pelbagai komponen carta keseimbangan untuk menilai kekuatan dan arah trend pasaran. Secara khusus, strategi ini menentukan lapan isyarat bullish utama berikut:
Strategi menentukan arah perdagangan dengan mengira jumlah isyarat yang memenuhi syarat ((bullish_count) dan membandingkannya dengan nilai had yang ditetapkan ((bullishThreshold dan bearishThreshold)). Apabila jumlah isyarat bullish mencapai atau melebihi Threshold bullish, strategi akan membuka kedudukan lebih dan melonggarkan sebarang kedudukan kosong; apabila jumlah isyarat bullish adalah kurang atau sama dengan Threshold bearish, strategi akan membuka kedudukan kosong dan melonggarkan sebarang kedudukan kosong.
Kaedah penilaian kesesuaian pelbagai isyarat ini dapat menyaring bunyi pasaran dengan berkesan, meningkatkan kebolehpercayaan isyarat perdagangan, dan mengurangkan risiko penembusan palsu.
Dengan analisis kod yang mendalam, strategi ini mempunyai beberapa kelebihan yang jelas:
Pengesahan isyarat multidimensiStrategi ini tidak bergantung pada satu indikator, tetapi secara menyeluruh mempertimbangkan lapan isyarat teknikal yang berbeza, dan hanya mencetuskan perdagangan apabila beberapa isyarat sesuai, yang mengurangkan kemungkinan isyarat palsu.
Sangat boleh menyesuaikan diriDengan menyesuaikan parameter Bullish Threshold dan Bearish Threshold, strategi dapat menyesuaikan nilai ambang isyarat mengikut keadaan pasaran yang berbeza untuk memastikan ia tetap berkesan dalam keadaan pasaran yang berbeza.
Penampakan visualStrategi menawarkan banyak elemen visual, termasuk lukisan awan (Kumo), penanda isyarat, dan label yang menunjukkan jumlah isyarat bullish semasa, yang membantu peniaga memahami struktur pasaran dan keadaan operasi strategi secara langsung.
Menangkap trend secara menyeluruhStrategi ini tidak hanya memberi perhatian kepada hubungan antara harga dan penunjuk, tetapi juga mempertimbangkan hubungan antara penunjuk dan sejarah, yang dapat menangkap perubahan trend pasaran secara lebih komprehensif.
Tetapan parameter yang fleksibel: Strategi membolehkan pengguna menyesuaikan parameter-parameter dalam jadual keseimbangan pertama, termasuk kitaran garis peralihan, kitaran garis dasar, kitaran B-band yang lebih awal dan kitaran perpindahan, yang membolehkan ia menyesuaikan diri dengan pelbagai jenis perdagangan dan kitaran masa.
Walaupun strategi ini direka dengan baik, terdapat beberapa risiko dalam aplikasi sebenar:
Risiko kelewatanTabel Keseimbangan Pertama: Tabel Keseimbangan Pertama sendiri adalah penunjuk kelewatan, terutamanya kitaran perpindahan ((Default 26), yang menyebabkan isyarat mengalami kelewatan tertentu, yang mungkin terlepas titik masuk terbaik atau menyebabkan kerugian berhenti yang besar dalam pasaran yang berubah dengan cepat.
Terlalu bergantung pada data sejarah: Strategi menggunakan banyak fungsi barssince untuk membandingkan titik persilangan sejarah, yang bergantung pada data sejarah yang mencukupi. Jika data sejarah tidak mencukupi, ia boleh menyebabkan keputusan isyarat yang salah.
Kepekaan ParameterKesan strategi sangat bergantung kepada tetapan parameter, kerana persekitaran pasaran yang berbeza mungkin memerlukan kombinasi parameter yang berbeza, dan tetapan parameter yang salah boleh menyebabkan perdagangan berlebihan atau kehilangan peluang penting.
Kekurangan pengurusan risiko: Tiada mekanisme berhenti dan hentikan yang jelas dalam kod, dan tidak mempertimbangkan pengurusan kedudukan, yang mungkin menanggung kerugian yang terlalu besar dalam keadaan yang tidak baik.
Pertembungan isyaratDalam pasaran yang bergolak, lapan isyarat mungkin sering berubah dan bertentangan, menyebabkan pergerakan yang lebih kerap dan meningkatkan kos dagangan.
Untuk mengurangkan risiko ini, peniaga boleh mempertimbangkan untuk menambah logik stop loss, mengoptimumkan tetapan parameter, dan mengesahkan isyarat dalam kombinasi dengan petunjuk lain yang tidak berkaitan, sambil mengawal saiz kedudukan dengan betul.
Berdasarkan ciri-ciri strategi dan potensi risiko, berikut adalah beberapa arah pengoptimuman yang mungkin:
Tambah Penapis KemeruapanMenambah ATR atau penunjuk kadar turun naik lain dalam kod, mengubah strategi secara radikal apabila turun naik pasaran terlalu tinggi atau terlalu kecil, atau mengelakkan perdagangan secara langsung pada masa-masa ini. Ini dapat dengan berkesan mengelakkan risiko pecah palsu yang timbul semasa turun naik rendah atau terlalu tinggi semasa turun naik tinggi.
Meningkatkan mekanisme pengurusan risiko: Menambah logik stop loss yang dinamik, seperti stop loss berdasarkan ATR, atau stop loss berdasarkan tahap rintangan sokongan penting, meningkatkan nisbah risiko-reward strategi.
Optimumkan berat isyarat: Isyarat bullish yang berbeza mungkin mempunyai kepentingan yang berbeza dalam persekitaran pasaran yang berbeza, dan berat yang berbeza boleh diberikan kepada lapan isyarat, dan tidak hanya dihitung, untuk meningkatkan daya serap strategi.
Memastikan jumlah transaksi: Menggunakan jumlah transaksi sebagai syarat pengesahan tambahan, dan hanya mengesahkan isyarat jika jumlah transaksi menyokong, dapat mengurangkan lagi penembusan palsu.
Membuat parameter dinamik menyesuaikan diriPembangunan mekanisme penyesuaian diri untuk menyesuaikan parameter strategi secara dinamik mengikut keadaan pasaran (seperti kadar turun naik, kekuatan trend, dan lain-lain) supaya strategi dapat menyesuaikan diri dengan keadaan pasaran yang berubah.
Menambah penilaian keadaan pasaranDalam strategi ini, logik penilaian mengenai keadaan pasaran (trend / getaran) dimasukkan. Dengan menggunakan titik rendah isyarat atau strategi perdagangan yang berbeza dalam keadaan pasaran yang berbeza, anda dapat meningkatkan prestasi strategi dengan ketara dalam keadaan pasaran yang berbeza.
Pengoptimuman ini dapat menjadikan strategi lebih kukuh, mengurangkan penarikan balik, dan meningkatkan keuntungan jangka panjang.
Strategi penembusan sempadan awan keseragaman pelbagai isyarat adalah sistem perdagangan komprehensif yang menggabungkan beberapa komponen jadual keseimbangan pertama. Ia menentukan arah trend pasaran dan keputusan perdagangan dengan menentukan lapan isyarat teknikal utama dan berdasarkan jumlah isyarat yang memenuhi syarat.
Kelebihan terbesar strategi ini adalah mekanisme pengesahan isyarat berbilang dimensi, yang menapis kebisingan pasaran dan meningkatkan kebolehpercayaan isyarat perdagangan dengan meminta beberapa petunjuk teknikal untuk menyelaraskan. Strategi ini juga menyediakan elemen visual yang kaya dan tetapan parameter yang fleksibel untuk memudahkan pedagang memahami struktur pasaran dan keadaan strategi secara intuitif.
Walau bagaimanapun, strategi ini juga mempunyai masalah seperti kelewatan isyarat, ketergantungan berlebihan pada data sejarah dan kekurangan pengurusan risiko yang sempurna. Strategi ini dapat ditingkatkan lagi dengan menambah penapis kadar turun naik, memperbaiki mekanisme pengurusan risiko, mengoptimumkan berat isyarat dan sebagainya.
Secara keseluruhannya, ini adalah kerangka strategi yang direka untuk menjadi komprehensif, logik dan jelas, yang sesuai untuk digunakan oleh peniaga yang mempunyai pengetahuan tentang tabel keseimbangan pertama. Dengan penyesuaian parameter yang sesuai dan pengoptimuman lanjut, strategi ini berpotensi menjadi sistem perdagangan yang stabil, terutama untuk perdagangan trend jangka panjang dan jangka panjang.
/*backtest
start: 2024-04-16 00:00:00
end: 2025-04-15 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//PineWiseTrading
//@version=6
strategy("⛅ CloudEdge", overlay=true, max_bars_back=4999)
// === INPUTS ===
// Ichimoku Periods
tenkanPeriod = input.int(9, "Tenkan-sen Period", minval=1, tooltip="Period for Tenkan-sen (Conversion Line)")
kijunPeriod = input.int(26, "Kijun-sen Period", minval=1, tooltip="Period for Kijun-sen (Base Line)")
senkouBPeriod = input.int(52, "Senkou Span B Period", minval=1, tooltip="Period for Senkou Span B")
displacement = input.int(26, "Displacement", minval=1, tooltip="Shift for Kumo and Chikou Span")
// Signal Thresholds
bullishThreshold = input.int(8, "Bullish Signal Threshold", minval=0, maxval=8, tooltip="Number of bullish signals required for a long position")
bearishThreshold = input.int(0, "Bearish Signal Threshold", minval=0, maxval=8, tooltip="Number of bullish signals below which a short position is entered")
// Visualization Options
showIchimoku = input.bool(true, "Show Ichimoku Lines", tooltip="Toggle to show/hide Ichimoku components")
showSignals = input.bool(true, "Show Signal Indicators", tooltip="Toggle to show/hide entry signals")
// === ICHIMOKU CALCULATIONS ===
// Tenkan-sen (Conversion Line)
tenkanHigh = ta.highest(high, tenkanPeriod)
tenkanLow = ta.lowest(low, tenkanPeriod)
tenkanSen = (tenkanHigh + tenkanLow) / 2
// Kijun-sen (Base Line)
kijunHigh = ta.highest(high, kijunPeriod)
kijunLow = ta.lowest(low, kijunPeriod)
kijunSen = (kijunHigh + kijunLow) / 2
// Senkou Span A (Leading Span A)
senkouA = (tenkanSen + kijunSen) / 2
// Senkou Span B (Leading Span B)
senkouBHigh = ta.highest(high, senkouBPeriod)
senkouBLow = ta.lowest(low, senkouBPeriod)
senkouB = (senkouBHigh + senkouBLow) / 2
// Chikou Span (Lagging Span)
chikouSpan = close[displacement]
// Kumo Upper and Lower for Visualization
kumoUpper = math.max(senkouA[displacement], senkouB[displacement])
kumoLower = math.min(senkouA[displacement], senkouB[displacement])
// === STRATEGY SIGNALS ===
// Define 8 Bullish Signals
signal1 = close > close[displacement]
signal2 = close > tenkanSen
signal3 = tenkanSen > kijunSen
signal4 = ta.barssince(ta.crossover(chikouSpan, tenkanSen)) < ta.barssince(ta.crossunder(chikouSpan, tenkanSen))
signal5 = ta.barssince(ta.crossover(chikouSpan, kijunSen)) < ta.barssince(ta.crossunder(chikouSpan, kijunSen))
signal6 = ta.barssince(ta.crossover(tenkanSen, kijunSen)) < ta.barssince(ta.crossunder(tenkanSen, kijunSen))
signal7 = ta.barssince(ta.crossover(chikouSpan, kumoUpper)) < ta.barssince(ta.crossunder(chikouSpan, kumoLower))
signal8 = ta.barssince(ta.crossover(senkouA, senkouB)) < ta.barssince(ta.crossunder(senkouA, senkouB))
// Count Bullish Signals
bullish_count = 0
bullish_count += (signal1 ? 1 : 0)
bullish_count += (signal2 ? 1 : 0)
bullish_count += (signal3 ? 1 : 0)
bullish_count += (signal4 ? 1 : 0)
bullish_count += (signal5 ? 1 : 0)
bullish_count += (signal6 ? 1 : 0)
bullish_count += (signal7 ? 1 : 0)
bullish_count += (signal8 ? 1 : 0)
// === TRADING LOGIC ===
if bullish_count >= bullishThreshold
strategy.entry("Long", strategy.long)
strategy.close("Short")
else if bullish_count <= bearishThreshold
strategy.entry("Short", strategy.short)
strategy.close("Long")
// === VISUALIZATIONS ===
// Plot Ichimoku Lines
plot(showIchimoku ? tenkanSen : na, "Tenkan-sen", color=color.red, linewidth=2)
plot(showIchimoku ? kijunSen : na, "Kijun-sen", color=color.blue, linewidth=2)
plot(showIchimoku ? chikouSpan : na, "Chikou Span", color=color.green, offset=-displacement)
// For Senkou spans, capture the plot handles
senkouA_plot = plot(showIchimoku ? senkouA : na, "Senkou Span A", color=color.orange, offset=displacement)
senkouB_plot = plot(showIchimoku ? senkouB : na, "Senkou Span B", color=color.purple, offset=displacement)
// Use the plot handles in fill
fill(senkouA_plot, senkouB_plot, color=senkouA > senkouB ? color.new(color.green, 90) : color.new(color.red, 90), title="Kumo Cloud")
// Plot Signal Indicators using conditions inside the function call
plotshape(showSignals and bullish_count >= bullishThreshold, title="Long Entry", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.small)
plotshape(showSignals and bullish_count <= bearishThreshold, title="Short Entry", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.small)
label.new(bar_index, high, text=str.tostring(bullish_count) + "/8", color=color.black, textcolor=color.white, style=label.style_label_down)
// Background Highlighting
bgcolor(bullish_count >= bullishThreshold ? color.new(color.green, 90) : bullish_count <= bearishThreshold ? color.new(color.red, 90) : na)