Strategi Perdagangan Pembalikan Variansi

Penulis:ChaoZhang, Tarikh: 2023-10-31 14:42:13
Tag:

img

Ringkasan

Strategi perdagangan pembalikan variasi menghasilkan isyarat perdagangan dengan mengira nisbah antara pilihan panggilan dan jual, juga dikenali sebagai nisbah jual beli. Apabila nisbah membalik, ia mencetuskan perdagangan yang digabungkan dengan peraturan pengurusan wang yang mudah untuk mencapai keuntungan. Ia sesuai untuk tempoh 30 minit NDX dan SPX. Osilasi perlu disesuaikan dengan baik untuk mencerminkan titik pembalikan yang betul. Hasil pengujian balik yang kukuh menunjukkan titik pembalikan yang optimum.

Logika Strategi

Metrik teras strategi ini adalah purata bergerak dan penyimpangan standard nisbah panggilan / letak. Ia mula-mula mengira purata bergerak 20 hari nisbah panggilan / letak, kemudian mengira penyimpangan standard 30 hari nisbah. Isyarat panjang diaktifkan apabila nisbah melintasi di atas purata bergerak ditambah 1.5 penyimpangan standard. Isyarat pendek diaktifkan apabila nisbah jatuh di bawah purata bergerak dikurangkan 1.5 penyimpangan standard.

Selepas pergi panjang, jika nisbah rebound kembali di atas purata bergerak, tutup kedudukan pendek. Stop loss ditetapkan pada 1% di bawah harga kemasukan. Ambil keuntungan ditetapkan pada jarak 3 kali jarak stop loss dari harga kemasukan.

Analisis Kelebihan

Kelebihan terbesar strategi ini adalah menangkap titik pembalikan sentimen apabila pasaran menjadi terlalu pesimis atau bullish, menyebabkan anomali dalam nisbah panggilan / letak. Perdagangan terhadap anomali tersebut dapat mendapat keuntungan dari pembalikan tempatan. Peraturan pengurusan wang secara berkesan mengehadkan risiko dan ganjaran perdagangan individu.

Analisis Risiko

Risiko utama datang daripada penyesuaian parameter yang tidak betul. Isyarat yang terlalu kerap gagal menangkap pembalikan yang signifikan. Isyarat pembalikan juga boleh dipalsukan oleh pecah palsu, menyebabkan kerugian. Parameter harus dioptimumkan untuk isyarat yang lebih boleh dipercayai.

Pengoptimuman

Pertimbangkan untuk menambah penapis untuk mengesahkan isyarat pembalikan dan mengelakkan pecah palsu. Sebagai contoh, hanya mempertimbangkan isyarat apabila jumlah menguatkan. Penapis trend juga boleh mengelakkan perdagangan kontra-trend. Parameter optimum mungkin berbeza di pasaran dan jangka masa yang berbeza. Mengintegrasikan lebih banyak faktor akan menjadikan strategi lebih mantap.

Kesimpulan

Strategi ini bertujuan untuk menangkap titik pembalikan pasaran dengan menggunakan nisbah panggilan / meletakkan dengan peraturan pengurusan wang asas. Ia boleh mendapat keuntungan daripada pembalikan tempatan tetapi menghadapi risiko pecah palsu. Mengoptimumkan parameter, menambahkan penapis dan mengintegrasikan lebih banyak faktor dapat meningkatkan kestabilan dan keuntungan. Secara keseluruhan, ia memberikan arah untuk pembalikan perdagangan berdasarkan sentimen pasaran. Ujian dan pengoptimuman lanjut diperlukan untuk aplikasi dunia nyata.


/*backtest
start: 2023-09-30 00:00:00
end: 2023-10-30 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © I11L

//@version=5
strategy("I11L Long Put/Call Ratio Inversion", overlay=false, pyramiding=1, default_qty_value=10000, initial_capital=10000, default_qty_type=strategy.cash)

SL = input.float(0.01,step=0.01)
CRV = input.float(3)
TP = SL * CRV

len = input.int(30,"Lookback period in Days",step=10)
ratio_sma_lookback_len = input.int(20,step=10)
mult = input.float(1.5,"Standard Deviation Multiple")

ratio_sma = ta.sma(request.security("USI:PCC","D",close),ratio_sma_lookback_len)

median = ta.sma(ratio_sma,len)
standartDeviation = ta.stdev(ratio_sma,len)
upperDeviation = median + mult*standartDeviation
lowerDeviation = median - mult*standartDeviation


isBuy = ta.crossunder(ratio_sma, upperDeviation)// and close < buyZone
isCloseShort = (ratio_sma > median and strategy.position_size < 0)
isSL = (strategy.position_avg_price * (1.0 - SL) > low and strategy.position_size > 0) or (strategy.position_avg_price * (1.0 + SL) < high and strategy.position_size < 0)
isSell = ta.crossover(ratio_sma,lowerDeviation) 
isTP = strategy.position_avg_price * (1 + TP) < high

if(isBuy)
    strategy.entry("Long", strategy.long)

if(isCloseShort)
    strategy.exit("Close Short",limit=close)

if(isSL)
    strategy.exit("SL",limit=close)

if(isTP)
    strategy.exit("TP",limit=close)
    
plot(ratio_sma,color=color.white)
plot(median,color=color.gray)
plot(upperDeviation,color=color.rgb(0,255,0,0))
plot(lowerDeviation,color=color.rgb(255,0,0,0))

bgcolor(isBuy?color.rgb(0,255,0,90):na)
bgcolor(isSell?color.rgb(255,0,0,90):na)


Lebih lanjut