Penembusan rendah tinggi untuk perdagangan kuantitatif

Penulis:ChaoZhang, Tanggal: 2023-11-10 11:09:28
Tag:

img

Gambaran umum

Strategi Fusion menggabungkan strategi pola pembalikan 123 dan strategi low breakout tinggi ke dalam sistem perdagangan kuantitatif. Dengan mensintesis sinyal indikator di berbagai kerangka waktu, tujuannya adalah untuk mencapai keuntungan modal multi-timeframe dan menghasilkan laba yang berlebihan dalam jangka menengah hingga panjang.

Logika Strategi

Strategi Fusion terdiri dari dua komponen:

  1. 123 Strategi Pembalikan Strategi ini berasal dari ide pada halaman 183 dari buku How I Tripped My Money in the Futures Market oleh Ulf Jensen. Ini menghasilkan sinyal perdagangan dengan memeriksa hubungan antara harga penutupan dua hari terakhir dan hari sebelumnya, bersama dengan indikator Stochastic untuk mengukur kondisi pasar yang terlalu banyak dibeli dan terlalu banyak dijual. Secara khusus, sinyal beli dihasilkan ketika harga penutupan dua hari berturut-turut lebih tinggi dari hari sebelumnya, dan indikator Stochastic Slow berada di bawah 50.

  2. Strategi Low Breakout Tinggi Strategi ini mengidentifikasi sinyal perdagangan dengan mendeteksi price breakouts di luar level tinggi/rendah sebelumnya selama periode waktu yang berbeda. Ini menghitung tertinggi tertinggi dan terendah terendah selama periode saat ini dan sebelumnya dan menghasilkan sinyal beli ketika harga melanggar di atas level tinggi, dan sinyal jual ketika harga melanggar di bawah level rendah. Keuntungan dari strategi ini adalah kemampuannya untuk mengidentifikasi perubahan pola tren dalam kerangka waktu yang lebih tinggi, memungkinkan masuk lebih awal.

Strategi Fusion menggabungkan sinyal dari dua strategi di atas, dan menghasilkan sinyal perdagangan yang sebenarnya hanya ketika arah sinyal sejajar.

Keuntungan dari Strategi

  1. Sintesis multi-frame meningkatkan akurasi sinyal Integrasi pola harian dan jangka waktu yang lebih tinggi meningkatkan akurasi generasi sinyal perdagangan, menghindari gangguan dari kebisingan pasar jangka pendek.

  2. Menggunakan sepenuhnya penilaian overbought / oversold dari Stochastic Penggunaan indikator Stochastic Slow mencegah pembelian yang bersemangat di zona overbought. Indikator Stochastic Fast mencegah penjualan yang bersemangat di zona oversold. Kerugian yang tidak perlu dikurangi.

  3. Menangkap pola tren tepat waktu, mengurangi kesempatan yang hilang Strategi high low breakout mengidentifikasi awal tren dalam jangka waktu yang lebih tinggi lebih awal, mengurangi peluang perdagangan yang hilang.

  4. Optimisasi yang fleksibel dengan beberapa sub-strategi Dengan beberapa sub-strategi, ruang optimasi besar memungkinkan pengaturan parameter sub-strategi atau memperkenalkan yang baru untuk membuat strategi lebih stabil dan dapat diandalkan.

  5. Logika yang sederhana dan jelas Struktur dan logika yang sederhana membuat strategi mudah dipahami, dimodifikasi dan dipertahankan di masa depan.

Risiko dari Strategi

  1. Synthesis multi-frame menyebabkan lag sinyal Meskipun akurasi ditingkatkan, menggabungkan sinyal di seluruh kerangka waktu menyebabkan keterlambatan dan dapat kehilangan peluang perdagangan jangka pendek.

  2. 123 pola tidak dapat mengidentifikasi pembalikan tren jangka waktu yang lebih lama Strategi pembalikan 123 hanya melihat hari-hari terakhir dan melewatkan titik pembalikan utama dalam kerangka waktu yang lebih lama.

  3. Pengaturan parameter yang salah dapat menyebabkan sinyal palsu Penyesuaian parameter yang buruk dari periode Stochastic dan breakout dapat mengakibatkan sinyal palsu yang berlebihan.

  4. Teknis murni, kemampuan beradaptasi yang lemah terhadap peristiwa ekstrem Tanpa mempertimbangkan dasar-dasarnya, strategi ini tidak cocok dengan peristiwa Black Swan.

