Sistem perdagangan terobosan penyesuaian volatilitas siklus ganda dan manajemen posisi dinamis serta strategi posisi piramida

ATR Donchian Channels BREAKOUT TREND FOLLOWING POSITION SIZING PYRAMIDING Turtle Trading
Tanggal Pembuatan: 2025-06-16 15:14:24 Akhirnya memodifikasi: 2025-08-12 17:46:27
menyalin: 0 Jumlah klik: 333
2
fokus pada
319
Pengikut

Sistem perdagangan terobosan penyesuaian volatilitas siklus ganda dan manajemen posisi dinamis serta strategi posisi piramida Sistem perdagangan terobosan penyesuaian volatilitas siklus ganda dan manajemen posisi dinamis serta strategi posisi piramida

Ringkasan

Sistem perdagangan terobosan dengan penyesuaian fluktuasi dua siklus adalah strategi kuantitatif yang dirancang berdasarkan aturan perdagangan tsunami yang terkenal, yang menggunakan dua periode waktu yang berbeda (20 dan 55 hari) untuk menangkap terobosan pasar, sekaligus menggabungkan indikator fluktuasi untuk manajemen posisi yang dinamis. Sistem ini menggabungkan beberapa teknik perdagangan kuantitatif seperti pelacakan tren, perdagangan terobosan, posisi penyesuaian fluktuasi dan penambahan posisi piramida, untuk menangkap tren pasar jangka menengah dan panjang secara efektif.

Prinsip Strategi

Analisis kode menunjukkan bahwa prinsip-prinsip inti dari strategi ini meliputi:

  1. Terobosan dua siklusStrategi menggunakan dua set sistem masuk - Sistem 1 menggunakan 20 hari tinggi / rendah sebagai sinyal masuk utama; Sistem 2 diaktifkan setelah kerugian perdagangan sebelumnya, menggunakan 55 hari tinggi / rendah sebagai sinyal masuk. Desain ini dapat menyesuaikan sensitivitas masuk secara otomatis sesuai dengan kondisi pasar.

  2. Pengukuran volatilitas dan manajemen posisiStrategi: Menggunakan 20 hari rata-rata true amplitude (ATR) sebagai ukuran dari volatilitas pasar, dengan rumus: satuan posisi = jumlah risiko / (N * nilai titik) untuk menghitung posisi yang wajar. Di mana jumlah risiko sama dengan ekuitas akun dikalikan persentase risiko yang ditetapkan (default 1%) Dengan metode ini, eksposur risiko yang konsisten dijaga dalam lingkungan yang berbeda dari volatilitas.

  3. Mekanisme penambahan posisi piramidaStrategi ini memungkinkan penambahan satuan baru dengan ukuran yang sama ketika harga dari posisi yang sudah menguntungkan terus bergerak ke arah yang menguntungkan (jarak minimal 0,5N). Metode penambahan posisi piramida ini dapat memperluas potensi keuntungan di pasar yang sedang tren kuat.

  4. Siklus pendek berbalik untuk menembus posisi terendahStrategi: Gunakan 10 hari rendah / tinggi sebagai sinyal keluar dari posisi terbuka / terbuka. Saat harga jatuh di bawah titik terendah 10 hari, matikan semua posisi terbuka; Saat harga melampaui titik tertinggi 10 hari, matikan semua posisi terbuka.

  5. Mekanisme pertukaran sistemStrategi ini akan secara otomatis menyesuaikan sistem masuk berdasarkan hasil perdagangan. Jika perdagangan dalam satu arah mengalami kerugian, perdagangan berikutnya dalam arah yang sama akan menggunakan sistem 2 (siklus 55 hari); Setelah perdagangan yang menguntungkan, kembali menggunakan sistem 1 (siklus 20 hari).

Dengan menggunakan kombinasi dari prinsip-prinsip ini, strategi dapat memasuki pasar yang sedang tren lebih awal, mengambil posisi lebih baik, dan keluar pada awal pembalikan tren, secara efektif menangkap tren pasar jangka menengah dan panjang.

Keunggulan Strategis

