Strategi perdagangan reversi Gaussian yang terdetensi

Penulis:ChaoZhang, Tanggal: 2023-11-07 15:01:19
Tag:

img

Gambaran umum

Ini adalah strategi yang mengidentifikasi potensi pembalikan harga menggunakan oscillator harga Gaussian Detrended (GDPO) yang disesuaikan dikombinasikan dengan siklus harga yang halus.

Logika Strategi

Strategi ini pertama-tama menghitung Detrended Price Oscillator (DPO) dengan membandingkan harga penutupan dengan Exponential Moving Average (EMA) selama periode tertentu untuk mengidentifikasi siklus harga jangka pendek. Nilai DPO kemudian dihaluskan menggunakan Arnaud Legoux Moving Average (ALMA) dengan teknik penghalusan Gaussian untuk menyaring kebisingan.

Aturan masuk dan keluar didefinisikan berdasarkan peristiwa crossover antara GDPO halus dan versi tertinggalnya. Posisi panjang dimasukkan ketika GDPO halus melintasi di atas lag dan negatif. Posisi panjang keluar ketika GDPO halus melintasi di bawah lag atau garis nol. Posisi pendek dimasukkan ketika GDPO halus melintasi di bawah lag dan positif. Posisi pendek keluar ketika GDPO halus melintasi di atas lag atau garis nol.

Garis nol juga ditampilkan sebagai referensi. Warna latar belakang grafik berubah ketika strategi memasuki posisi. Penanda silang digambarkan di titik persilangan sebagai sinyal keluar.

Analisis Keuntungan

Strategi ini menggabungkan teknik detrending dan smoothing Gaussian untuk lebih jelas mengidentifikasi peluang pembalikan dibandingkan dengan osilator lain. GDPO meningkatkan akurasi dengan menggabungkan analisis siklus dengan detrending. smoothing Gaussian menghilangkan kebisingan untuk sinyal yang lebih jelas.

Analisis Risiko

Strategi ini sensitif terhadap penyesuaian parameter seperti panjang periode dan parameter perataan. backtesting yang ekstensif diperlukan untuk menentukan parameter optimal, jika tidak sinyal palsu yang berlebihan dapat terjadi. Strategi dapat menghasilkan kerugian berturut-turut di pasar tren. Stop loss harus digunakan untuk mengendalikan kerugian perdagangan tunggal. pembalikan yang gagal juga merupakan risiko besar. Probabilitas pembalikan harus dikonfirmasi menggunakan pola grafik dan kekuatan tren.

Optimasi dapat dilakukan dengan menyesuaikan parameter secara dinamis dan menggabungkan indikator tren untuk meningkatkan ketahanan.

Arahan Optimasi

Strategi dapat dioptimalkan dalam beberapa aspek:

  1. Mengatur secara dinamis parameter smoothing untuk meningkatkan smoothing dalam tren dan mengurangi sinyal palsu.

  2. Masukkan indikator tren seperti ADX untuk menghindari kerugian di pasar tren.

  3. Tambahkan mekanisme stop loss seperti stop dinamis atau trailing.

  4. Mengoptimalkan kondisi masuk menggunakan indikator atau pola tambahan untuk akurasi masuk yang lebih tinggi.

  5. Mengoptimalkan manajemen modal dengan menyesuaikan ukuran posisi dan berhenti berdasarkan kondisi pasar.

  6. Uji strategi dalam jangka waktu yang berbeda seperti data harian atau mingguan.

Ringkasan

Gaussian Detrended Reversion strategi mengidentifikasi siklus jangka pendek menggunakan GDPO dan mengekstrak sinyal dengan penyaringan Gaussian untuk menangkap pembalikan di bawah aturan masuk dan keluar yang ditentukan. Ini secara efektif mengendalikan risiko perdagangan pembalikan tetapi membutuhkan optimasi parameter dan validasi tren. Peningkatan lebih lanjut dalam ketahanan dapat dilakukan melalui penyesuaian dinamis, mengkonfirmasi indikator dan strategi stop loss.


/*backtest
start: 2022-10-31 00:00:00
end: 2023-11-06 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0
// © DraftVenture

//@version=5
strategy(title="Gaussian Detrended Reversion Strategy", overlay=false, default_qty_type=strategy.percent_of_equity, default_qty_value=15)

//Detrended Price Oscillator for price cycles
period_ = input.int(50, title="Price Length", minval=1)

barsback = period_/2 + 1
ma = ta.ema(close, period_)
dpo = close - ma[barsback]

// Rounded ALMA Calculations for gaussian smoothing
almaSource = dpo
almaWindowSize = input(title="Smoothing Length", defval=50)
lagLength = input(title="Lag Length", defval=25)
almaSmoothed = ta.alma(almaSource, almaWindowSize, 0.85, 6)
almaLag = almaSmoothed[lagLength]

// Reversion entry conditions
entryL = ta.crossover(almaSmoothed, almaLag) and almaSmoothed < 0
exitL = ta.crossunder(almaSmoothed, almaLag) or ta.crossunder(almaSmoothed, 0)
entryS = ta.crossunder(almaSmoothed, almaLag) and almaSmoothed > 0
exitS = ta.crossover(almaSmoothed, almaLag) or ta.crossover(almaSmoothed, 0)

// Long entry and exit
if entryL
    strategy.entry("Long", strategy.long)

if exitL
    strategy.close("Long")

// Short entry and exit
if entryS
    strategy.entry("Short", strategy.short)

if exitS
    strategy.close("Short")

// Plot the oscillator
plot(almaSmoothed, title="GDPO", color=color.green)
plot(almaLag, title="Lag", color=color.white)

hline(0, title="Zero Line", color=color.white)

bgcolor(entryL ? color.new(color.green, 40) : na)
bgcolor(entryS ? color.new(color.red, 40) : na)

plotshape(series=ta.crossunder(almaSmoothed, almaLag) or ta.crossunder(almaSmoothed, 0), style=shape.xcross, location=location.top, color=color.white, size=size.tiny)
plotshape(series=ta.crossover(almaSmoothed, almaLag) or ta.crossover(almaSmoothed, 0), style=shape.xcross, location=location.bottom, color=color.white, size=size.tiny)

//Strategy by KP

Lebih banyak