Strategi opsi sintetis intraday berdasarkan VWMA sesi: sistem perdagangan adaptif untuk sinyal panjang dan pendek

VWMA ATM IST
Tanggal Pembuatan: 2025-02-24 10:07:39 Akhirnya memodifikasi: 2025-02-27 16:46:17
menyalin: 0 Jumlah klik: 354
2
fokus pada
319
Pengikut

Strategi opsi sintetis intraday berdasarkan VWMA sesi: sistem perdagangan adaptif untuk sinyal panjang dan pendek Strategi opsi sintetis intraday berdasarkan VWMA sesi: sistem perdagangan adaptif untuk sinyal panjang dan pendek

Ringkasan

Ini adalah strategi perdagangan intraday yang didasarkan pada rata-rata bergerak berbobot volume transaksi (VWMA) yang memungkinkan operasi dua arah multi-halangan melalui portofolio opsi sintetis. Inti dari strategi ini adalah indikator VWMA yang dihitung ulang setiap hari perdagangan, menghasilkan sinyal perdagangan berdasarkan posisi harga relatif terhadap VWMA, dan secara otomatis melunasi posisi sebelum penutupan. Strategi ini memiliki mekanisme kontrol risiko yang baik, termasuk manajemen posisi dan pembatasan frekuensi perdagangan.

Prinsip Strategi