Solusi yang sesuai:

  1. Singkatkan periode perhitungan dengan benar untuk mengurangi lag.

  2. Cobalah memperkenalkan indikator jangka panjang atau pola sebagai filter.

  3. Mengoptimalkan parameter dan menguji ketahanan secara menyeluruh dalam backtest.

  4. Pertimbangkan untuk memasukkan faktor dasar untuk penyaringan sinyal.

Arahan untuk Optimalisasi

  1. Uji dan optimalkan parameter sub-strategi untuk ketahanan.

  2. Masukkan sinyal tambahan seperti fundamental, arus uang dll.

  3. Memperkenalkan stop loss untuk membatasi kerugian maksimum per perdagangan.

  4. Parameter penyempurnaan khusus untuk produk tertentu untuk meningkatkan kemampuan beradaptasi.

  5. Bantu dengan model pembelajaran mesin.

Kesimpulan

Secara singkat, strategi Fusion menggabungkan keuntungan dari indikator teknis multi-frame, bertujuan untuk generasi sinyal yang lebih akurat dan tepat waktu. Dibandingkan dengan strategi indikator tunggal, ia memiliki kemampuan mendeteksi tren yang unggul dan produksi sinyal yang lebih kuat.


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

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 25/11/2020
// This is combo strategies for get a cumulative signal. 
//
// First strategy
// This System was created from the Book "How I Tripled My Money In The 
// Futures Market" by Ulf Jensen, Page 183. This is reverse type of strategies.
// The strategy buys at market, if close price is higher than the previous close 
// during 2 days and the meaning of 9-days Stochastic Slow Oscillator is lower than 50. 
// The strategy sells at market, if close price is lower than the previous close price 
// during 2 days and the meaning of 9-days Stochastic Fast Oscillator is higher than 50.
//
// Second strategy
// This script shows a high and low period value.
//    Width - width of lines
//    SelectPeriod - Day or Week or Month and etc.
//    LookBack - Shift levels 0 - current period, 1 - previous and etc. 
//
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
Reversal123(Length, KSmoothing, DLength, Level) =>
    vFast = sma(stoch(close, high, low, Length), KSmoothing) 
    vSlow = sma(vFast, DLength)
    pos = 0.0
    pos := iff(close[2] < close[1] and close > close[1] and vFast < vSlow and vFast > Level, 1,
	         iff(close[2] > close[1] and close < close[1] and vFast > vSlow and vFast < Level, -1, nz(pos[1], 0))) 
	pos

    
HLL(LookBack, SelectPeriod) =>
    pos = 0.0
    xHigh  = security(syminfo.tickerid, SelectPeriod, high[LookBack])
    xLow   = security(syminfo.tickerid, SelectPeriod, low[LookBack])
    vS1 = xHigh
    vR1 = xLow
    pos := iff(close > vR1, 1,
             iff(close < vS1, -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & High and Low Levels", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
SelectPeriod = input(title="Resolution", type=input.resolution, defval="D")
LookBack = input(1,  minval=0)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posHLL = HLL(LookBack, SelectPeriod)
pos = iff(posReversal123 == 1 and posHLL == 1 , 1,
	   iff(posReversal123 == -1 and posHLL == -1, -1, 0)) 
possig = iff(reverse and pos == 1, -1,
          iff(reverse and pos == -1 , 1, pos))	   
if (possig == 1) 
    strategy.entry("Long", strategy.long)
if (possig == -1)
    strategy.entry("Short", strategy.short)	 
if (possig == 0) 
    strategy.close_all()
barcolor(possig == -1 ? #b50404: possig == 1 ? #079605 : #0536b3 )

Lebih banyak