Strategi imbangan reversi ganda

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

img

Gambaran umum

Strategi reversal balance dual adalah strategi kombinasi yang memanfaatkan strategi reversal dan empirical mode decomposition (EMD) filtering. pertama-tama menghasilkan sinyal trading menggunakan sistem reversal 123, kemudian memproses sinyal dengan EMD filtering, dan akhirnya menggabungkan sinyal dari keduanya untuk mengkonfirmasi entri dan keluar. pendekatan hibrida ini dapat meningkatkan tingkat kemenangan.

Prinsip Strategi

123 Sistem pembalikan

Sistem pembalikan 123 berasal dari buku How I Tripped My Money in the Futures Market oleh Ulf Jensen. Ini termasuk dalam jenis strategi pembalikan. Ini akan panjang ketika harga penutupan lebih tinggi dari penutupan sebelumnya selama 2 hari berturut-turut dan stokastik lambat 9 hari di bawah 50.

Dekomposisi Mode Empiris (EMD)

EMD adalah metode analisis data adaptif. Ini dapat secara efektif memecah data menjadi komponen frekuensi yang berbeda dan mengekstrak tren jangka panjang. Di sini kita mengatur panjang menjadi 20, delta menjadi 0,5 dan pecahan menjadi 0,1 untuk menghasilkan sinyal perdagangan berdasarkan komponen frekuensi harga.

Kombinasi sinyal

Strategi reversal balance dual menggabungkan sinyal trading dari sistem reversal 123 dan EMD. Ini mengkonfirmasi entri hanya ketika sinyal dari kedua sistem setuju. Pendekatan hibrida ini meningkatkan tingkat kemenangan.

Analisis Keuntungan

Sistem reversal menangkap peluang reversal jangka pendek sementara filter EMD menangkap tren jangka panjang. Menggunakan kedua sistem bersama-sama dapat meningkatkan stabilitas.

Ini juga memperkenalkan pola 123 untuk menghindari whipsaws yang tidak diinginkan dan parameter EMD yang dikonfigurasi dengan benar membantu menyaring beberapa kebisingan.

Analisis Risiko

Risiko terbesar dari strategi ini berasal dari kegagalan pembalikan. Meskipun pola 123 mengurangi probabilitas tersebut, ketidakpastian perdagangan pembalikan tetap tinggi. Juga, metode EMD dapat rusak selama pasar yang sangat volatile.

Untuk mengendalikan risiko tersebut, parameter sistem pembalikan dapat disesuaikan untuk menghasilkan sinyal yang lebih dapat diandalkan. Metode penyaringan yang berbeda juga dapat diuji alih-alih EMD untuk mencapai kinerja penyaringan yang lebih baik. Selain itu, menjaga ukuran posisi yang kecil untuk membatasi kerugian diperlukan.

Arahan Optimasi

Strategi dapat dioptimalkan dalam aspek berikut:

  1. Uji set parameter yang berbeda untuk sistem pembalikan untuk menemukan optimal

  2. Cobalah metode penyaringan digital yang berbeda, misalnya, transformasi wavelet, transformasi Hilbert dll.

  3. Tambahkan stop loss untuk mengendalikan kerugian perdagangan tunggal

  4. Masukkan indikator lain untuk memastikan akurasi arah yang lebih tinggi

  5. Mengoptimalkan model manajemen uang seperti ukuran posisi

Ringkasan

Strategi reversing balance dual menggabungkan kekuatan dari strategi reversal dan teknik pemrosesan sinyal digital. Dengan penyesuaian parameter yang tepat dan pengendalian risiko, strategi ini menghasilkan kinerja perdagangan yang stabil.


/*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 banyak