Quant Trading Double Click Reversal Strategi

Penulis:ChaoZhang, Tarikh: 2023-11-22 10:03:04
Tag:

img

Ringkasan

Strategi ini mula-mula menggunakan corak 123 untuk menentukan isyarat pembalikan, dan kemudian menggabungkan Klinger Volume Oscillator sebagai penapis untuk melaksanakan strategi keuntungan kuantitatif klik dua kali untuk menangkap peluang pembalikan dengan cekap.

Prinsip

Strategi ini terdiri daripada dua bahagian:

  1. corak untuk menentukan isyarat pembalikan: apabila harga penutupan terus turun selama 2 hari berturut-turut dan hari ke-3 ditutup positif, dan penunjuk stok berada pada tahap rendah untuk lama; apabila harga penutupan terus meningkat selama 2 hari berturut-turut dan hari ke-3 ditutup negatif, dan penunjuk stok berada pada tahap tinggi untuk pendek.

  2. Seksyen Klinger Volume Oscillator: Klinger Volume Oscillator menggabungkan julat turun naik harga dan perubahan jumlah dagangan untuk menentukan aliran masuk dan keluar modal. Apabila oscillator jumlah melintasi di atas nilai purata, ia adalah isyarat panjang; apabila ia melintasi di bawah nilai purata, ia adalah isyarat pendek.

Akhirnya, strategi menggabungkan isyarat dari dua bahagian di atas dan klik dua kali untuk menentukan entri akhir.

Analisis Kelebihan

Kelebihan terbesar strategi ini ialah ia menggabungkan corak pembalikan dan penunjuk jumlah untuk menangkap peluang pembalikan dengan cekap. Di samping itu, dengan bantuan penunjuk stok, mengelakkan pecah palsu, dan Klinger Volume Oscillator untuk menentukan arah aliran wang sebenar, masa kemasukan yang tepat dapat dipastikan.

Analisis Risiko

Risiko utama strategi ini terletak pada masalah penghakiman corak pembalikan dan penetapan parameter. Oleh kerana kelewatan dalam isyarat pembalikan, ia perlu memastikan bahawa parameter ditetapkan dengan munasabah untuk mengelakkan kehilangan masa pembalikan yang terbaik. Di samping itu, corak pembalikan itu sendiri mungkin gagal.

Untuk mengurangkan risiko, anda boleh mengoptimumkan parameter untuk membuat isyarat pembalikan lebih responsif dan tepat pada masanya. Penapis lain juga boleh ditambah untuk memastikan jumlah dan amplitud pembalikan yang mencukupi untuk mengelakkan penurunan yang meluas.

Arah pengoptimuman

Ruang pengoptimuman utama untuk strategi ini adalah dalam penyesuaian parameter dan penambahan pertimbangan tambahan yang lain. Khususnya, adalah mungkin untuk memendekkan parameter penunjuk stok dengan tepat untuk mengoptimumkan kepekaan diskriminasi corak 123. Ia juga mungkin untuk digabungkan dengan penunjuk arus perdana dan corak pada masa ini, seperti menambahkan salib emas MACD dan salib maut, atau bahagian atas / bawah ganda dan pertimbangan lain.

Di samping itu, pertimbangkan penyesuaian stop loss secara dinamik dan mengambil syarat keuntungan untuk menjadikan strategi lebih mudah disesuaikan dengan perubahan pasaran.

Ringkasan

Strategi ini mengintegrasikan penerapan teori pembalikan klasik dan penunjuk teknikal jumlah untuk menangkap peluang pembalikan dengan cekap. Ruang untuk pengoptimuman adalah besar dan mempunyai potensi untuk meningkatkan lagi kesan, yang bernilai disahkan dan terus mengoptimumkan dalam perdagangan sebenar.


/*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/12/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 Klinger Oscillator (KO) was developed by Stephen J. Klinger. Learning 
// from prior research on volume by such well-known technicians as Joseph Granville, 
// Larry Williams, and Marc Chaikin, Mr. Klinger set out to develop a volume-based 
// indicator to help in both short- and long-term analysis.
// The KO was developed with two seemingly opposite goals in mind: to be sensitive 
// enough to signal short-term tops and bottoms, yet accurate enough to reflect the 
// long-term flow of money into and out of a security.
// The KO is based on the following tenets:
// Price range (i.e. High - Low) is a measure of movement and volume is the force behind 
// the movement. The sum of High + Low + Close defines a trend. Accumulation occurs when 
// today's sum is greater than the previous day's. Conversely, distribution occurs when 
// today's sum is less than the previous day's. When the sums are equal, the existing trend 
// is maintained.
// Volume produces continuous intra-day changes in price reflecting buying and selling pressure. 
// The KO quantifies the difference between the number of shares being accumulated and distributed 
// each day as "volume force". A strong, rising volume force should accompany an uptrend and then 
// gradually contract over time during the latter stages of the uptrend and the early stages of 
// the following downtrend. This should be followed by a rising volume force reflecting some 
// accumulation before a bottom develops.
//
// 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

KVO(TrigLen,FastX,SlowX) =>
    pos = 0.0
    xTrend = iff(hlc3 > hlc3[1], volume * 100, -volume * 100)
    xFast = ema(xTrend, FastX)
    xSlow = ema(xTrend, SlowX)
    xKVO = xFast - xSlow
    xTrigger = ema(xKVO, TrigLen)
    pos := iff(xKVO > xTrigger, 1,
    	     iff(xKVO < xTrigger, -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & Klinger Volume Oscillator", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
TrigLen = input(13, minval=1)
FastX = input(34, minval=1)
SlowX = input(55, minval=1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posKVO = KVO(TrigLen,FastX,SlowX)
pos = iff(posReversal123 == 1 and posKVO == 1 , 1,
	   iff(posReversal123 == -1 and posKVO == -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