Dari analisa kode, kita dapat menyimpulkan bahwa strategi ini memiliki beberapa keuntungan utama:

  1. Keputusan perdagangan otomatisStrategi: Melakukan perdagangan sepenuhnya berdasarkan aturan kuantitatif, menghilangkan gangguan emosional buatan, menjamin pelaksanaan disiplin perdagangan yang ketat. Kode ini secara jelas mendefinisikan persyaratan masuk, kenaikan dan keluar, tanpa penilaian subjektif.

  2. Manajemen risiko dinamisDengan membatasi risiko per transaksi menjadi persentase tetap dari ekuitas akun (default 1%) dan dengan ATR menyesuaikan ukuran posisi, strategi ini dapat mempertahankan eksposur risiko yang konsisten di berbagai lingkungan volatilitas. Metode ini secara otomatis mengurangi posisi di pasar yang berfluktuasi tinggi dan meningkatkan posisi dengan tepat di pasar yang berfluktuasi rendah.

  3. Adaptasi terhadap kondisi pasar: Desain siklus ganda memungkinkan strategi untuk menyesuaikan diri secara otomatis dengan kondisi pasar. Menggunakan siklus yang lebih pendek dalam pasar tren yang menguntungkan secara berturut-turut (20 hari) untuk mempertahankan sensitivitas; Beralih ke siklus yang lebih lama setelah mengalami kerugian (55 hari) untuk mengurangi sinyal palsu.

  4. Mekanisme pertumbuhan labaStrategi: Menghitung ukuran posisi berdasarkan ekuitas akun saat ini, meningkatkan posisi secara otomatis seiring pertumbuhan akun, untuk mencapai efek keuntungan; dan memperluas potensi keuntungan dalam tren yang kuat melalui mekanisme penambahan posisi piramida.

  5. Adaptasi multi-pasarDesain strategi ini dapat diterapkan pada berbagai jenis aset, terutama di pasar dengan karakteristik tren yang jelas seperti emas. Dengan menyesuaikan parameter, dapat dioptimalkan untuk karakteristik pasar yang berbeda.

  6. Pengendalian Risiko yang Jelas: Menggunakan 10-hari reverse breakout sebagai sinyal keluar, memberikan titik berhenti yang jelas untuk setiap perdagangan, secara efektif mengendalikan risiko perdagangan tunggal; sekaligus mengendalikan risiko sistematis dengan mengatur persentase risiko maksimum.

Risiko Strategis

Meskipun ada banyak keuntungan dari strategi ini, ada beberapa risiko potensial:

  1. Risiko Penembusan PalsuDalam pasar yang bergolak, harga mungkin sering menembus titik tinggi / rendah tetapi kemudian kembali dengan cepat, menyebabkan kerugian berturut-turut. Kurangnya mekanisme penyaringan false breakout dalam kode dapat menghasilkan lebih banyak sinyal tidak efektif di pasar non-trend.

  2. Meningkatnya risiko perbankan: Mekanisme kenaikan posisi piramida sangat efektif selama tren berlanjut, tetapi jika tren tiba-tiba berbalik, posisi multi-unit dapat menyebabkan kerugian yang lebih besar. Meskipun strategi tersebut menetapkan kondisi untuk keluar, namun dalam perputaran yang drastis mungkin masih mengalami kerugian yang lebih besar.

  3. Parameter SensitivitasKinerja strategi sangat bergantung pada pengaturan parameter (siklus masuk, siklus keluar, siklus ATR, interval penambahan posisi, dll.). Berbagai lingkungan pasar mungkin memerlukan kombinasi parameter yang berbeda, dan parameter tetap dapat menyebabkan kinerja yang tidak stabil.

  4. Risiko likuiditasDalam pasar yang kurang likuid, penambahan saham yang besar dapat menyebabkan peningkatan slippage atau kesulitan untuk bertransaksi dengan harga yang diharapkan, yang mempengaruhi efek pelaksanaan aktual. Tidak ada mekanisme penanganan masalah likuiditas dalam kode.

  5. Paparan Risiko SistemikSebagai strategi trend-following murni, mungkin memiliki keterkaitan yang tinggi dengan strategi tren lainnya selama penurunan pasar umum atau fluktuasi tajam, sehingga sulit untuk memberikan perlindungan diversifikasi.

  6. Masalah akurasi perhitungan: Menggunakan fungsi math.floor dalam kode untuk menghitung posisi ke bawah, dalam akun kecil dapat menyebabkan posisi terlalu kecil atau tidak dapat diperdagangkan. Selain itu, pengaturan nilai titik yang tidak tepat juga dapat menyebabkan kesalahan dalam menghitung posisi.

Untuk mengatasi risiko ini, pertimbangan untuk menambahkan filter tren, membatasi posisi maksimum, mengoptimalkan aturan kenaikan posisi, dan meningkatkan mekanisme penyesuaian tingkat fluktuasi.

Arah optimasi strategi

