Strategi Pembalikan Momentum dengan Pengesahan Ganda

Penulis:ChaoZhang, Tarikh: 2024-02-20 15:27:02
Tag:

img

Ringkasan

Strategi Momentum Pembalikan menggabungkan isyarat pembalikan harga dan isyarat pembalikan turun naik untuk melaksanakan perdagangan trend. Ia terutamanya menggunakan corak 123 untuk menentukan titik pembalikan harga, sementara menggunakan turun naik Saluran Donchian sebagai penapis untuk isyarat palsu. Strategi ini sesuai untuk pegangan jangka sederhana hingga panjang. Dengan pengesahan dua kali lipat pembalikan, ia dapat menangkap titik perubahan pasaran dengan berkesan dan mencapai pulangan yang berlebihan.

Prinsip Strategi

Bahagian pembalikan harga menggunakan corak 123 untuk menilai. Corak ini bermaksud bahawa harga dua K-garis pertama bergerak ke arah yang bertentangan (ke atas atau ke bawah), dan K-garis ketiga berbalik lagi (ke bawah atau ke atas). Oleh itu, ia dipanggil corak 123. Apabila harga muncul dengan tiga K-garis membalik, ia biasanya menandakan bahawa trend jangka pendek akan bertukar. Untuk mengesahkan kebolehpercayaan pembalikan harga, strategi ini juga menggunakan penunjuk stokastik untuk mencetuskan perdagangan hanya apabila penunjuk stokastik juga berbalik (garis cepat jatuh atau meningkat dengan cepat).

Bahagian pembalikan turun naik menggunakan turun naik Saluran Donchian. Saluran Donchian terutamanya mencerminkan julat turun naik harga. Apabila turun naik harga meningkat, lebar Saluran Donchian juga berkembang; apabila turun naik harga menurun, lebar Saluran Donchian juga menyempit. Volatiliti Saluran Donchian (lebar) dapat mengukur tahap turun naik pasaran dan tahap risiko dengan berkesan. Strategi ini menggunakan pembalikan turun naik Saluran Donchian untuk menapis isyarat palsu, hanya mengeluarkan isyarat perdagangan apabila turun naik dan harga berbalik pada masa yang sama, mengelakkan terperangkap dalam operasi panggilan balik.

Ringkasnya, strategi ini memastikan kebolehpercayaan isyarat perdagangan dan mengawal risiko melalui pengesahan pembalikan dua, menjadikannya strategi trend yang agak kukuh.

Kelebihan

  • Mekanisme penapisan berganda memastikan kebolehpercayaan isyarat dagangan dan mengelakkan pecah palsu
  • Mengendalikan risiko dan mengurangkan kemungkinan kerugian
  • Sesuai untuk pegangan jangka sederhana hingga panjang, mengelakkan bunyi pasaran dan menangkap pulangan yang berlebihan
  • Ruang pengoptimuman yang besar untuk parameter yang boleh diselaraskan untuk keadaan optimum
  • Gaya unik berfungsi dengan baik dalam kombinasi dengan penunjuk teknikal yang sama

Risiko

  • Bergantung pada pengoptimuman parameter, parameter yang tidak betul mempengaruhi prestasi strategi
  • Strategi stop loss perlu ditingkatkan lagi, kawalan pengeluaran maksimum perlu ditingkatkan
  • Frekuensi perdagangan mungkin rendah, tidak dapat disesuaikan dengan perdagangan algoritma frekuensi tinggi
  • Menghendaki pemilihan produk dan jangka masa yang sesuai, skop aplikasi yang terhad
  • Pembelajaran mesin boleh digunakan untuk mencari parameter optimum

Arahan pengoptimuman

  • Tingkatkan modul stop loss adaptif untuk mengurangkan pengeluaran maksimum
  • Memperkenalkan penunjuk jumlah dagangan untuk memastikan masuk pada pecah jumlah yang tinggi
  • Mengoptimumkan parameter untuk kestabilan terbaik
  • Cuba produk dan jangka masa yang berbeza untuk mencari yang paling sesuai
  • Cuba menggabungkan dengan penunjuk atau strategi lain untuk sinergi 1+1>2

Ringkasan

Strategi Momentum Pembalikan mencapai kawalan risiko yang baik melalui pengesahan berganda pembalikan harga dan pembalikan turun naik. Berbanding dengan penunjuk tunggal, ia menapis banyak bunyi bising dan mempunyai kestabilan yang lebih baik. Dengan meningkatkan pengoptimuman parameter, modul stop loss, memperkenalkan jumlah, dan lain-lain, strategi ini dapat meningkatkan kualiti isyarat dan kestabilan keuntungan. Ia sesuai sebagai komponen strategi jangka menengah hingga panjang untuk saham, mata wang kripto, dan lain-lain, dan dapat memperoleh pulangan berlebihan yang baik apabila digabungkan dengan baik dengan modul lain.


/*backtest
start: 2024-01-20 00:00:00
end: 2024-02-19 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 06/03/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 Donchian Channel was developed by Richard Donchian and it could be compared 
// to the Bollinger Bands. When it comes to volatility analysis, the Donchian Channel 
// Width was created in the same way as the Bollinger Bandwidth technical indicator was.
//
// As was mentioned above the Donchian Channel Width is used in technical analysis to measure 
// volatility. Volatility is one of the most important parameters in technical analysis. 
// A price trend is not just about a price change. It is also about volume traded during this 
// price change and volatility of a this price change. When a technical analyst focuses his/her 
// attention solely on price analysis by ignoring volume and volatility, he/she only sees a part 
// of a complete picture only. This could lead to a situation when a trader may miss something and 
// lose money. Lets take a look at a simple example how volatility may help a trader:
//
//    Most of the price based technical indicators are lagging indicators.
//    When price moves on low volatility, it takes time for a price trend to change its direction and 
// it could be ok to have some lag in an indicator.
//    When price moves on high volatility, a price trend changes its direction faster and stronger. 
// An indicator's lag acceptable under low volatility could be financially suicidal now - Buy/Sell signals could be generated when it is already too late.
//
// Another use of volatility - very popular one - it is to adapt a stop loss strategy to it:
//    Smaller stop-loss recommended in low volatility periods. If it is not done, a stop-loss could 
// be generated when it is too late.
//    Bigger stop-loss recommended in high volatility periods. If it is not done, a stop-loss could 
// be triggered too often and you may miss good trades.
//
// 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

DCW(length, smoothe) =>
    pos = 0.0
    xUpper = highest(high, length)
    xLower = lowest(low, length)
    xDonchianWidth = xUpper - xLower
    xSmoothed = sma(xDonchianWidth, smoothe)
    pos := iff(xDonchianWidth > xSmoothed, -1,
              iff(xDonchianWidth < xSmoothed, 1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & Donchian Channel Width", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
LengthDCW = input(20, minval=1)
SmootheSCW = input(22, minval=1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posDCW = DCW(LengthDCW, SmootheSCW)
pos = iff(posReversal123 == 1 and posDCW == 1 , 1,
	   iff(posReversal123 == -1 and posDCW == -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