Strategi Pelacakan Momentum Kompresi Volatilitas: Implementasi Kuantitatif Indikator TTM Squeeze

动量指标 波动率 布林带 肯特纳通道 线性回归 移动平均线 量化交易 追踪止损 MA BB KC TTM SMA ATR
Tanggal Pembuatan: 2025-06-19 13:42:37 Akhirnya memodifikasi: 2025-06-19 13:42:37
menyalin: 5 Jumlah klik: 368
2
fokus pada
319
Pengikut

Strategi Pelacakan Momentum Kompresi Volatilitas: Implementasi Kuantitatif Indikator TTM Squeeze Strategi Pelacakan Momentum Kompresi Volatilitas: Implementasi Kuantitatif Indikator TTM Squeeze

Ringkasan

Strategi ini secara cerdik menggabungkan kompresi fluktuasi (yang terletak di dalam jalur Brin) dengan konfirmasi dinamika untuk membangun sistem perdagangan yang hanya melakukan lebih banyak. Ide intinya adalah untuk mengidentifikasi fase “akumulasi energi” di pasar, yaitu periode di mana fluktuasi secara signifikan berkurang, dan kemudian masuk ke dalam untuk menangkap perilaku ledakan berikutnya dengan konfirmasi dinamika.

Prinsip Strategi

