123 Peralihan Moving Average Convergence Divergence Strategi Gabungan

Penulis:ChaoZhang, Tarikh: 2023-11-22 14:49:41
Tag:

img

Ringkasan

Strategi ini menggabungkan strategi perdagangan pembalikan 123 yang dicadangkan oleh Ulf Jensen dalam bukunya dengan Moving Average Convergence Divergence Oscillator (KST) yang dicadangkan oleh Martin Pring untuk membina strategi kuantitatif yang menghasilkan isyarat perdagangan dengan menggunakan corak pembalikan dan penunjuk osilasi trend.

Prinsip Strategi

123 Mekanisme pembentukan pembalikan

Logik teras bahagian strategi ini adalah untuk memantau sama ada harga penutupan saham telah berbalik dalam 2 hari yang lalu, khususnya:

Jika harga penutupan dalam 2 hari yang lalu berada dalam trend menurun, iaitu, harga penutupan hari sebelumnya lebih tinggi daripada yang sebelumnya; dan harga penutupan hari ini bangkit ke atas dari hari sebelumnya, yang lebih tinggi daripada harga penutupan hari sebelumnya, ia boleh dinilai sebagai pembalikan bawah dan isyarat beli dihasilkan.

Sebaliknya, jika harga penutupan dalam 2 hari yang lalu berada dalam trend menaik, iaitu harga penutupan hari sebelumnya lebih rendah daripada yang sebelumnya; dan harga penutupan hari ini jatuh dari hari sebelumnya, yang lebih rendah daripada harga penutupan hari sebelumnya, ia boleh dinilai sebagai pembalikan atas dan isyarat jual dihasilkan.

Bahagian strategi ini juga menggabungkan penunjuk Stochastic untuk menentukan sama ada ia terlalu banyak dibeli atau terlalu banyak dijual untuk menapis isyarat perdagangan bukan pembalikan.

Prinsip Penunjuk KST

Dalam penunjuk KST, ROC mewakili kadar perubahan harga, mengira ROC masing-masing 6 hari, 10 hari, 15 hari dan 20 hari, dan melakukan penjumlahan tertimbang selepas pemaluan purata bergerak parameter yang berbeza untuk membina penunjuk KST.

Apabila garis pantas melintasi di atas garis perlahan, ia dinilai sebagai bullish; apabila garis pantas melintasi di bawah garis perlahan, ia dinilai sebagai bearish.

Strategi ini menggunakan KST>0 untuk menilai bullish dan KST<0 untuk menilai bearish.

Penggabungan Isyarat

Isyarat penilaian strategi pembalikan 123 dan penunjuk KST digabungkan:

  • Jika kedua-dua isyarat adalah sama, isyarat dagangan dihasilkan dalam arah itu
  • Jika kedua-dua isyarat berbeza, tiada perdagangan berlaku

Ia dapat dilihat bahawa strategi ini secara komprehensif menggunakan dua jenis penunjuk teknikal yang berbeza, corak pembalikan dan penilaian penunjuk, dan menggabungkan kekuatan isyarat mereka untuk merancang strategi perdagangan kuantitatif yang lebih maju.

Kelebihan Strategi

  • Bahagian pembalikan dapat mengenal pasti titik perubahan dengan berkesan, dan bahagian penunjuk boleh mengesan trend, saling melengkapi
  • Penapisan dengan penunjuk berganda dapat meningkatkan kualiti isyarat dan mengurangkan isyarat palsu
  • Penyesuaian parameter KST yang fleksibel untuk pengoptimuman untuk stok kitaran yang berbeza
  • Boleh menyesuaikan diri dengan stok turun naik yang tinggi, juga boleh digunakan untuk stok yang agak stabil

Risiko Strategi

  • Risiko kegagalan pembalikan, isyarat pembalikan juga boleh menjadi pecah palsu
  • Beberapa peluang mungkin terlepas selepas penggabungan isyarat
  • Parameter KST yang tidak betul boleh mengganggu hasil
  • Apabila harga saham turun naik tajam, KST ketinggalan, isyarat yang tidak konsisten boleh muncul

Kaedah seperti pelarasan parameter, pengoptimuman logik pembalikan, pengenalan mekanisme stop loss boleh digunakan untuk mengawal risiko.

Arah pengoptimuman

  • Mengoptimumkan Parameter Stochastic
  • Mengoptimumkan parameter panjang garis KST
  • Tambah penapis jumlah dagangan atau indeks turun naik
  • Tambah pertimbangan trend untuk mengelakkan perdagangan terhadap trend
  • Memperkenalkan mekanisme stop loss

Kesimpulan

Strategi ini mengintegrasikan pelbagai jenis penunjuk teknikal yang berbeza. Melalui pengesahan berganda dan pengoptimuman gabungan, ia secara saintifik merancang strategi perdagangan kuantitatif yang agak kuat, dan ia adalah model kombinasi strategi. Prestasinya dalam perdagangan langsung masih belum disahkan lebih lanjut, tetapi dari perspektif konseptualisasi teori, ia secara komprehensif mempertimbangkan pelbagai senario, menyelesaikan batasan penunjuk tunggal, dan bernilai penyelidikan dan aplikasi lanjut.


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

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 23/03/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
// This indicator really is the KST indicator presented by Martin Pring. 
// the KST indicator is a weighted summed rate of change oscillator that 
// is designed to identify meaningful turns. Various smoothed rate of change 
// indicators can be combined to form different measurements of cycles. 
//
// 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


MROC() =>
    pos = 0.0
    xROC6 = sma(roc(close, 6), 10)
    xROC10 = sma(roc(close, 10), 10)
    xROC15 = sma(roc(close, 15), 9)
    xROC20 = sma(roc(close, 20), 15)
    nRes = xROC6 + (2 * xROC10) + (3 * xROC15) + (4 * xROC20)
    pos := iff(nRes > 0, 1,
    	     iff(nRes < 0, -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & MovROC (KST indicator)", shorttitle="Combo", overlay = true)
line1 = input(true, "---- 123 Reversal ----")
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posMROC = MROC()
pos = iff(posReversal123 == 1 and posMROC == 1 , 1,
	   iff(posReversal123 == -1 and posMROC == -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