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.
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.
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 )