Dual Oscillation Reversal Ratio Optimization Combo Strategy

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

img

Ringkasan

Strategi ini menggabungkan strategi pembalikan goyangan berganda dan strategi pengoptimuman nisbah isyarat ke bunyi untuk membentuk strategi perdagangan yang lebih kuat dan stabil.

Logika Strategi

Strategi pembalikan goyangan berganda mengira nilai K cepat dan perlahan 14 hari yang lalu untuk menentukan sama ada terdapat pembalikan dalam dua hari perdagangan berturut-turut. Jika pembalikan berlaku apabila K cepat di bawah 50, ia adalah isyarat beli. Jika K cepat di atas 50, ia adalah isyarat jual.

Strategi pengoptimuman nisbah isyarat ke bising mengira nisbah isyarat ke bising 21 hari yang lalu dan menghaluskan dengan purata bergerak mudah 29 hari. Apabila nisbah isyarat ke bising melintasi di atas purata bergerak, ia adalah isyarat jual. Apabila ia melintasi di bawah, ia adalah isyarat beli.

Akhirnya, strategi ini hanya memulakan perdagangan membeli atau menjual apabila kedua-dua strategi mengeluarkan isyarat yang sama.

Analisis Kelebihan

  1. Menggabungkan beberapa strategi boleh menghasilkan isyarat perdagangan yang lebih tepat dan mengelakkan isyarat palsu dari satu strategi.

  2. Strategi pembalikan goyangan berganda menangkap titik pembalikan trend. Pengoptimuman nisbah isyarat ke bunyi menapis isyarat palsu. Bekerja bersama, mereka dapat berdagang dengan tepat pada pembalikan.

  3. Parameter yang dioptimumkan seperti stokastik cepat / perlahan 14 hari dan tempoh isyarat ke bising 21 hari menangkap trend terkini tanpa terlalu bising.

  4. Isyarat pengesahan berganda mengurangkan risiko perdagangan dengan ketara dan mengelakkan kerugian yang tidak perlu.

Analisis Risiko

  1. Isyarat pembalikan mungkin ketinggalan dan terlepas bahagian bawah atau puncak mutlak. Parameter boleh diselaraskan untuk memendekkan ketinggalan.

  2. Pengesahan isyarat berganda mungkin kehilangan beberapa peluang perdagangan. Syarat pengesahan boleh dicairkan tetapi juga meningkatkan risiko.

  3. Parameter nisbah isyarat ke bising perlu dioptimumkan. Tempoh yang tidak betul boleh menyebabkan isyarat hilang atau salah.

  4. Pemantauan pelbagai penunjuk meningkatkan kerumitan. pengoptimuman kod dan sumber pengkomputeran perlu dipertimbangkan.

Arahan pengoptimuman

  1. Uji lebih banyak kombinasi penunjuk untuk mencari isyarat gabungan yang lebih baik, seperti MACD, RSI dll.

  2. Mengoptimumkan parameter strategi pembalikan untuk isyarat yang lebih tepat dan tepat pada masanya.

  3. Mengoptimumkan tempoh nisbah isyarat ke bunyi untuk mencari keseimbangan yang optimum.

  4. Tambah strategi stop loss untuk mengawal potensi kerugian untuk perdagangan tunggal.

  5. Pertimbangkan kaedah pembelajaran mesin untuk mengoptimumkan parameter secara automatik untuk kebolehsesuaian yang lebih baik.

Kesimpulan

Strategi ini menggabungkan pembalikan osilasi berganda dan strategi nisbah isyarat ke bunyi untuk memberikan isyarat stabil pada titik pembalikan trend. Parameter yang dioptimumkan mengurangkan isyarat palsu dengan ketara, dan pengesahan berganda mengurangkan risiko perdagangan. pengoptimuman lanjut seperti parameter penunjuk, stop loss dapat meningkatkan prestasi. Secara keseluruhan, ini adalah strategi yang stabil dengan nilai perdagangan praktikal.


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