Strategi Reversal Double Click Quant Trading

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

img

Gambaran umum

Strategi ini pertama-tama menggunakan pola 123 untuk menentukan sinyal pembalikan, dan kemudian menggabungkan Klinger Volume Oscillator sebagai filter untuk menerapkan strategi laba kuantitatif klik ganda untuk menangkap peluang pembalikan secara efisien.

Prinsip

Strategi ini terdiri dari dua bagian:

  1. pola untuk menentukan sinyal pembalikan: ketika harga penutupan terus turun selama 2 hari berturut-turut dan hari ke-3 ditutup positif, dan indikator saham berada pada tingkat rendah untuk panjang; ketika harga penutupan terus naik selama 2 hari berturut-turut dan hari ke-3 ditutup negatif, dan indikator saham berada pada tingkat tinggi untuk pendek.

  2. Bagian Klinger Volume Oscillator: Klinger Volume Oscillator menggabungkan rentang fluktuasi harga dan perubahan volume perdagangan untuk menentukan arus masuk dan arus keluar modal.

Akhirnya, strategi menggabungkan sinyal dari dua bagian di atas dan klik ganda untuk menentukan entri akhir.

Analisis Keuntungan

Keuntungan terbesar dari strategi ini adalah bahwa ia menggabungkan pola pembalikan dan indikator volume untuk secara efisien menangkap peluang pembalikan. Selain itu, dengan bantuan indikator saham, menghindari breakout palsu, dan Klinger Volume Oscillator untuk menentukan arah aliran uang riil, waktu masuk yang akurat dapat dijamin.

Analisis Risiko

Risiko utama dari strategi ini terletak pada masalah penilaian pola pembalikan dan pengaturan parameter. Karena keterlambatan sinyal pembalikan, perlu memastikan bahwa parameter ditetapkan dengan wajar untuk menghindari kehilangan waktu pembalikan terbaik. Selain itu, pola pembalikan itu sendiri mungkin gagal.

Untuk mengurangi risiko, Anda dapat mengoptimalkan parameter untuk membuat sinyal pembalikan lebih responsif dan tepat waktu. Filter lain juga dapat ditambahkan untuk memastikan jumlah dan amplitudo pembalikan yang cukup untuk menghindari penurunan yang lebih luas.

Arah Optimalisasi

Ruang pengoptimalan utama untuk strategi ini adalah dalam penyesuaian parameter dan penambahan penilaian tambahan lainnya. Secara khusus, dimungkinkan untuk memperpendek parameter indikator saham dengan tepat untuk mengoptimalkan sensitivitas diskriminasi pola 123.

Selain itu, pertimbangkan untuk menyesuaikan secara dinamis kondisi stop loss dan mengambil keuntungan untuk membuat strategi lebih mudah beradaptasi dengan perubahan pasar.

Ringkasan

Strategi ini mengintegrasikan penerapan teori pembalikan klasik dan indikator teknis volume untuk menangkap peluang pembalikan secara efisien. Ruang untuk optimasi besar dan memiliki potensi untuk meningkatkan efeknya, yang layak divalidasi dan terus dioptimalkan dalam perdagangan nyata.


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