Strategi pembalikan detrending berdasarkan pelicinan Gaussian


Tarikh penciptaan: 2023-11-07 15:01:19 Akhirnya diubah suai: 2023-11-07 15:01:19
Salin: 0 Bilangan klik: 686
1
fokus pada
1617
Pengikut

Strategi pembalikan detrending berdasarkan pelicinan Gaussian

Gambaran keseluruhan

Ini adalah strategi untuk mengenal pasti potensi harga yang berbalik dengan menggunakan penunjuk harga gooseberry yang disesuaikan berdasarkan Gaussian smoothing. Strategi ini menggabungkan penunjuk harga gooseberry yang disesuaikan dengan pergerakan rata-rata gooseberry dalam kitaran harga, menetapkan syarat masuk dan keluar khusus untuk menangkap peluang harga yang berbalik.

Prinsip Strategi

Strategi ini bermula dengan pengiraan indikator pergerakan harga tanpa trend (GDPO), dengan membandingkan harga penutupan dengan purata bergerak indeks untuk tempoh tertentu untuk mengenal pasti kitaran harga dalam jangka pendek. Kemudian, GDPO diluruskan dengan Gaussian, menggunakan purata bergerak Arnaud Legoux (ALMA) menggunakan teknik kelancaran Gaussian, menapis kebisingan, dan memberikan gambaran yang lebih jelas mengenai trend harga.

Strategi ini digunakan untuk menentukan kemasukan dan keluar yang tepat untuk melakukan banyak kerosakan dengan GDPR yang telah diluluskan dan versi yang tertinggal. Apabila GDPR yang telah diluluskan berjalan dengan versi yang terlewat dan negatif, lakukan banyak kemasukan; apabila GDPR yang telah diluluskan berjalan dengan versi yang terlewat atau sumbu sifar, lakukan posisi kepala kosong.

Pada carta, GDPR yang telah diluluskan dan versi terbelakangnya digambarkan dengan warna yang berbeza untuk menunjukkan secara visual keadaan persimpangan mereka. Pada masa yang sama, garis nol digambarkan sebagai rujukan. Tetapkan perubahan warna latar belakang semasa masuk strategi untuk memberi isyarat.

Analisis kelebihan

Strategi ini menggabungkan teknik penyingkiran trend dan Gaussian smoothing untuk menyaring kebisingan, yang dapat mengenal pasti peluang pembalikan harga dengan lebih jelas. GDPR dapat meningkatkan ketepatan dengan menggabungkan analisis kitaran dengan penyingkiran trend, berbanding dengan indikator kejutan lain. Gaussian smoothing menghapuskan banyak kebisingan, menjadikan isyarat indikator lebih jelas.

Analisis risiko

Strategi ini lebih sensitif kepada parameter yang disesuaikan, seperti panjang kitaran, parameter peluruskan, dan lain-lain, dan perlu diukur semula dengan mencukupi untuk menentukan kombinasi parameter yang sesuai, jika tidak, mungkin terdapat terlalu banyak isyarat yang salah. Dalam keadaan trend, strategi ini mungkin menghasilkan kerugian berturut-turut.

Anda boleh mengoptimumkan strategi anda dengan menyesuaikan parameter secara dinamik, menggabungkan indikator penghakiman trend, dan meningkatkan kestabilan strategi. Anda juga boleh menetapkan stop loss dinamik untuk mengawal risiko.

Arah pengoptimuman

Strategi ini boleh dioptimumkan dalam beberapa arah:

  1. Secara dinamik menyesuaikan parameter meluruskan, meningkatkan kekuatan meluruskan dalam keadaan trend, mengurangkan isyarat salah.

  2. Menggabungkan indikator penilaian trend, seperti ADX, untuk mengelakkan strategi pembalikan kerugian berterusan dalam keadaan trend.

  3. Menambah strategi berhenti kerugian, seperti penyesuaian titik berhenti kerugian dengan turun naik harga atau pergerakan berhenti kerugian selepas keuntungan.

  4. Optimumkan syarat kemasukan, boleh digabungkan dengan petunjuk atau bentuk lain sebagai pengesahan, meningkatkan ketepatan kemasukan.

  5. Mengoptimumkan pengurusan dana, menyesuaikan kedudukan dan titik-titik berhenti mengikut keadaan pasaran.

  6. Uji data harga yang berbeza, seperti garis matahari, garis pusingan, dan lain-lain, untuk menilai keberkesanan strategi dalam tempoh yang berbeza.

ringkaskan

Berasaskan pada strategi Gauss untuk meluruskan dan membalikkan trend, menggunakan indikator GDPR untuk mengenal pasti kitaran harga jangka pendek, dan menggunakan teknik Gauss untuk mengekstrak isyarat, menangkap peluang pembalikan dalam keadaan masuk dan keluar yang jelas. Strategi ini berkesan mengawal risiko perdagangan pembalikan, tetapi perlu berhati-hati dalam pengoptimuman parameter dan penghakiman trend.

Kod sumber strategi
/*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