Strategi gabungan dengan beberapa indikator

Penulis:ChaoZhang, Tanggal: 2023-10-07 10:25:40
Tag:

Gambaran umum

Strategi ini menggabungkan beberapa indikator teknis untuk menghasilkan sinyal perdagangan yang lebih akurat dan dapat diandalkan. Strategi ini terdiri dari dua bagian: bagian pertama menggunakan strategi pembalikan 123, dan bagian kedua menggunakan indikator TEMA.

Logika Strategi

Bagian pertama menggunakan strategi 123 reversal. Ini didasarkan pada indikator stokastik. Ketika harga penutupan menunjukkan reversal selama dua hari berturut-turut (misalnya berbalik dari naik ke turun), dan indikator stokastik menunjukkan sinyal overbought atau oversold, itu menghasilkan sinyal beli atau jual.

Secara khusus, ketika harga penutupan lebih tinggi dari hari-hari sebelumnya dan garis lambat stokastik di bawah 50, itu menghasilkan sinyal beli. Ketika harga penutupan lebih rendah dari hari-hari sebelumnya dan garis cepat stokastik di atas 50, itu menghasilkan sinyal jual.

Bagian kedua menggunakan indikator TEMA. TEMA adalah singkatan dari Triple Exponential Moving Average, dan dihitung sebagai:

TEMA = 3EMA ((CLOSE, N) - 3EMA ((EMA(CLOSE, N), N) + EMA ((EMA(EMA(CLOSE, N), N)

dimana N adalah panjang parameter. Jika harga penutupan di atas nilai TEMA, itu menghasilkan sinyal beli. Jika harga penutupan di bawah nilai TEMA, itu menghasilkan sinyal jual.

Akhirnya, sinyal dari kedua indikator dikombinasikan. Hanya ketika kedua indikator menghasilkan sinyal yang konsisten (keduanya membeli atau keduanya menjual), sinyal perdagangan yang sebenarnya dihasilkan.

Keuntungan

  • Menggabungkan beberapa indikator membantu menyaring beberapa sinyal yang salah dan meningkatkan kualitas sinyal.
  • Strategi pembalikan menghindari mengejar harga tinggi dan penjualan panik dengan bereaksi terhadap pembalikan harga yang sebenarnya.
  • TEMA's multiple smoothing mengurangi kebisingan dan menghasilkan sinyal yang lebih dapat diandalkan.
  • Menggabungkan dua jenis indikator yang berbeda sebagian besar memastikan keandalan sinyal perdagangan.

Risiko dan Peningkatan

  • Strategi pembalikan memiliki risiko yang melekat dari kehilangan tren kenaikan utama di pasar bull. Parameter penyesuaian halus dapat mengurangi kemungkinan kehilangan.
  • Pengaturan parameter TEMA dapat mengoptimalkan sensitivitas indikator.
  • Jika parameter tidak diatur dengan benar, kedua indikator dapat menghasilkan terlalu sedikit sinyal.
  • Menambahkan filter untuk menonaktifkan strategi di lingkungan pasar tertentu dapat membantu mengendalikan risiko.

Ringkasan

Strategi ini meningkatkan kualitas sinyal melalui kombinasi yang masuk akal dari beberapa indikator, menjadikannya strategi perdagangan kuantitatif yang sangat efektif.


/*backtest
start: 2023-09-29 00:00:00
end: 2023-10-06 00:00:00
period: 45m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 24/11/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
// This study plots the TEMA1 indicator. TEMA1 ia s triple MA (Moving Average),
// and is calculated as 3*MA - (3*MA(MA)) + (MA(MA(MA)))
//
// 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


TEMA(Length) =>
    pos = 0.0
    xPrice = close
    xEMA1 = ema(xPrice, Length)
    xEMA2 = ema(xEMA1, Length)
    xEMA3 = ema(xEMA2, Length)
    nRes = 3 * xEMA1 - 3 * xEMA2 + xEMA3
    pos := iff(close > nRes, 1,
             iff(close < nRes, -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & TEMA1", 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, "---- TEMA1 ----")
LengthTEMA = input(26, minval=1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posT3A = TEMA(LengthTEMA)
pos = iff(posReversal123 == 1 and posT3A == 1 , 1,
	   iff(posReversal123 == -1 and posT3A == -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