
Sistem perdagangan penembusan resesi adalah strategi perdagangan garis panjang yang direka khas untuk grafik garis matahari, yang dengan cerdik menggabungkan pengenalan corak tingkah laku harga dan mekanisme penapisan kadar turun naik. Gagasan utamanya adalah untuk mencari peluang pembalikan yang berpotensi selepas penurunan pasaran berturut-turut, sambil memastikan pasaran mempunyai cukup tenaga untuk menyokong perdagangan melalui keadaan kadar turun naik.
Sistem penembusan dagangan berlawanan arah berdasarkan prinsip-prinsip utama berikut:
Syarat kemasukan:
Syarat keluar:
Tetapan parameter:
Kod ini mewujudkan logik dagangan yang tepat, termasuk mencatat indeks tiang masuk untuk mengira tempoh dagangan, dan memindahkan pembolehubah yang berkaitan selepas perdagangan berakhir. Selain itu, strategi ini juga menyediakan elemen visual, seperti penanda grafik untuk isyarat masuk dan keluar, dan kurva ATR semasa dan purata 30 hari untuk analisis intuitif oleh peniaga.
Setelah menganalisis kod secara mendalam, strategi ini menunjukkan kelebihan yang ketara:
Logik pemikiran terbalikStrategi ini menggunakan pemikiran terbalik, memasuki pasaran selepas turun secara berturut-turut, sesuai dengan kebijaksanaan perdagangan klasik “beli dalam kebimbangan”, yang membantu menangkap peluang untuk melangkau.
Penapis kadar turun naikDengan memerlukan ATR semasa lebih besar daripada purata bergerak 30 hari, strategi memastikan perdagangan hanya berlaku apabila pasaran cukup turun naik, dan mengelakkan masuk ke dalam pasaran pemulihan yang kurang turun naik.
Mekanisme yang jelasStrategi ini menawarkan dua jenis mekanisme keluar iaitu keluar berdasarkan isyarat reversal dan keluar berdasarkan masa, yang membolehkan peniaga untuk menguruskan risiko dengan fleksibel dan mengelakkan perdagangan lama.
Kemudahan penyesuaian parameterParameter utama seperti tempoh maksimum dagangan, kitaran ATR dan syarat keluar boleh disesuaikan mengikut pasaran dan pilihan peniaga yang berbeza.
Pengurusan risiko terbina dalam: Tetapan tempoh maksimum perdagangan memaksakan pengehadkan jangka masa pendedahan risiko bagi mana-mana perdagangan tunggal, walaupun pasaran tidak memberi isyarat keluar yang jelas.
Alat pengiktirafan visualStrategi ini merangkumi penanda grafik untuk isyarat masuk/keluar dan penglihatan indikator ATR untuk memudahkan peniaga memantau pelaksanaan strategi.
Mudah dan BerkesanWalaupun konsepnya sederhana, strategi ini menggabungkan tingkah laku harga dan analisis kadar turun naik untuk meningkatkan kualiti keputusan perdagangan, mengelakkan masalah keterlambatan dan parameter yang terlalu sesuai yang mungkin disebabkan oleh indikator kompleks.
Walaupun strategi ini direka dengan baik, analisis kod menunjukkan risiko yang berpotensi:
Risiko penembusan palsuIa mungkin akan terus turun, menyebabkan titik masuk yang tidak sesuai.
Risiko kadar turun naikWalaupun ini memberi peluang untuk berdagang, ia juga meningkatkan risiko turun naik harga yang mendadak.
Ketidaktahuan untuk keluar: Keluar berdasarkan hari tetap tanpa mempertimbangkan keadaan pasaran semasa, yang boleh menyebabkan keluar terlalu awal dalam pergerakan yang menguntungkan atau keluar terlalu lewat dalam pergerakan yang tidak menguntungkan.
Kepekaan ParameterPrestasi strategi mungkin sangat sensitif terhadap pilihan parameter seperti kitaran ATR, tempoh perdagangan maksimum.
Kekurangan mekanisme kawalan kerugianStrategi semasa tidak mempunyai fungsi stop loss dalam erti kata tradisional, yang boleh menyebabkan kerugian yang berlebihan semasa turun naik pasaran yang kuat.
Bergantung kepada keadaan pasaranStrategi ini mungkin berfungsi dengan baik di bawah keadaan pasaran tertentu (seperti persekitaran turun naik yang tinggi), tetapi mungkin tidak berfungsi dengan baik di peringkat pasaran lain.
Berdasarkan analisis kod, berikut adalah arah yang berpotensi untuk strategi ini dioptimumkan:
Menambah penapis ATR adaptif: Dengan menggunakan garis purata ATR 30 hari yang tetap sebagai rujukan kadar turun naik, anda boleh mempertimbangkan untuk menggunakan kitaran penyesuaian diri, menyesuaikan kitaran rujukan ATR mengikut keadaan pasaran yang dinamik. Ini dapat menyesuaikan diri dengan lebih baik dengan keadaan pasaran yang berbeza, kerana dalam pasaran tren dan pasaran penyusunan, kitaran rujukan ATR yang ideal mungkin berbeza.
Tempoh maksimum transaksi untuk mencapai dinamik: boleh membiarkan tempoh dagangan maksimum disesuaikan secara dinamik dengan turun naik pasaran atau kekuatan trend, membenarkan masa pegangan yang lebih lama di pasaran trend yang kuat, dan memendekkan masa pegangan di pasaran yang lemah atau menyusun.
Penambahan mekanisme penghalang kerugian: Pengenalan penyetempatan stop loss berdasarkan ATR kali ganda untuk mengehadkan kerugian maksimum dalam satu perdagangan dan meningkatkan kecekapan pengurusan wang. Sebagai contoh, penyetempatan stop loss boleh ditetapkan sebagai harga kemasukan dikurangkan 2 kali nilai ATR semasa.
Menyerap ke penapis trend: Tambah penapis trend yang lebih luas (seperti purata bergerak berdasarkan tempoh yang lebih lama), pastikan untuk berdagang hanya ke arah trend besar, dan elakkan berdagang ke arah yang berlawanan dengan trend besar.
Memperbaiki syarat kemasukanPertimbangkan untuk menggunakan model harga yang lebih kompleks atau menggabungkan penunjuk teknikal (seperti RSI, MACD) untuk mengesahkan isyarat masuk dan meningkatkan kualiti masuk.
Mempunyai kunci keuntungan separa: Setelah perdagangan mencapai tahap keuntungan tertentu, anda boleh melakukan pelepasan sebahagian daripada kedudukan anda, mengunci sebahagian daripada keuntungan anda, dan membiarkan baki kedudukan anda terus dipegang untuk menangkap potensi pergerakan yang lebih besar.
Tambah pengesahan jumlah transaksiSyarat tambahan untuk mengesahkan jumlah dagangan sebagai isyarat, seperti permintaan untuk mengurangkan jumlah dagangan pada hari-hari penurunan berturut-turut (kurang tenaga penjual), yang mungkin menandakan peluang untuk membalikkan kualiti yang lebih tinggi.
Penyesuaian bermusimAnalisis kesan bermusim pasaran yang berbeza (seperti bulan, suku) terhadap prestasi strategi, mungkin melumpuhkan atau menyesuaikan parameter strategi pada tempoh tertentu untuk menangani kesan bermusim.
Sistem dagangan penembusan rintangan adalah strategi perdagangan kuantitatif yang menggabungkan corak tingkah laku harga dan penapisan kadar turun naik untuk menangkap peluang rebound selepas oversold jangka pendek di pasaran. Strategi ini secara teorinya dapat mengimbangi peluang perdagangan dan kawalan risiko dengan meminta pasaran turun selama tiga hari berturut-turut dan turun naik lebih tinggi daripada rata-rata sebagai syarat masuk, sambil menetapkan mekanisme keluar berdasarkan isyarat atau masa yang jelas.
Kelebihan utama strategi adalah logiknya yang mudah dan intuitif, mekanisme pengurusan risiko terbina dalam dan parameter yang boleh disesuaikan, yang menjadikannya sesuai untuk pelbagai pilihan peniaga dan keadaan pasaran. Walau bagaimanapun, strategi ini juga menghadapi cabaran seperti penembusan palsu, risiko turun naik dan sensitiviti parameter, yang perlu dikendalikan dengan cara seperti menambah indikator pengesahan, melaksanakan mekanisme hentian kerugian dan mengoptimumkan parameter.
Optimasi lebih lanjut seperti penapisan ATR yang beradaptasi, jangka masa maksimum perdagangan yang dinamik, penambahan mekanisme hentian boleh meningkatkan kestabilan dan kesesuaian strategi. Yang paling penting, peniaga harus melakukan pengesanan dan pengoptimuman parameter yang mencukupi sebelum penyebaran sebenar untuk memastikan keberkesanan strategi dalam keadaan pasaran tertentu, dan menyesuaikan parameter berdasarkan toleransi risiko individu dan matlamat pelaburan.
Strategi ini menyediakan kerangka perdagangan kuantitatif yang berharga, menyediakan pedagang dengan cara yang tersusun untuk menangkap peluang untuk membalikkan pasaran dengan menggabungkan analisis teknikal dan prinsip-prinsip pengurusan risiko. Ia bukan sahaja menunjukkan bagaimana memanfaatkan tingkah laku harga dan kadar turun naik untuk merancang sistem perdagangan, tetapi juga menekankan pentingnya strategi keluar dan kawalan risiko dalam perdagangan yang berjaya.
/*backtest
start: 2024-02-25 00:00:00
end: 2024-12-14 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Binance","currency":"SOL_USDT"}]
*/
//@version=6
strategy("3 Red / 3 Green Strategy with Volatility Check", overlay=true, initial_capital=100000, currency=currency.USD)
// Input parameters
maxTradeDuration = input.int(title="Maximum Trade Duration (days)", defval=22, minval=1)
useGreenExit = input.bool(title="Use 3 Green Days Exit", defval=true, tooltip = "Exit condition: either 3 consecutive green days (if enabled) or if the trade duration reaches maxTradeDuration days.")
atrPeriod = input.int(title="ATR Period", defval=12, minval=0, step=1, tooltip="Use zero to disable ATR filter")
// Define red and green days based on open vs close prices
redDay = close < open
greenDay = close > open
// Conditions: 3 consecutive red days trigger an entry; 3 consecutive green days trigger an exit.
threeRed = redDay and redDay[1] and redDay[2]
threeGreen = greenDay and greenDay[1] and greenDay[2]
var float currentATR = 0.0
var float averageATR = 0.0
var bool atr_entry = true
// Calculate ATR and its 30-day average
if(atrPeriod>0)
currentATR := ta.atr(atrPeriod)
averageATR := ta.sma(currentATR, 30)
atr_entry := (currentATR > 0 and averageATR > 0) ? (currentATR > averageATR) : true
// Persistent variable to record the bar index when the trade is entered.
var int entryBarIndex = na
// Entry: When no position is open, 3 consecutive red days occur, and current ATR is above its 30-day average, enter a long trade.
if (strategy.position_size == 0 and threeRed and atr_entry)
strategy.entry("Long", strategy.long)
entryBarIndex := bar_index
// Compute trade duration in days using the absolute difference
tradeDuration = not na(entryBarIndex) ? math.abs(bar_index - entryBarIndex) : 0
// Exit condition: either 3 consecutive green days (if enabled) or if the trade duration reaches maxTradeDuration days.
exitCondition = (useGreenExit and threeGreen) or (tradeDuration >= maxTradeDuration)
if (strategy.position_size > 0 and exitCondition)
strategy.close("Long")
// Reset the entry bar index when a trade just closed.
if (strategy.position_size[1] > 0 and strategy.position_size == 0)
entryBarIndex := na
// Optional: Plot signals and ATR values for visual confirmation.
plotshape(threeRed, title="Entry Signal", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.tiny)
plotshape(threeGreen, title="Green Exit Signal", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.tiny)
plot(currentATR, title="Current ATR", color=color.blue)
plot(averageATR, title="30-Day Average ATR", color=color.orange)