Dual Oscillation Reversal Signal-to-Noise Ratio Optimization Combo Strategi

Penulis:ChaoZhang, Tanggal: 2023-11-01 16:57:13
Tag:

img

Gambaran umum

Strategi ini menggabungkan strategi pembalikan osilasi ganda dan strategi optimasi rasio sinyal ke kebisingan untuk membentuk strategi perdagangan yang lebih kuat dan stabil.

Logika Strategi

Strategi pembalikan osilasi ganda menghitung nilai K cepat dan lambat dari 14 hari terakhir untuk menentukan apakah ada pembalikan selama dua hari perdagangan berturut-turut. Jika pembalikan terjadi ketika K cepat di bawah 50, itu adalah sinyal beli. Jika K cepat di atas 50, itu adalah sinyal jual.

Strategi optimasi rasio sinyal ke kebisingan menghitung rasio sinyal ke kebisingan dari 21 hari terakhir dan meratakan dengan rata-rata bergerak sederhana 29 hari. Ketika rasio sinyal ke kebisingan melintasi di atas rata-rata bergerak, itu adalah sinyal jual. Ketika melintasi di bawah, itu adalah sinyal beli.

Akhirnya, strategi ini hanya memulai perdagangan beli atau jual ketika kedua strategi mengeluarkan sinyal yang sama.

Analisis Keuntungan

  1. Menggabungkan beberapa strategi dapat menghasilkan sinyal perdagangan yang lebih akurat dan menghindari sinyal palsu dari satu strategi.

  2. Strategi pembalikan osilasi ganda menangkap titik pembalikan tren. Optimasi rasio sinyal ke kebisingan menyaring sinyal palsu. Bekerja sama, mereka dapat secara akurat berdagang pada pembalikan.

  3. Parameter yang dioptimalkan seperti stokastik cepat / lambat 14 hari dan periode sinyal ke kebisingan 21 hari menangkap tren terbaru tanpa terlalu banyak kebisingan.

  4. Sinyal konfirmasi ganda secara signifikan mengurangi risiko perdagangan dan menghindari kerugian yang tidak perlu.

Analisis Risiko

  1. Sinyal pembalikan dapat melambat dan melewatkan dasar mutlak atau puncak. Parameter dapat disesuaikan untuk memperpendek lag.

  2. Konfirmasi sinyal ganda dapat kehilangan beberapa peluang perdagangan. Kondisi konfirmasi dapat dikurangi tetapi juga meningkatkan risiko.

  3. Parameter rasio sinyal ke kebisingan perlu dioptimalkan. Periode yang tidak tepat dapat menyebabkan sinyal hilang atau salah.

  4. Pemantauan beberapa indikator meningkatkan kompleksitas.

Arahan Optimasi

  1. Uji lebih banyak kombinasi indikator untuk menemukan sinyal kombinasi yang lebih baik, seperti MACD, RSI dll.

  2. Mengoptimalkan parameter strategi pembalikan untuk sinyal yang lebih akurat dan tepat waktu.

  3. Optimalkan periode rasio sinyal ke kebisingan untuk menemukan keseimbangan yang optimal.

  4. Tambahkan strategi stop loss untuk mengontrol potensi kerugian untuk perdagangan tunggal.

  5. Pertimbangkan metode pembelajaran mesin untuk mengoptimalkan parameter secara otomatis untuk fleksibilitas yang lebih baik.

Kesimpulan

Strategi ini menggabungkan strategi pembalikan osilasi ganda dan rasio sinyal ke kebisingan untuk memberikan sinyal yang stabil pada titik pembalikan tren. Parameter yang dioptimalkan secara signifikan mengurangi sinyal palsu, dan konfirmasi ganda mengurangi risiko perdagangan. Optimasi lebih lanjut seperti parameter indikator, stop loss dapat meningkatkan kinerja. Secara keseluruhan, ini adalah strategi yang stabil dengan nilai perdagangan praktis.


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

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 196/01/2021
// 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 signal-to-noise (S/N) ratio. 
// And Simple Moving Average.
//
// 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

SignalToNoise(length) =>
    StN = 0.0
    for i = 1 to length-1
        StN := StN + (1/close[i])/length
    StN := -10*log(StN)

StN(length,Smooth) =>
    pos = 0.0
    StN = SignalToNoise(length)
    SMAStN = sma(StN, Smooth)
    pos := iff(SMAStN[0] > StN[0] , -1,
    	     iff(SMAStN[0] < StN[0], 1, 0)) 
    pos

strategy(title="Combo Backtest 123 Reversal & Signal To Noise", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
lengthStN = input(title="Days", type=input.integer, defval=21, minval=2)
SmoothStN =  input(title="Smooth", type=input.integer, defval=29, minval=2)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posStN = StN(lengthStN,SmoothStN)
pos = iff(posReversal123 == 1 and posStN == 1 , 1,
	   iff(posReversal123 == -1 and posStN == -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