Berdasarkan analisis kode, strategi ini dapat dioptimalkan dengan cara berikut:

  1. Tambahkan filter trenStrategi saat ini hanya didasarkan pada perdagangan harga yang pecah, rentan terhadap gangguan palsu. Indikator tren dapat ditambahkan (seperti moving average, ADX, dll) sebagai kondisi penyaringan, melakukan perdagangan hanya jika arah tren konsisten, mengurangi kerugian perdagangan di pasar yang bergoyang.

  2. Optimalkan aturan kenaikanMekanisme penambahan posisi yang ada relatif sederhana, dapat dipertimbangkan untuk memperkenalkan rasio penambahan posisi bertahap ((unit penambahan posisi berikutnya berkurang secara bertahap) atau menetapkan batas jumlah maksimum penambahan posisi, menyeimbangkan kebutuhan untuk memperluas keuntungan dan mengendalikan risiko.

  3. Pengaturan parameter dinamisAnda dapat menyesuaikan siklus masuk / keluar dan interval kenaikan posisi berdasarkan volatilitas pasar atau intensitas tren. Misalnya, memperpanjang siklus masuk di pasar yang berfluktuasi tinggi dan mempersingkat siklus keluar di pasar yang berfluktuasi rendah, membuat strategi lebih adaptif.

  4. Tambahkan waktu penyaringanUntuk menghindari waktu publikasi data ekonomi besar atau waktu kurang likuiditas, dan mengurangi risiko dari fluktuasi yang tidak biasa.

  5. Konfirmasi multi-frame waktu: Menggabungkan arah tren dari periode waktu yang lebih lama sebagai kondisi penyaringan perdagangan, misalnya melakukan perdagangan hanya ketika tren sunline sesuai dengan arah tren 4 jam, meningkatkan kualitas sinyal.

  6. Pengelolaan dana yang optimal: Model pengelolaan dana yang lebih kompleks dapat diperkenalkan, seperti rumus Kelly atau metode nilai f yang optimal, untuk lebih mengoptimalkan kurva pertumbuhan dana berdasarkan rasio risiko yang disesuaikan dengan dinamika rasio kemenangan dan keuntungan yang diharapkan.

  7. Menambahkan mekanisme penghentianStrategi saat ini hanya memiliki mekanisme keluar yang didasarkan pada reverse breakout. Anda dapat mempertimbangkan untuk menambahkan beberapa mekanisme penguncian keuntungan, seperti melunasi sebagian posisi saat mencapai tujuan keuntungan tertentu, sekaligus menangkap tren dan melindungi keuntungan.

Keunggulan ini dapat secara efektif meningkatkan stabilitas dan profitabilitas strategi, terutama adaptasi dalam berbagai kondisi pasar.

Meringkaskan

Sistem perdagangan terobosan dengan penyesuaian fluktuasi dua siklus adalah strategi perdagangan kuantitatif lengkap yang didasarkan pada aturan perdagangan pirus, menggabungkan beberapa teknik perdagangan kuantitatif seperti entri terobosan, manajemen posisi fluktuasi, penambahan piramida, dan siklus adaptasi. Strategi ini memasuki tren dengan menangkap terobosan harga, memanfaatkan peluang risiko kontrol fluktuasi, dan memaksimalkan keuntungan tren melalui penambahan piramida.

Nilai inti dari strategi ini adalah bahwa desain sistem yang komprehensif, termasuk masuk, keluar, manajemen posisi dan pengendalian risiko, membentuk sistem perdagangan yang mandiri. Khususnya, mekanisme posisi penyesuaian volatilitas dan desain adaptasi siklus ganda, memungkinkan strategi untuk mempertahankan kinerja yang relatif stabil dalam berbagai lingkungan pasar.

Namun, sebagai strategi trend-following yang mungkin tidak bekerja dengan baik di pasar yang bergoyang, perlu disempurnakan dengan cara seperti menambahkan filter tren, mengoptimalkan aturan pegangan dan penyesuaian parameter dinamis. Selain itu, strategi ini cocok untuk digunakan sebagai bagian dari portofolio investasi, dikombinasikan dengan jenis strategi lain (seperti strategi regresi rata-rata) untuk mencapai kurva keuntungan yang lebih halus.

Secara keseluruhan, ini adalah strategi perdagangan kuantitatif yang dirancang dengan rasional, logika yang jelas, dengan dasar teoritis yang baik dan nilai praktis. Dengan optimasi parameter yang tepat dan mekanisme pelengkap, strategi ini berpotensi menghasilkan keuntungan yang stabil di berbagai lingkungan pasar.

Kode Sumber Strategi
/*backtest
start: 2024-06-16 00:00:00
end: 2025-06-15 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/

//@version=5
//策略声明和基础设置
strategy("Turtle Trading System (Full Version)", overlay=true, pyramiding=5)

//风险控制参数
riskPercent = input.float(0.5, title="每笔交易风险占资金百分比", minval=0.1, maxval=5.0, step=0.1)
pointValue = input.float(1.0, title="点值($/点)")

//入场周期参数
entryPeriod1 = input.int(20, title="系统1入场周期")
entryPeriod2 = input.int(55, title="系统2入场周期(亏损后)")

//出场和波动性参数
exitPeriod = input.int(10, title="出场周期")
nPeriod = input.int(20, title="N周期(ATR)")
pyramidSpacing = input.float(0.5, title="每N x ...添加单位", step=0.1)

//波动性指标计算
N = ta.atr(nPeriod)//计算ATR作为市场波动性的量化标准

//系统1入场通道计算(20周期)
entryHigh1 = ta.highest(high, entryPeriod1)//计算20周期内最高价作为做多突破位
entryLow1 = ta.lowest(low, entryPeriod1)//计算20周期内最低价作为做空突破位

//系统2入场通道计算(55周期)
entryHigh2 = ta.highest(high, entryPeriod2)//计算55周期内最高价作为保守做多突破位
entryLow2 = ta.lowest(low, entryPeriod2)//计算55周期内最低价作为保守做空突破位

//出场通道计算(10周期)
exitLong = ta.lowest(low, exitPeriod)//计算10周期内最低价作为多头出场位
exitShort = ta.highest(high, exitPeriod)//计算10周期内最高价作为空头出场位

//交易状态跟踪变量
var bool lastLongLoss = false//记录上次多头交易是否亏损
var bool lastShortLoss = false//记录上次空头交易是否亏损
var float lastLongEntryPrice = na//记录上次多头入场价格
var float lastShortEntryPrice = na//记录上次空头入场价格

//账户权益和风险计算
equity = strategy.equity//获取当前账户总权益
riskDollars = equity * (riskPercent / 100)//计算每笔交易允许的风险金额
unitSize = riskDollars / (N * pointValue)//基于ATR计算标准头寸规模
positionSize = math.round(unitSize, 3)//设定最终头寸大小

//入场信号生成逻辑
useSystem1Long = close > entryHigh1[1]//系统1多头入场条件
useSystem2Long = lastLongLoss and close > entryHigh2[1]//系统2多头入场条件(仅在上次亏损后)
useSystem1Short = close < entryLow1[1]//系统1空头入场条件
useSystem2Short = lastShortLoss and close < entryLow2[1]//系统2空头入场条件(仅在上次亏损后)

//金字塔加仓条件
canAddLong = strategy.opentrades > 0 and strategy.position_size > 0 and close >= lastLongEntryPrice + (pyramidSpacing * N)
//多头加仓条件
canAddShort = strategy.opentrades > 0 and strategy.position_size < 0 and close <= lastShortEntryPrice - (pyramidSpacing * N)
//空头加仓条件

//出场信号生成
longExit = close < exitLong//多头出场条件
shortExit = close > exitShort//空头出场条件

//多头入场执行
if (useSystem1Long or useSystem2Long)
    strategy.entry("Long", strategy.long, qty=positionSize)//执行多头开仓
    lastLongEntryPrice := close//记录多头入场价格作为加仓基准
    lastLongLoss := false//重置多头亏损状态

//空头入场执行
if (useSystem1Short or useSystem2Short)
    strategy.entry("Short", strategy.short, qty=positionSize)//执行空头开仓
    lastShortEntryPrice := close//记录空头入场价格作为加仓基准
    lastShortLoss := false//重置空头亏损状态

//多头加仓执行
if (canAddLong)
    strategy.entry("Long Add", strategy.long, qty=positionSize)//执行多头加仓
    lastLongEntryPrice := close//更新多头入场价格基准

//空头加仓执行
if (canAddShort)
    strategy.entry("Short Add", strategy.short, qty=positionSize)//执行空头加仓
    lastShortEntryPrice := close//更新空头入场价格基准

//多头出场执行
if (longExit)
    strategy.close("Long")//平掉初始多头头寸
    strategy.close("Long Add")//平掉所有多头加仓头寸
    lastLongLoss := close < lastLongEntryPrice//根据出场价格更新亏损状态

//空头出场执行
if (shortExit)
    strategy.close("Short")//平掉初始空头头寸
    strategy.close("Short Add")//平掉所有空头加仓头寸
    lastShortLoss := close > lastShortEntryPrice//根据出场价格更新亏损状态

//系统1入场信号可视化
plot(entryHigh1, title="20周期高点", color=color.green)//绘制系统1多头入场线
plot(entryLow1, title="20周期低点", color=color.red)//绘制系统1空头入场线

//系统2入场信号可视化
plot(entryHigh2, title="55周期高点", color=color.lime, linewidth=1)//绘制系统2多头入场线
plot(entryLow2, title="55周期低点", color=color.maroon, linewidth=1)//绘制系统2空头入场线

//出场信号可视化
plot(exitLong, title="10周期低点(多头出场)", color=color.orange)//绘制多头出场信号线
plot(exitShort, title="10周期高点(空头出场)", color=color.blue)//绘制空头出场信号线