Sumber dimuat naik... memuat...

Strategi Dagangan Dinamik Beradaptasi Berdasarkan Pengembalian Logaritma Standard

Penulis:ChaoZhang, Tarikh: 2024-12-27 14:39:32
Tag:SZISMALOGPenyakit STD

img

Ringkasan

Strategi ini adalah sistem dagangan adaptif berdasarkan Indeks Shiryaev-Zhou (SZI). Ia mengenal pasti keadaan pasaran yang terlalu banyak dibeli dan terlalu banyak dijual dengan mengira skor standard pulangan logaritma, bertujuan untuk menangkap peluang pembalikan purata. Strategi ini menggabungkan sasaran stop-loss dan mengambil keuntungan dinamik untuk kawalan risiko yang tepat.

Prinsip Strategi

Inti strategi ini terletak pada pembinaan penunjuk standard menggunakan sifat statistik bergolak pulangan logaritma.

  1. Mengira pulangan logaritma untuk normalisasi
  2. Mengira purata bergolak dan penyimpangan piawai menggunakan tetingkap 50 tempoh
  3. Membina SZI: (kembali logaritma - purata bergulir) / penyimpangan standard bergulir
  4. Menghasilkan isyarat panjang apabila SZI jatuh di bawah -2.0 dan isyarat pendek apabila melebihi 2.0
  5. Tetapkan tahap stop-loss 2% dan 4% mengambil keuntungan berdasarkan harga masuk

Kelebihan Strategi

  1. Asas Teoritis yang kukuh: Berdasarkan andaian taburan log-normal dengan sokongan statistik yang kuat
  2. Kebolehsesuaian yang tinggi: Pengiraan tetingkap bergelombang disesuaikan dengan perubahan ciri-ciri turun naik pasaran
  3. Kawalan Risiko Komprehensif: Strategi stop-loss berasaskan peratusan membolehkan kawalan risiko yang tepat untuk setiap perdagangan
  4. Pemandangan yang mesra pengguna: Anotasi isyarat perdagangan yang jelas dan tahap kawalan risiko pada carta

Risiko Strategi

  1. Sensitiviti Parameter: Prestasi strategi yang dipengaruhi dengan ketara oleh pilihan panjang tingkap bergulir dan ambang
  2. Kebergantungan persekitaran pasaran: Boleh menghasilkan isyarat palsu yang kerap di pasaran trend
  3. Kesan Slippage: Harga pelaksanaan sebenar boleh menyimpang dengan ketara dari tahap ideal semasa tempoh turun naik
  4. Kelewatan Pengiraan: Pengiraan masa nyata penunjuk statistik boleh menyebabkan kelewatan isyarat

Arahan pengoptimuman

  1. Sempadan Dinamik: Pertimbangkan penyesuaian ambang isyarat berdasarkan turun naik pasaran
  2. Jangka Masa Berbilang: Memperkenalkan mekanisme pengesahan isyarat merentasi pelbagai jangka masa
  3. Penapisan Volatiliti: Hentikan perdagangan atau sesuaikan kedudukan semasa tempoh volatiliti yang melampau
  4. Pengesahan Isyarat: Tambah jumlah, momentum, dan penunjuk tambahan lain untuk pengesahan isyarat
  5. Pengurusan Posisi: Melaksanakan saiz kedudukan dinamik berdasarkan turun naik

Ringkasan

Ini adalah strategi dagangan kuantitatif yang dibina di atas asas statistik yang kukuh, menangkap peluang turun naik harga melalui pulangan logaritma yang standard. kekuatan utama strategi terletak pada daya adaptasi dan kawalan risiko yang komprehensif, walaupun masih ada ruang untuk pengoptimuman dalam pemilihan parameter dan penyesuaian persekitaran pasaran. Melalui pengenalan ambang dinamik dan mekanisme pengesahan isyarat pelbagai dimensi, kestabilan dan kebolehpercayaan strategi dapat ditingkatkan lagi.


/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-25 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Jalambi Paul model", overlay=true)

// Define the length for the rolling window
window = input.int(50, title="Window Length", minval=1)
threshold = 2.0 // Fixed threshold value
risk_percentage = input.float(1.0, title="Risk Percentage per Trade", step=0.1) / 100

// Calculate the logarithmic returns
log_return = math.log(close / close[1])

// Calculate the rolling mean and standard deviation
rolling_mean = ta.sma(log_return, window)
rolling_std = ta.stdev(log_return, window)

// Calculate the Shiryaev-Zhou Index (SZI)
SZI = (log_return - rolling_mean) / rolling_std

// Generate signals based on the fixed threshold
long_signal = SZI < -threshold
short_signal = SZI > threshold

// Plot the signals on the main chart (overlay on price)
plotshape(series=long_signal, location=location.belowbar, color=color.green, style=shape.labelup, title="Buy Signal", text="BUY", offset=-1)
plotshape(series=short_signal, location=location.abovebar, color=color.red, style=shape.labeldown, title="Sell Signal", text="SELL", offset=-1)

// Strategy logic: Buy when SZI crosses below the negative threshold, Sell when it crosses above the positive threshold
if (long_signal)
    strategy.entry("Buy", strategy.long, comment="Long Entry")
    
if (short_signal)
    strategy.entry("Sell", strategy.short, comment="Short Entry")

// Calculate the stop loss and take profit levels based on the percentage of risk
stop_loss_pct = input.float(2.0, title="Stop Loss (%)") / 100
take_profit_pct = input.float(4.0, title="Take Profit (%)") / 100

// Set the stop loss and take profit levels based on the entry price
strategy.exit("Take Profit / Stop Loss", "Buy", stop=close * (1 - stop_loss_pct), limit=close * (1 + take_profit_pct))
strategy.exit("Take Profit / Stop Loss", "Sell", stop=close * (1 + stop_loss_pct), limit=close * (1 - take_profit_pct))

// Plot the stop loss and take profit levels for visualization (optional)
plot(stop_loss_pct != 0 ? close * (1 - stop_loss_pct) : na, color=color.red, linewidth=1, title="Stop Loss Level")
plot(take_profit_pct != 0 ? close * (1 + take_profit_pct) : na, color=color.green, linewidth=1, title="Take Profit Level")


Berkaitan

Lebih lanjut