Kombo Strategi Pengesanan Trend Kuantitatif

Penulis:ChaoZhang, Tarikh: 2024-02-27 15:54:24
Tag:

img

Ringkasan

Idea teras strategi ini adalah untuk menggabungkan strategi pembalikan 123 dan penunjuk osilator pelangi untuk mencapai penjejakan trend berganda dan meningkatkan kadar kemenangan strategi. Dengan mengesan trend harga jangka pendek dan sederhana secara dinamik, strategi ini menyesuaikan kedudukan untuk mencapai pulangan yang melebihi penanda aras.

Prinsip-prinsip

Strategi ini terdiri daripada dua bahagian:

  1. 123 Strategi Pembalikan: Pergi panjang jika harga penutupan menurun selama dua hari sebelumnya dan meningkat hari ini, dan garis Slow K 9 hari di bawah 50; Pergi pendek jika harga penutupan meningkat selama dua hari sebelumnya dan jatuh hari ini, dan garis Fast K 9 hari di atas 50.

  2. Indikator Ossilator Pelangi: Indikator ini mencerminkan tahap penyimpangan harga berbanding dengan purata bergerak. Apabila indikator lebih tinggi daripada 80, ia menunjukkan bahawa pasaran cenderung tidak stabil. Apabila indikator lebih rendah daripada 20, ia menunjukkan bahawa pasaran cenderung berbalik.

Strategi ini membuka kedudukan apabila kedua-dua isyarat panjang dan pendek muncul, sebaliknya meratakan kedudukan.

Analisis Kelebihan

Kelebihan strategi ini ialah:

  1. Penapis berganda meningkatkan kualiti isyarat dan mengurangkan salah penilaian.
  2. Penyesuaian kedudukan dinamik mengurangkan kerugian di pasaran satu hala.
  3. Mengintegrasikan penunjuk jangka pendek dan sederhana untuk meningkatkan kestabilan.

Analisis Risiko

Risiko strategi ini termasuk:

  1. Pengoptimuman parameter yang tidak betul boleh menyebabkan pemasangan berlebihan.
  2. Pembukaan berganda meningkatkan kos perdagangan.
  3. Titik stop loss mudah terdedah apabila harga turun naik dengan ganas.

Risiko ini boleh dikurangkan dengan menyesuaikan parameter, mengoptimumkan pengurusan kedudukan, dan menetapkan stop loss dengan munasabah.

Arahan pengoptimuman

Strategi ini boleh dioptimumkan dalam aspek berikut:

  1. Mengoptimumkan parameter untuk mencari kombinasi parameter terbaik.
  2. Tambah modul pengurusan kedudukan untuk menyesuaikan kedudukan secara dinamik berdasarkan turun naik dan pengeluaran.
  3. Tingkatkan modul stop loss dan tetapkan stop loss bergerak yang munasabah.
  4. Tingkatkan algoritma pembelajaran mesin untuk membantu menilai titik perubahan.

Kesimpulan

Strategi ini mengintegrasikan strategi pembalikan 123 dan penunjuk osilator pelangi untuk mencapai penjejakan trend berganda. Walaupun mengekalkan kestabilan yang tinggi, ia berpotensi untuk pulangan yang berlebihan. Pengoptimuman lanjut boleh dilakukan untuk meningkatkan keuntungan strategi.


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

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 25/05/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
// Ever since the people concluded that stock market price movements are not 
// random or chaotic, but follow specific trends that can be forecasted, they 
// tried to develop different tools or procedures that could help them identify 
// those trends. And one of those financial indicators is the Rainbow Oscillator 
// Indicator. The Rainbow Oscillator Indicator is relatively new, originally 
// introduced in 1997, and it is used to forecast the changes of trend direction.
// As market prices go up and down, the oscillator appears as a direction of the 
// trend, but also as the safety of the market and the depth of that trend. As 
// the rainbow grows in width, the current trend gives signs of continuity, and 
// if the value of the oscillator goes beyond 80, the market becomes more and more 
// unstable, being prone to a sudden reversal. When prices move towards the rainbow 
// and the oscillator becomes more and more flat, the market tends to remain more 
// stable and the bandwidth decreases. Still, if the oscillator value goes below 20, 
// the market is again, prone to sudden reversals. The safest bandwidth value where 
// the market is stable is between 20 and 80, in the Rainbow Oscillator indicator value. 
// The depth a certain price has on a chart and into the rainbow can be used to judge 
// the strength of the move.
//
// 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


RO(Length, LengthHHLL) =>
    pos = 0.0
    xMA1 = sma(close, Length)
    xMA2 = sma(xMA1, Length)
    xMA3 = sma(xMA2, Length)
    xMA4 = sma(xMA3, Length)
    xMA5 = sma(xMA4, Length)
    xMA6 = sma(xMA5, Length)
    xMA7 = sma(xMA6, Length)
    xMA8 = sma(xMA7, Length)
    xMA9 = sma(xMA8, Length)
    xMA10 = sma(xMA9, Length)
    xHH = highest(close, LengthHHLL)
    xLL = lowest(close, LengthHHLL)
    xHHMAs = max(xMA1,max(xMA2,max(xMA3,max(xMA4,max(xMA5,max(xMA6,max(xMA7,max(xMA8,max(xMA9,xMA10)))))))))
    xLLMAs = min(xMA1,min(xMA2,min(xMA3,min(xMA4,min(xMA5,min(xMA6,min(xMA7,min(xMA8,min(xMA9,xMA10)))))))))
    xRBO = 100 * ((close - ((xMA1+xMA2+xMA3+xMA4+xMA5+xMA6+xMA7+xMA8+xMA9+xMA10) / 10)) / (xHH - xLL))
    xRB = 100 * ((xHHMAs - xLLMAs) / (xHH - xLL))
    pos:= iff(xRBO > 0, 1,
           iff(xRBO < 0, -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & Rainbow Oscillator", 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)
//-------------------------
line2 = input(true, "---- Rainbow Oscillator ----")
LengthRO = input(2, minval=1)
LengthHHLL = input(10, minval=2, title="HHV/LLV Lookback")
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posRO = RO(LengthRO, LengthHHLL)
pos = iff(posReversal123 == 1 and posRO == 1 , 1,
	   iff(posReversal123 == -1 and posRO == -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