Strategi imbangan pembalikan berganda

Penulis:ChaoZhang, Tarikh: 2023-12-15 16:56:20
Tag:

img

Ringkasan

Strategi baki pembalikan berganda adalah strategi gabungan yang menggunakan kedua-dua strategi pembalikan dan penapisan penguraian mod empirikal (EMD). Ia mula-mula menjana isyarat perdagangan menggunakan sistem pembalikan 123, kemudian memproses isyarat dengan penapisan EMD, dan akhirnya menggabungkan isyarat dari kedua-dua untuk mengesahkan kemasukan dan keluar. Pendekatan hibrid ini dapat meningkatkan kadar kemenangan.

Prinsip Strategi

123 Sistem pembalikan

Sistem pembalikan 123 berasal dari buku How I Tripped My Money in the Futures Market oleh Ulf Jensen. Ia tergolong dalam jenis strategi pembalikan. Ia pergi lama apabila harga penutupan lebih tinggi daripada penutupan sebelumnya selama 2 hari berturut-turut dan stokastik perlahan 9 hari di bawah 50. Ia pergi pendek apabila persediaan yang bertentangan berlaku.

Penguraian Mod Empirikal (EMD)

EMD adalah kaedah analisis data adaptif. Ia boleh secara berkesan memecahkan data ke dalam komponen frekuensi yang berbeza dan mengekstrak trend jangka panjang. Di sini kita menetapkan panjang kepada 20, delta kepada 0.5 dan pecahan kepada 0.1 untuk menjana isyarat perdagangan berdasarkan komponen frekuensi harga.

Gabungan isyarat

Strategi baki pembalikan berganda menggabungkan isyarat perdagangan dari kedua-dua sistem pembalikan 123 dan EMD. Ia mengesahkan entri hanya apabila isyarat dari kedua-dua sistem bersetuju. Pendekatan hibrid ini meningkatkan kadar kemenangan.

Analisis Kelebihan

Strategi baki pembalikan berganda memanfaatkan kelebihan dari kedua-dua strategi pembalikan dan teknik pemprosesan isyarat digital. Sistem pembalikan menangkap peluang pembalikan jangka pendek sementara penapis EMD menangkap trend jangka panjang. Menggunakan kedua-dua sistem bersama dapat meningkatkan kestabilan.

Ia juga memperkenalkan corak 123 untuk mengelakkan whipsaws yang tidak diingini. dan parameter EMD yang dikonfigurasi dengan betul membantu menapis beberapa bunyi bising. semua faktor ini menyumbang kepada kadar kemenangan yang lebih tinggi.

Analisis Risiko

Risiko terbesar strategi ini berasal dari kegagalan pembalikan. Walaupun corak 123 mengurangkan kebarangkalian tersebut, ketidakpastian perdagangan pembalikan tetap tinggi. Juga, kaedah EMD boleh rosak semasa pasaran yang sangat tidak menentu.

Untuk mengawal risiko tersebut, parameter sistem pembalikan boleh diselaraskan untuk menghasilkan isyarat yang lebih boleh dipercayai. Kaedah penapisan yang berbeza juga boleh diuji bukannya EMD untuk mencapai prestasi penapisan yang lebih baik. Di samping itu, mengekalkan saiz kedudukan yang kecil untuk mengehadkan kerugian adalah perlu.

Arahan pengoptimuman

Strategi ini boleh dioptimumkan dalam aspek berikut:

  1. Uji set parameter yang berbeza untuk sistem pembalikan untuk mencari optimum

  2. Cuba kaedah penapisan digital yang berbeza, contohnya, transformasi gelombang, transformasi Hilbert dll.

  3. Tambah stop loss untuk mengawal kerugian perdagangan tunggal

  4. Masukkan penunjuk lain untuk memastikan ketepatan arah yang lebih tinggi

  5. Mengoptimumkan model pengurusan wang seperti saiz kedudukan

Ringkasan

Strategi baki pembalikan berganda menggabungkan kekuatan strategi pembalikan dan teknik pemprosesan isyarat digital. Dengan penyesuaian parameter dan kawalan risiko yang betul, ia menghasilkan prestasi perdagangan yang stabil. Strategi ini sangat boleh diperluaskan dan patut disyorkan.


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

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 30/06/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
// The related article is copyrighted material from Stocks & Commodities Mar 2010
//
// 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

Empirical(Length,Delta,Fraction) =>
    pos = 0
    xBandpassFilter = 0.0
    xPeak = 0.0
    xValley =0.0
    xPrice = hl2
    beta = cos(3.1415 * (360 / Length) / 180)
    gamma = 1 / cos(3.1415 * (720 * Delta / Length) / 180)
    alpha = gamma - sqrt(gamma * gamma - 1)
    xBandpassFilter := 0.5 * (1 - alpha) * (xPrice - xPrice[2]) + beta * (1 + alpha) * nz(xBandpassFilter[1]) - alpha * nz(xBandpassFilter[2])
    xMean = sma(xBandpassFilter, 2 * Length)
    xPeak :=  iff (xBandpassFilter[1] > xBandpassFilter and xBandpassFilter[1] > xBandpassFilter[2], xBandpassFilter[1], nz(xPeak[1])) 
    xValley :=  iff (xBandpassFilter[1] < xBandpassFilter and xBandpassFilter[1] < xBandpassFilter[2], xBandpassFilter[1], nz(xValley[1])) 
    xAvrPeak = sma(xPeak, 50)
    xAvrValley = sma(xValley, 50)
    nAvrPeak = Fraction * xAvrPeak
    nAvrValley = Fraction * xAvrValley
    pos := iff(xMean > nAvrPeak and xMean > nAvrValley, 1,
    	   iff(xMean < nAvrPeak and xMean < nAvrValley, -1, nz(pos[1], 0)))
    pos

strategy(title="Combo Backtest 123 Reversal & Empirical Mode Decomposition", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
LengthEMD = input(20, minval=1)
Delta = input(0.5)
Fraction = input(0.1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posEmpirical = Empirical(LengthEMD,Delta,Fraction)
pos = iff(posReversal123 == 1 and posEmpirical == 1 , 1,
	   iff(posReversal123 == -1 and posEmpirical == -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 lanjut