Strategi Pembalikan Momentum dengan Konfirmasi Ganda

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

img

Gambaran umum

Strategi Reversal Momentum menggabungkan sinyal pembalikan harga dan sinyal pembalikan volatilitas untuk menerapkan perdagangan tren. Ini terutama menggunakan pola 123 untuk menentukan titik pembalikan harga, sementara menggunakan volatilitas Saluran Donchian sebagai filter untuk sinyal palsu. Strategi ini cocok untuk kepemilikan jangka menengah hingga panjang. Dengan konfirmasi ganda pembalikan, dapat secara efektif menangkap titik balik pasar dan mencapai keuntungan berlebih.

Prinsip Strategi

Bagian pembalikan harga menggunakan pola 123 untuk menilai. Pola ini berarti bahwa harga dari dua garis K pertama bergerak ke arah yang berlawanan (ke atas atau ke bawah), dan garis K ketiga membalik lagi (ke bawah atau ke atas). Oleh karena itu, disebut pola 123. Ketika harga muncul dengan tiga garis K membalik, biasanya menandakan bahwa tren jangka pendek akan berubah. Untuk lebih memverifikasi keandalan pembalikan harga, strategi ini juga menggunakan indikator stokastik untuk memicu perdagangan hanya ketika indikator stokastik juga membalik (garis cepat turun atau naik dengan cepat).

Bagian pembalikan volatilitas menggunakan volatilitas Saluran Donchian. Saluran Donchian terutama mencerminkan rentang fluktuasi harga. Ketika volatilitas harga meningkat, lebar Saluran Donchian juga berkembang; ketika volatilitas harga menurun, lebar Saluran Donchian juga menyempit. Volatilitas Saluran Donchian (lebar) dapat secara efektif mengukur tingkat fluktuasi pasar dan tingkat risiko. Strategi ini menggunakan pembalikan volatilitas Saluran Donchian untuk menyaring sinyal palsu, hanya mengeluarkan sinyal perdagangan ketika volatilitas dan harga membalik pada saat yang sama, menghindari terjebak dalam operasi callback.

Singkatnya, strategi ini memastikan keandalan sinyal perdagangan dan mengendalikan risiko melalui validasi pembalikan ganda, menjadikannya strategi tren yang relatif kuat.

Keuntungan

  • Mekanisme penyaringan ganda memastikan keandalan sinyal perdagangan dan menghindari breakout palsu
  • Mengontrol risiko dan mengurangi kemungkinan kerugian
  • Cocok untuk kepemilikan jangka menengah hingga panjang, menghindari kebisingan pasar dan menangkap hasil yang berlebihan
  • Ruang pengoptimalan besar untuk parameter yang dapat disesuaikan untuk keadaan optimal
  • Gaya unik bekerja dengan baik dalam kombinasi dengan indikator teknis umum

Risiko

  • Bergantung pada optimasi parameter, parameter yang tidak tepat mempengaruhi kinerja strategi
  • Strategi stop loss perlu ditingkatkan lebih lanjut, pengendalian penarikan maksimum perlu ditingkatkan
  • Frekuensi perdagangan mungkin rendah, tidak dapat beradaptasi dengan perdagangan algoritmik frekuensi tinggi
  • Membutuhkan pemilihan produk yang cocok dan kerangka waktu, ruang lingkup aplikasi terbatas
  • Pembelajaran mesin dapat digunakan untuk menemukan parameter optimal

Arahan Optimasi

  • Meningkatkan modul stop loss adaptif untuk sangat mengurangi penarikan maksimum
  • Memperkenalkan indikator volume perdagangan untuk memastikan masuk pada volume tinggi breakout
  • Mengoptimalkan parameter untuk stabilitas terbaik
  • Coba produk dan jangka waktu yang berbeda untuk menemukan yang paling cocok
  • Cobalah menggabungkan dengan indikator atau strategi lain untuk sinergi 1+1>2

Ringkasan

Strategi Reversal Momentum mencapai pengendalian risiko yang baik melalui konfirmasi ganda pembalikan harga dan pembalikan volatilitas. Dibandingkan dengan indikator tunggal, ia menyaring banyak kebisingan dan memiliki stabilitas yang lebih baik. Dengan meningkatkan optimasi parameter, modul stop loss, memperkenalkan volume, dll., Strategi ini dapat lebih meningkatkan kualitas sinyal dan stabilitas keuntungan. Ini cocok sebagai komponen strategi jangka menengah hingga panjang untuk saham, cryptocurrency, dll., Dan dapat memperoleh hasil kelebihan yang baik ketika dikombinasikan dengan benar 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 banyak