Kombo Strategi Pelacakan Tren Kuantitatif

Penulis:ChaoZhangTanggal: 2024-02-27 15:54:24
Tag:

img

Gambaran umum

Ide inti dari strategi ini adalah untuk menggabungkan strategi pembalikan 123 dan indikator osilator pelangi untuk mencapai pelacakan tren ganda dan meningkatkan tingkat kemenangan strategi.

Prinsip-prinsip

Strategi ini terdiri dari dua bagian:

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

  2. Indikator Osilator Pelangi: Indikator ini mencerminkan tingkat penyimpangan harga relatif terhadap rata-rata bergerak. Ketika indikator lebih tinggi dari 80, ini menunjukkan bahwa pasar cenderung tidak stabil. Ketika indikator lebih rendah dari 20, ini menunjukkan bahwa pasar cenderung berbalik.

Strategi ini membuka posisi ketika kedua sinyal panjang dan pendek muncul, jika tidak posisi rata.

Analisis Keuntungan

Keuntungan dari strategi ini adalah:

  1. Filter ganda meningkatkan kualitas sinyal dan mengurangi kesalahan penilaian.
  2. Penyesuaian posisi dinamis mengurangi kerugian di pasar satu arah.
  3. Mengintegrasikan indikator jangka pendek dan jangka menengah untuk meningkatkan stabilitas.

Analisis Risiko

Risiko dari strategi ini meliputi:

  1. Optimasi parameter yang tidak tepat dapat menyebabkan overfit.
  2. Pembukaan ganda meningkatkan biaya perdagangan.
  3. Stop loss point rentan ketika harga berfluktuasi dengan keras.

Risiko ini dapat dikurangi dengan menyesuaikan parameter, mengoptimalkan manajemen posisi, dan mengatur stop loss secara wajar.

Arahan Optimasi

Strategi ini dapat dioptimalkan dalam aspek berikut:

  1. Optimalkan parameter untuk menemukan kombinasi parameter terbaik.
  2. Tambahkan modul manajemen posisi untuk menyesuaikan posisi secara dinamis berdasarkan volatilitas dan penarikan.
  3. Tingkatkan modul stop loss dan atur stop loss bergerak yang wajar.
  4. Meningkatkan algoritma pembelajaran mesin untuk membantu menilai titik infleksi.

Kesimpulan

Strategi ini mengintegrasikan strategi pembalikan 123 dan indikator osilator pelangi untuk mencapai pelacakan tren ganda.


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