Strategi Peramalan Gelombang Gauss

Penulis:ChaoZhang, Tanggal: 2024-01-22 12:37:07
Tag:

img

Gambaran umum

Gauss Wave Forecasting Strategy adalah strategi perdagangan kuantitatif yang didasarkan pada penyaringan Gaussian. Ini memanfaatkan fitur pelunturan filter Gaussian untuk menyaring seri harga beberapa kali dan menghasilkan beberapa seri harga yang diluruskan. Kemudian dikombinasikan dengan pencocokan polinomial dari seri harga ini, ini mewujudkan prediksi harga masa depan. Menurut hasil prediksi, ini memberikan saran tentang posisi panjang atau pendek.

Prinsip Strategi

Inti dari strategi ini adalah algoritma filter Gaussian. Filter Gaussian adalah filter perataan linier yang menggunakan fungsi Gaussian sebagai bobot. Parameter p dalam strategi ditetapkan sebagai ukuran jendela penyaringan. Kemudian koefisien penyaringan alfa dihitung melalui fungsi trigonometri.

Strategi ini menggunakan gagasan rekursi. Pertama, dengan alfa dan harga seri harga asli, ret penyaringan pertama dihitung. Kemudian berdasarkan ret, penyaringan kedua dilakukan untuk mendapatkan ret2. Ulangi ini beberapa kali. Akhirnya, dengan menggabungkan beberapa seri harga, kurva dipasang untuk memprediksi harga masa depan ret4. Jika harga yang diprediksi lebih tinggi dari harga aktual saat ini, pergi panjang. Jika lebih rendah dari harga saat ini, pergi pendek.

Dengan menyaring beberapa kali, dapat lebih halus dan lebih sesuai dengan tren. Pada saat yang sama, dikombinasikan dengan penyesuaian polinomial, ia mewujudkan prediksi tren harga dalam jangka pendek.

Analisis Keuntungan

Strategi ini memiliki keuntungan berikut:

  1. Gunakan filter Gaussian untuk meratakan harga. Ini dapat secara efektif menyaring kebisingan frekuensi tinggi dan membuat strategi lebih stabil.

  2. Filter ganda rekursif. Ini dapat lebih sesuai dengan tren harga dan meningkatkan efek prediksi.

  3. Prediksi harga berdasarkan penyesuaian polinomial. Ini dapat memodelkan tren harga jangka pendek dan dengan demikian menghasilkan sinyal perdagangan.

  4. Sinyal perdagangan dikombinasikan langsung dengan prediksi tren untuk menghindari kehilangan peluang perdagangan.

  5. Mudah diterapkan, mudah dimengerti dan dioptimalkan.

Analisis Risiko

Strategi ini juga memiliki risiko berikut:

  1. Efek pelemahan filter Gaussian pada perubahan harga tiba-tiba dapat kehilangan peluang perdagangan jangka pendek.

  2. Jika model perubahan harga bermutasi tiba-tiba, efek prediksi akan menurun.

  3. Ukuran jendela filter dan urutan polinomial yang cocok harus diatur dengan tepat.

  4. Ini hanya bergantung pada harga pembukaan untuk sinyal perdagangan dan tidak dapat berdagang intraday.

Arahan Optimasi

Strategi dapat dioptimalkan dalam aspek berikut:

  1. Tambahkan pelatihan model dan mekanisme pelatihan ulang jendela geser untuk penyesuaian parameter secara dinamis untuk mengurangi risiko pemasangan berlebihan.

  2. Masukkan lebih banyak indikator harga dan fitur untuk memperkaya input dan membuat prediksi lebih stabil.

  3. Tambahkan mekanisme stop loss, menetapkan rasio kerugian maksimum untuk menghindari kerugian besar dalam kondisi pasar yang ekstrim.

  4. Mengoptimalkan manajemen posisi, menyesuaikan posisi secara dinamis berdasarkan akurasi prediksi dan volatilitas.

  5. Coba prediksi berdasarkan model pembelajaran mesin arus utama seperti LSTM dan lebih meningkatkan kemampuan prediksi.

Kesimpulan

Secara singkat, ini adalah strategi kuantitatif frekuensi tinggi yang melakukan prediksi harga menggunakan filter Gaussian dan pencocokan polinomial. Ini memiliki keuntungan tertentu tetapi juga ruang untuk perbaikan. Dengan menggabungkan lebih banyak fitur, memperkenalkan penyesuaian parameter dinamis, mekanisme stop loss dll, efek strategi bisa jauh lebih baik. Strategi ini meletakkan dasar sebagai modul dasar untuk penelitian lebih lanjut dan optimasi strategi frekuensi tinggi.


/*backtest
start: 2023-01-15 00:00:00
end: 2024-01-21 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy("Gaussbot v1.0", overlay=true)

p = input(20, minval=1, title="Length")
price = input(open, title="Source")

pi=3.1415926535


w=2*pi/p
beta = (1 - cos(w))/(pow(1.414,2.0/3) - 1)
alfa = -beta + sqrt(beta*beta + 2*beta)
ret=  pow(alfa,4)*price+4*(1-alfa)*nz(ret[1])-6*pow(1-alfa,2)*nz(ret[2])+4*pow(1-alfa,3)*nz(ret[3])-pow(1-alfa,4)*nz(ret[4])
ret2 = pow(alfa,4)*ret+4*(1-alfa)*nz(ret2[1])-6*pow(1-alfa,2)*nz(ret2[2])+4*pow(1-alfa,3)*nz(ret2[3])-pow(1-alfa,4)*nz(ret2[4])
ret3 = pow(alfa,4)*ret2+4*(1-alfa)*nz(ret3[1])-6*pow(1-alfa,2)*nz(ret3[2])+4*pow(1-alfa,3)*nz(ret3[3])-pow(1-alfa,4)*nz(ret3[4])
ret4 = 3*ret-3*ret2+ret3


diff2 = nz(ret[1]) - nz(ret[2]) - (nz(ret[2]) - nz(ret[3]) )  
diff22 = nz(ret2[1]) - nz(ret2[2]) - (nz(ret2[2]) - nz(ret2[3]) ) 
diff23 = nz(ret3[1]) - nz(ret3[2]) - (nz(ret3[2]) - nz(ret3[3]) )  
diff24 = nz(ret4[1]) - nz(ret4[2]) - (nz(ret4[2]) - nz(ret4[3]) )  


longCondition =    price[0] - ret4[1]  > 0
shortCondition =  price[0] - ret4[1] < 0

if(longCondition and shortCondition)
    longCondition = longCondition[1]
    shortCondition = shortCondition[1]
if(longCondition==false and shortCondition==false)
    longCondition = longCondition[1]
    shortCondition = shortCondition[1]



if (longCondition==true and shortCondition == false) 
    strategy.entry("Gaussbot Long", strategy.long )
if (longCondition==false and shortCondition == true)
    strategy.entry("Gaussbot Short", strategy.short)



Lebih banyak