Logika inti dari strategi ini didasarkan pada poin-poin berikut:

  1. Menggunakan VWMA reset harian sebagai indikator tren dinamis
  2. Ketika harga menembus VWMA ke atas, bangun portofolio bullish ((beli opsi bullish + jual opsi bearish))
  3. Ketika harga turun di bawah VWMA, membangun portofolio turun ((membeli opsi turun + menjual opsi turun)
  4. Pada 15:29 (IST), semua pemegang obligasi akan melakukan pelunasan.
  5. Memperkenalkan variabel hasExited untuk mengontrol frekuensi penambahan saham dan menghindari overtrading
  6. Mendukung kenaikan posisi piramida pada saat terobosan paralel

Keunggulan Strategis

  1. Adaptif dinamis - VWMA reset setiap hari memastikan indikator selalu mencerminkan kondisi pasar saat ini
  2. Keseimbangan risiko-penghasilan - membatasi risiko dan mempertahankan potensi keuntungan melalui portofolio opsi sintetis
  3. Disiplin perdagangan yang ketat - memiliki mekanisme masuk yang jelas, kenaikan posisi dan penutupan posisi yang wajib
  4. position sizing fleksibel - mendukung manajemen persentase posisi
  5. Logika operasi yang jelas - kondisi sinyal yang dihasilkan sederhana dan intuitif

Risiko Strategis

  1. Risiko pasar yang bergoyang - Penembusan VWMA dapat menghasilkan sinyal palsu yang sering terjadi di pasar horizontal
  2. Risiko celah - fluktuasi besar dalam semalam dapat menyebabkan kerugian yang lebih besar
  3. Risiko portofolio opsi - Opsi sintetis memiliki bias delta netral
  4. Eksekusi slippage - perdagangan frekuensi tinggi mungkin menghadapi slippage yang lebih besar
  5. Efisiensi modal - Biaya transaksi meningkat dengan penutupan harian

Arah optimasi strategi

  1. Memperkenalkan filter fluktuasi untuk menyesuaikan parameter kebijakan dalam lingkungan fluktuasi tinggi
  2. Meningkatkan indikator konfirmasi tren dan mengurangi kerugian akibat terobosan palsu
  3. Mengoptimalkan struktur portofolio opsi, seperti mempertimbangkan untuk memperkenalkan strategi vertical spread
  4. Membuat siklus VWMA yang beradaptasi, menyesuaikan dengan dinamika pasar
  5. Menambahkan lebih banyak indikator pengendalian risiko, seperti batas maksimum penarikan

Meringkaskan

Ini adalah strategi perdagangan intraday yang terstruktur dan logis. Strategi ini menangkap tren jangka pendek melalui indikator VWMA, berdagang dalam kombinasi dengan portofolio opsi sintetis, dan memiliki mekanisme pengendalian risiko yang baik. Ruang pengoptimalan strategi ini terutama terletak pada pengurangan sinyal palsu, peningkatan efisiensi pelaksanaan, dan peningkatan sistem manajemen risiko.

Kode Sumber Strategi
/*backtest
start: 2025-02-16 00:00:00
end: 2025-02-23 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Binance","currency":"SOL_USDT"}]
*/

//@version=5
strategy("Session VWMA Synthetic Options Strategy", overlay=true, initial_capital=100000, 
     default_qty_type=strategy.percent_of_equity, default_qty_value=10, pyramiding=10, calc_on_every_tick=true)

//──────────────────────────────
// Session VWMA Inputs
//──────────────────────────────
vwmaLen   = input.int(55, title="VWMA Length", inline="VWMA", group="Session VWMA")
vwmaColor = input.color(color.orange, title="VWMA Color", inline="VWMA", group="Session VWMA", tooltip="VWMA resets at the start of each session (at the opening of the day).")

//──────────────────────────────
// Session VWMA Calculation Function
//──────────────────────────────
day_vwma(_start, s, l) =>
    bs_nd = ta.barssince(_start)
    v_len = math.max(1, bs_nd < l ? bs_nd : l)
    ta.vwma(s, v_len)

//──────────────────────────────
// Determine Session Start
//──────────────────────────────
// newSession becomes true on the first bar of a new day.
newSession = ta.change(time("D")) != 0

//──────────────────────────────
// Compute Session VWMA
//──────────────────────────────
vwmaValue = day_vwma(newSession, close, vwmaLen)
plot(vwmaValue, color=vwmaColor, title="Session VWMA")

//──────────────────────────────
// Define Signal Conditions (only on transition)
//──────────────────────────────
bullCond = low > vwmaValue      // Bullish: candle low above VWMA
bearCond = high < vwmaValue     // Bearish: candle high below VWMA

// Trigger signal only on the bar where the condition first becomes true
bullSignal = bullCond and not bullCond[1]
bearSignal = bearCond and not bearCond[1]

//──────────────────────────────
// **Exit Condition at 15:29 IST**
//──────────────────────────────
sessionEnd = hour == 15 and minute == 29

// Exit all positions at 15:29 IST
if sessionEnd
    strategy.close_all(comment="Closing all positions at session end")

//──────────────────────────────
// **Trade Control Logic**
//──────────────────────────────
var bool hasExited = true  // Track if an exit has occurred since last entry

// Reset exit flag when a position is exited
if strategy.position_size == 0
    hasExited := true

//──────────────────────────────
// **Position Management: Entry & Exit**
//──────────────────────────────
if newSession
    hasExited := true  // Allow first trade of the day

// On a bullish signal: 
//   • If currently short, close the short position and then enter long
//   • Otherwise, add to any existing long position **only if an exit happened before**
if bullSignal and (hasExited or newSession)
    if strategy.position_size < 0
        strategy.close("Short", comment="Exit Short on Bull Signal")
        strategy.entry("Long", strategy.long, comment="Enter Long: Buy Call & Sell Put at ATM")
    else
        strategy.entry("Long", strategy.long, comment="Add Long: Buy Call & Sell Put at ATM")
    hasExited := false  // Reset exit flag

// On a bearish signal: 
//   • If currently long, close the long position and then enter short
//   • Otherwise, add to any existing short position **only if an exit happened before**
if bearSignal and (hasExited or newSession)
    if strategy.position_size > 0
        strategy.close("Long", comment="Exit Long on Bear Signal")
        strategy.entry("Short", strategy.short, comment="Enter Short: Buy Put & Sell Call at ATM")
    else
        strategy.entry("Short", strategy.short, comment="Add Short: Buy Put & Sell Call at ATM")
    hasExited := false  // Reset exit flag

//──────────────────────────────
// **Updated Alert Conditions**
//──────────────────────────────
// Alerts for valid trade entries
alertcondition(bullSignal and (hasExited or newSession), 
     title="Long Entry Alert", 
     message="Bullish signal: BUY CALL & SELL PUT at ATM. Entry allowed.")

alertcondition(bearSignal and (hasExited or newSession), 
     title="Short Entry Alert", 
     message="Bearish signal: BUY PUT & SELL CALL at ATM. Entry allowed.")