
Sistem perdagangan indikator bergoyang berganda adalah strategi perdagangan kuantitatif berdasarkan analisis teknikal, yang terasnya bergantung pada pengenalan titik tinggi dan rendah yang bergoyang untuk menentukan perubahan trend pasaran. Strategi ini membina tahap tracking stop loss yang dinamik dengan mengesan harga tertinggi dan terendah dalam tempoh N kitaran terakhir, sebagai sempadan keputusan perdagangan berganda. Sistem ini secara automatik melaksanakan isyarat beli apabila harga menembusi tahap TSL, dan secara automatik melaksanakan isyarat jual apabila harga jatuh dari tahap TSL, sambil menguruskan kedudukan secara automatik, memastikan setiap memegang kedudukan dalam satu arah.
Logik utama strategi ini adalah untuk menjejaki tahap stop loss (TSL) dan ia dilaksanakan seperti berikut:
Tahap harga utama dalam kitaran pengiraan:
ta.highest(high, no)Hitung harga tertinggi dalam tempoh no yang laluta.lowest(low, no)Hitung harga terendah dalam tempoh no yang lalu ((sup)Menentukan kedudukan harga berbanding dengan paras tertinggi dan terendah pada tempoh sebelumnya:
Membina tahap tracking stop loss (TSL):
Menjana isyarat dagangan:
Untuk melakukan transaksi:
Sistem ini juga mengandungi komponen visual, seperti tanda titik jual beli, garis K dan latar belakang yang berubah warna, dan garis mendatar yang menunjukkan harga pembukaan saham secara langsung, meningkatkan pengalaman visual proses perdagangan.
Keupayaan menangkap trend yang kuat: Dengan mengira harga tertinggi dan terendah secara dinamik, dapat menangkap perubahan trend pasaran dengan berkesan, menyesuaikan diri dengan turun naik dalam kitaran pasaran yang berbeza.
Tingkat automasi yang tinggi: Sistem secara automatik melakukan pengiktirafan isyarat beli dan menjual dan pelaksanaan perdagangan, mengurangkan campur tangan manusia dan kesan emosi.
Mekanisme perdagangan dua hala: menyokong perdagangan multihead dan kosong pada masa yang sama, membolehkan peluang keuntungan diperoleh dalam pasaran naik dan turun.
Pengurusan risiko terbina dalam: reka bentuk untuk mengesan tahap hentian (TSL) pada dasarnya merangkumi fungsi hentian, mengehadkan kerugian maksimum untuk satu perdagangan.
Maklum balas dagangan visual: Melalui antara muka grafik, isyarat dagangan dan harga pembukaan kedudukan ditunjukkan dengan jelas, yang membolehkan peniaga memantau dan menilai prestasi strategi dalam masa nyata.
Fleksibiliti parameter: Dengan menyesuaikan parameter kitaran berayun ((no), dapat disesuaikan dengan ciri-ciri pasaran dalam tempoh masa yang berbeza, dari garis pendek hingga garis panjang menengah dapat digunakan.
Petunjuk isyarat yang jelas: Sistem menyediakan isyarat isyarat bertulis dan visual yang berganda, mengurangkan kemungkinan kesalahan operasi.
Kegagalan dalam pasaran goyah: Dalam pasaran goyah mendatar, strategi ini mungkin menghasilkan isyarat palsu yang kerap, yang menyebabkan kerugian berturut-turut.
Titik tergelincir dan risiko kelewatan pelaksanaan: Dalam dagangan dalam talian, mungkin terdapat perbezaan masa antara penjanaan isyarat dan pelaksanaan pesanan, yang menyebabkan harga transaksi sebenar menyimpang dari harga yang ideal.
Keterbatasan pengurusan kedudukan tetap: Strategi semasa menggunakan unit tetap ((qty = 1) untuk berdagang, kekurangan mekanisme untuk menyesuaikan saiz kedudukan mengikut turun naik pasaran atau saiz akaun.
Sensitiviti parameter: prestasi strategi sangat bergantung pada tetapan parameter kitaran berayun ((no), dan nilai parameter yang berbeza mungkin diperlukan dalam keadaan pasaran yang berbeza.
Kelemahan dalam menghadapi keadaan kecemasan: Dalam keadaan perubahan harga yang cepat yang disebabkan oleh berita besar atau peristiwa Black Swan, tahap stop loss mungkin tidak dapat disesuaikan dengan cepat, menyebabkan kerugian yang lebih besar.
Kaedah untuk mengurangkan risiko ini termasuk: pengesahan isyarat dalam kombinasi dengan petunjuk lain, pelaksanaan pengurusan kedudukan dinamik, penetapan had kerugian maksimum, parameter penyesuaian mengikut kadar turun naik, dan parameter strategi pengesanan dan pengoptimuman secara berkala.
volatility = ta.atr(14) / close * 100 // 计算波动率百分比
position_size = strategy.equity * 0.01 / volatility // 根据波动率调整仓位
rsi = ta.rsi(close, 14)
valid_buy = Buy and rsi < 70 // 避免在超买区域买入
valid_sell = Sell and rsi > 30 // 避免在超卖区域卖出
Parameter penyesuaian diri: parameter kitaran ayunan yang disesuaikan berdasarkan dinamik turun naik pasaran ((no), nilai yang lebih kecil digunakan dalam persekitaran turun naik yang rendah, nilai yang lebih besar digunakan dalam persekitaran turun naik yang tinggi.
Menambah sasaran keuntungan: menetapkan sasaran keuntungan berdasarkan ATR atau tahap sokongan / rintangan, mengunci sebahagian keuntungan apabila pasaran bergerak cukup jauh ke arah yang menguntungkan.
Penapis masa: Tambah sekatan pada tetingkap masa perdagangan untuk mengelakkan masa pasaran yang kurang cair atau tidak stabil.
Mekanisme kawalan penarikan balik: Mekanisme penangguhan perdagangan berdasarkan peratusan penarikan balik hak dan faedah akaun, yang menghentikan perdagangan apabila kerugian berturut-turut mencapai nilai terhad yang ditetapkan.
Pengesahan pelbagai kitaran: menggabungkan arah trend dengan kitaran masa yang lebih tinggi, hanya membuka posisi di arah yang selaras dengan trend kitaran yang lebih tinggi, meningkatkan peluang menang.
Arahan pengoptimuman ini dapat meningkatkan strategi dengan ketara, terutama dalam perubahan keadaan pasaran yang berbeza.
Sistem perdagangan indikator berayun ganda adalah strategi perdagangan automatik berasaskan analisis teknikal yang menangkap perubahan trend pasaran dan melakukan perdagangan dua hala berayun ganda dengan mengesan tahap stop loss secara dinamik (TSL). Strategi ini berfungsi dengan baik di pasaran dengan trend yang jelas, dapat mengesan pergerakan harga dengan berkesan dan menguruskan kedudukan secara automatik.
Kelebihan utama strategi ini adalah mekanisme penjanaan isyarat yang mudah dan berkesan dan fungsi pengurusan risiko terbina dalam, yang sangat sesuai untuk perdagangan trend jangka pendek dan sederhana. Walau bagaimanapun, strategi ini mungkin menghadapi cabaran dengan isyarat palsu yang kerap di pasaran yang bergolak dan memerlukan pengoptimuman lebih lanjut untuk meningkatkan kesesuaian dalam pelbagai persekitaran pasaran.
Strategi ini dapat meningkatkan pengembalian dan kestabilan penyesuaian risiko mereka dengan melaksanakan langkah-langkah pengoptimuman seperti pengurusan kedudukan dinamik, pengesahan isyarat pelbagai indikator, dan penyesuaian parameter yang sesuai. Bagi peniaga kuantitatif, sistem automatik berdasarkan peraturan yang jelas ini menyediakan kerangka yang boleh dipercayai untuk mengurangkan gangguan emosi dan mengekalkan disiplin perdagangan.
Pada akhirnya, kejayaan strategi ini bergantung kepada penyesuaian yang baik oleh peniaga dalam parameter dan pemahaman tentang ciri-ciri pasaran. Adalah disyorkan untuk melakukan retrospeksi sejarah yang mencukupi dan mengesahkan perdagangan simulasi sebelum digunakan di pasaran.
/*backtest
start: 2024-05-06 00:00:00
end: 2025-03-04 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/
//@version=5
strategy("Accurate Swing Trading System with Auto Entry (Long & Short)", overlay=true)
// Parameters
no = input.int(3, title="Swing")
Barcolor = input.bool(true, title="Barcolor")
Bgcolor = input.bool(false, title="Bgcolor")
// Calculate TSL (Trailing Stop Level)
res = ta.highest(high, no)
sup = ta.lowest(low, no)
avd = close > res[1] ? 1 : close < sup[1] ? -1 : 0
avn = ta.valuewhen(avd != 0, avd, 0)
tsl = avn == 1 ? sup : res
// Define Buy and Sell Conditions
Buy = ta.crossover(close, tsl)
Sell = ta.crossunder(close, tsl)
plotshape(Buy, "BUY", shape.labelup, location.belowbar, color.green, text="BUY", textcolor=color.black)
plotshape(Sell, "SELL", shape.labeldown, location.abovebar, color.red, text="SELL", textcolor=color.black)
// Plot TSL
colr = close >= tsl ? color.green : close <= tsl ? color.red : na
plot(tsl, color=colr, linewidth=3, title="TSL")
barcolor(Barcolor ? colr : na)
bgcolor(Bgcolor ? colr : na)
// Alerts
alertcondition(Buy, title="Buy Signal", message="Buy")
alertcondition(Sell, title="Sell Signal", message="Sell")
// Automatic Entry & Exit with 1 Unit
if (Buy)
strategy.entry("Long", strategy.long, qty=1) // Enter long with 1 unit
strategy.close("Short") // Close any open short positions
alert("Buy Signal - Entry Long", alert.freq_once_per_bar_close)
alert("Buy Entry Sound", alert.freq_once_per_bar_close)
if (Sell)
strategy.entry("Short", strategy.short, qty=1) // Enter short with 1 unit
strategy.close("Long") // Close any open long positions
alert("Sell Signal - Entry Short", alert.freq_once_per_bar_close)
alert("Sell Entry Sound", alert.freq_once_per_bar_close)
// Plotting lines for open trades
var float long_price = na
var float short_price = na
// For Long Position: Plot the entry line at the price of the open position
if (strategy.opentrades > 0)
if (strategy.opentrades.entry_id(0) == "Long" and not na(strategy.opentrades.entry_price(0)))
long_price := strategy.opentrades.entry_price(0)
if (strategy.opentrades.entry_id(0) == "Short" and not na(strategy.opentrades.entry_price(0)))
short_price := strategy.opentrades.entry_price(0)
plot(long_price, color=color.green, style=plot.style_line, linewidth=2, title="Long Entry Line", offset=-1)
plot(short_price, color=color.red, style=plot.style_line, linewidth=2, title="Short Entry Line", offset=-1)