Prinsip inti dari strategi ini didasarkan pada sifat periodik dari fluktuasi pasar, yaitu “pengurangan fluktuasi harus disertai dengan ekspansi fluktuasi”. Secara khusus, strategi ini bekerja secara sinergis melalui beberapa komponen kunci berikut:

  1. Perhitungan kondisi ekses

    • Perhitungan 20 siklus Brin band ((BB), parameter 2.0
    • Menghitung 20 siklus Kenner channel ((KC), parameter 1.5, menggunakan real amplitude ((ATR))
    • Kondisi ini didefinisikan sebagai “pembukaan squeeze” ketika seluruh sabuk Brin berada sepenuhnya di dalam saluran Kentner.
  2. Peta gaya pilar

    • Perhitungan SMA untuk titik tengah dan 20 siklus penutupan harga dalam kisaran harga tertinggi dan terendah terbaru
    • Mengukur seberapa jauh harga dari rata-rata campuran ini
    • Aplikasi 20 siklus regresi linier pada nilai deviasi ini menghasilkan grafik kolom
    • Sesuai dengan perubahan momentum, menggunakan logo warna yang berbeda: hijau / hijau cerah untuk tren naik, merah / merah muda untuk tren turun
  3. Instruksi visual

    • Navy Blue Dot = Squeeze on (Siap meledak)
    • Titik biru baja = squeeze baru saja dilepaskan
    • Titik biru = netral (tidak ada pemekaran)
  4. Logika Transaksi

    • Syarat masuk: Tiga kolom berturut-turut membentuk “membuka ekses” status (yaitu tiga titik biru angkatan laut berturut-turut)
    • Kondisi Keluar: Harga Menjatuhkan 21 Periode Simple Moving Average
    • Hanya melakukan lebih banyak, hanya melakukan satu transaksi sekaligus, dan tidak kosong.

Analisis kode menunjukkan bahwa strategi dijalankan secara ketat sesuai dengan logika ini, dan memberikan parameter yang dapat dikonfigurasi oleh pengguna, termasuk panjang dan kelipatan BB dan KC, opsi untuk menggunakan amplitudo nyata, dan pengaturan jangka waktu jendela perdagangan.

Keunggulan Strategis

Setelah menganalisis kode secara mendalam, strategi ini menunjukkan beberapa keuntungan yang signifikan:

  1. Menangkap Permulaan Tren BesarStrategi ini berfokus pada menangkap titik-titik kemungkinan yang tinggi ini untuk membantu membangun posisi di awal tren dan memaksimalkan ruang untuk keuntungan.

  2. Menyaring sinyal berkualitas rendah: Memerlukan tiga pilar berturut-turut dalam keadaan ekses, secara efektif memfilter fenomena “ekses palsu” sementara, mengurangi sinyal palsu, meningkatkan kualitas transaksi.

  3. Keterlambatan Dinamika Kecerdasan: Menggunakan 21 periode moving average sebagai tracking stop loss, yang memungkinkan tren untuk berkembang sepenuhnya, tetapi juga bisa keluar tepat waktu ketika momentum melemah, menyeimbangkan potensi keuntungan dan kontrol risiko.

  4. Intuisi visualStrategi mempertahankan semua elemen visual dari indikator eksekusi TTM asli, termasuk grafik pilar momentum dan titik-titik eksekusi yang dikodekan dengan warna, sehingga pedagang dapat memahami secara intuitif mengapa setiap transaksi dipicu.

  5. Adaptasi luasDesain strategi dapat diterapkan pada setiap kerangka waktu dari 1 menit ke garis lingkar, cocok untuk berbagai jenis perdagangan, dan memiliki universalitas yang sangat kuat.

  6. Parameter yang dapat disesuaikan: Menyediakan pengaturan parameter yang fleksibel, yang memungkinkan pedagang untuk menyesuaikan sensitivitas Brin Belt dan Kentner Channel sesuai dengan karakteristik fluktuasi varietas tertentu.

  7. Fungsi bawaanStrategi ini memiliki dukungan built-in untuk feedback, termasuk simulasi komisi dan slippage, untuk menilai kinerja strategi dengan lebih realistis.

Risiko Strategis

Meskipun strategi ini dirancang dengan baik, ada risiko potensial berikut:

  1. Risiko Penembusan Palsu: Bahkan setelah tiga pilar penyaringan, pasar masih dapat mengalami false breakout, yang menyebabkan harga kembali ke bawah rata-rata bergerak dengan cepat setelah penembusan, memicu stop loss. Solusinya adalah dengan mempertimbangkan untuk menambahkan indikator konfirmasi tambahan, seperti konfirmasi volume perdagangan atau filter tren.

  2. Performa Bursa BergoyangDalam situasi pasar yang bergejolak di posisi lateral jangka panjang, strategi mungkin sering masuk dan keluar, menyebabkan kerugian kecil berturut-turut. Hal ini dapat diselesaikan dengan menambahkan kondisi penilaian tren, yang menghentikan perdagangan di pasar yang jelas bergejolak.

  3. Keterlambatan Stop LossPergerakan rata-rata berperiode 21 mungkin bereaksi lambat dalam pasar yang berbalik dengan cepat, menyebabkan penarikan meluas. Penyesuaian rata-rata bergerak untuk periode yang lebih pendek dapat dipertimbangkan dalam lingkungan yang berfluktuasi tinggi atau menambahkan komponen adaptasi fluktuasi.

  4. Risiko penurunan jangka panjangSebagai strategi multitasking murni, Anda akan menghadapi tantangan dalam bear market jangka panjang. Anda dapat mempertimbangkan untuk menambahkan filter tren pasar atau mengembangkan strategi shorting yang mendukung untuk menangkal risiko ini.

  5. Parameter SensitivitasPengaturan parameter untuk Brin Belt dan Kettner Channel memiliki dampak yang signifikan terhadap kinerja strategi, dan parameter yang tidak sesuai dapat menyebabkan terlalu banyak sinyal atau kehilangan peluang penting. Disarankan untuk mengoptimalkan pengaturan parameter dengan umpan balik dari berbagai kondisi pasar.

  6. Risiko likuiditasSeperti yang ditunjukkan dalam kode komentar, varietas dengan volume transaksi yang sangat rendah atau pada jangka waktu yang kurang likuiditas mungkin mengalami penarikan yang lebih besar. Strategi ini harus dihindari untuk diterapkan di pasar yang kurang likuid.

Arah optimasi strategi

Berdasarkan analisis kode, berikut adalah arah yang dapat dioptimalkan dari strategi ini:

  1. Penambahan dapat dikonfirmasiStrategi saat ini hanya membuat keputusan berdasarkan harga dan volatilitas, tanpa mempertimbangkan faktor volume transaksi. Disarankan untuk meningkatkan kondisi konfirmasi volume transaksi, memastikan bahwa terobosan terjadi dengan dukungan volume transaksi yang lebih besar, meningkatkan efektivitas terobosan.

  2. Mekanisme parameter adaptasiParameter saat ini adalah nilai tetap, dapat dipertimbangkan untuk menerapkan sistem parameter adaptasi berdasarkan volatilitas historis, sehingga strategi dapat secara otomatis menyesuaikan kelipatan Brinbelt dan Kentner channel sesuai dengan kondisi pasar, meningkatkan adaptasi strategi dalam lingkungan yang berbeda.

  3. Analisis struktur pasar yang terintegrasiIntroduksi algoritma untuk mengidentifikasi struktur pasar, seperti level support/resistance, garis tren, atau tingkat harga penting, dapat memiliki tingkat keberhasilan yang lebih tinggi pada sinyal ekspansi di dekat titik struktural penting.

  4. Analisis multi-frame waktuImplementasi mekanisme pengesahan multi-frame waktu, yang mengharuskan sinyal masuk untuk memenuhi persyaratan untuk frame waktu yang lebih panjang dan lebih pendek, yang dapat meningkatkan kualitas sinyal dan mengurangi penembusan palsu.

  5. Optimasi manajemen risikoStrategi saat ini menggunakan rata-rata bergerak tetap sebagai stop loss, dapat mempertimbangkan stop loss dinamis berdasarkan ATR atau penyesuaian ukuran posisi berdasarkan volatilitas, meningkatkan tingkat pengembalian yang disesuaikan dengan risiko.

  6. Tambahkan logika kosongPertimbangan untuk mendesain logika shorting yang saling melengkapi, sehingga strategi dapat bekerja sama efektifnya di bear market, meningkatkan adaptasi untuk seluruh siklus pasar.

  7. Filter musiman dan waktuStrategi: Analisis kinerja pada periode waktu yang berbeda pada musim, bulan, atau hari yang berbeda, dan mungkin menemukan bahwa beberapa periode waktu lebih baik, dengan demikian menambahkan filter waktu untuk meningkatkan kinerja secara keseluruhan.

Meringkaskan

Strategi pelacakan pergerakan kompresi dinamis adalah sistem perdagangan kuantitatif yang elegan dan praktis yang berhasil mengubah indikator ekspansi TTM klasik menjadi kerangka strategi yang dapat dilacak. Keunggulan utamanya adalah menangkap tren ledakan setelah kompresi fluktuasi dan melindungi keuntungan dengan melacak stop loss dengan moving averages. Strategi ini dirancang sederhana dan efektif, sementara memberikan umpan balik visual yang kaya, yang memungkinkan pedagang untuk dengan mudah memahami proses pembentukan setiap sinyal perdagangan.

Meskipun ada beberapa risiko potensial, seperti false breakout dan kurangnya kinerja pasar yang bergoyang, ini dapat diatasi secara efektif dengan arah optimasi yang disarankan. Khususnya, penambahan langkah-langkah optimasi seperti konfirmasi volume perdagangan, mekanisme parameter adaptif dan analisis multi-frame timeframe, diharapkan dapat meningkatkan kehandalan dan fleksibilitas strategi secara signifikan.

Strategi ini memberikan titik awal yang solid bagi para pedagang yang mencari untuk menangkap terobosan dari fluktuasi pasar, baik yang dapat diterapkan secara langsung maupun sebagai komponen dasar dari sistem yang lebih kompleks. Yang terpenting, filosofi desain strategi ini sesuai dengan hukum dasar pasar, yaitu pengurangan fluktuasi yang pada akhirnya akan menyebabkan ekspansi fluktuasi, dan mengidentifikasi dan memanfaatkan hukum ini adalah salah satu kunci untuk perdagangan yang sukses.

Kode Sumber Strategi
/*backtest
start: 2024-06-19 00:00:00
end: 2025-06-17 08:00:00
period: 3d
basePeriod: 3d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("NA GPT - TTM Squeeze Strategy", overlay=false, commission_type=strategy.commission.percent, commission_value=0.01, slippage=3)

// === Inputs ===
length       = input.int(20,  title="BB & KC Length")
multBB       = input.float(2, title="BB MultFactor")
lengthKC     = input.int(20,  title="KC Length")
multKC       = input.float(1.5, title="KC MultFactor")
useTrueRange = input.bool(true, title="Use TrueRange (KC)")

// === Core data ===
source = close

// --- Bollinger Bands ---
basis   = ta.sma(source, length)
dev     = multBB * ta.stdev(source, length)
upperBB = basis + dev
lowerBB = basis - dev

// --- Keltner Channels ---
ma          = ta.sma(source, lengthKC)
kcRange     = useTrueRange ? ta.tr : (high - low)
kcRangeAvg  = ta.sma(kcRange, lengthKC)
upperKC     = ma + kcRangeAvg * multKC
lowerKC     = ma - kcRangeAvg * multKC

// --- Squeeze states ---
sqzOn  = (lowerBB > lowerKC) and (upperBB < upperKC)
sqzOff = (lowerBB < lowerKC) and (upperBB > upperKC)
noSqz  = not sqzOn and not sqzOff

// --- Momentum histogram (same as indicator) ---
midpoint = (ta.highest(high, lengthKC) + ta.lowest(low, lengthKC)) / 2
average  = (midpoint + ta.sma(close, lengthKC)) / 2
val      = ta.linreg(source - average, lengthKC, 0)

// Histogram colours
bcolor = val > 0 ?
         (val > nz(val[1]) ? color.lime : color.green) :
         (val < nz(val[1]) ? color.red  : color.maroon)

// Zero-line colour
scolor = noSqz ? color.new(color.blue, 0) :
         sqzOn ? color.new(#031753, 0)   :
                  color.new(#78797c, 0)

// === Plotting (visuals preserved) ===
plot(val, title="Momentum", style=plot.style_histogram, linewidth=4, color=bcolor)
plot(0,   title="Zero Line", style=plot.style_line,      linewidth=2, color=scolor)

// --- Blue-dot theme ---
dotColor = sqzOn  ? color.new(#000080, 0) :   // Navy Blue
           sqzOff ? color.new(#7f858a, 0) :   // Steel Blue
                     color.new(#87CEEB, 0)    // Sky Blue
plotshape(true, title="Squeeze Dot", location=location.bottom, style=shape.circle, color=dotColor, size=size.tiny)

// === Trading logic ===

// 3 consecutive “blue-dot” squeeze bars
threeSqz = sqzOn and sqzOn[1] and sqzOn[2]

// 21-period SMA
sma21 = ta.sma(close, 21)

// Entry: go long when threeSqz appears inside window
if strategy.position_size == 0 and threeSqz
    strategy.entry("Long", strategy.long)

// Exit: close long when price crosses below SMA-21
if strategy.position_size > 0 and ta.crossunder(close, sma21)
    strategy.close("Long")