Dual Indicator Mean Reversal Trend Mengikuti Strategi

Penulis:ChaoZhang, Tanggal: 2024-02-01 10:55:30
Tag:

img

Gambaran umum

Strategi ini menghasilkan sinyal beli dan jual dengan menggabungkan indikator rata-rata bergerak dan indeks fasilitasi pasar.

Prinsip-prinsip

Strategi ini menggunakan dua indikator untuk generasi sinyal. Yang pertama adalah indikator rata-rata bergerak, khususnya kombinasi garis cepat dan garis lambat dari Stochastic Oscillator. Ini menghasilkan sinyal jual ketika harga ditutup selama dua hari berturut-turut dan garis cepat berada di atas garis lambat. Ini menghasilkan sinyal beli ketika harga ditutup selama dua hari berturut-turut dan garis cepat berada di bawah garis lambat. Dengan memantau pembalikan harga dan hubungan antara garis cepat dan garis lambat, itu bertujuan untuk memprediksi potensi titik balik tren harga.

Indikator kedua adalah indeks fasilitasi pasar. Indikator ini mengukur efisiensi pergerakan harga dengan menghitung hubungan antara kisaran harga dan volume. Ketika indeks naik, ini menunjukkan peningkatan likuiditas pasar dan efisiensi operasi yang lebih tinggi, menandakan pasar sedang tren. Ketika indeks menurun, ini menunjukkan kemerosotan likuiditas dan penurunan efisiensi, yang menyiratkan potensi pasar berputar ke samping atau pembalikan tren.

Strategi ini menghasilkan pesanan beli dan jual yang sebenarnya ketika kedua indikator mengeluarkan sinyal perdagangan yang konsisten secara bersamaan.

Keuntungan

  • Keakuratan sinyal yang lebih baik dengan membutuhkan konfirmasi dari dua indikator, menghindari sinyal palsu
  • Kombinasi indikator reversi rata-rata dan indikator penilaian tren membantu menghindari perdagangan melawan tren utama
  • Mengurangi kebutuhan untuk pengaturan parameter yang sering dan intervensi manual yang kurang

Risiko dan Solusi

  • Sulit untuk memanfaatkan peluang pembalikan jika tren naik atau turun satu arah berkepanjangan, tidak dapat memasuki pasar

  • Dapat meredakan parameter indikator reversi rata-rata untuk meningkatkan peluang menangkap sinyal beli dan jual

  • Juga dapat meningkatkan ukuran posisi untuk naik tren untuk mengkompensasi keuntungan

  • Sinyal pembalikan yang tidak akurat dapat membatalkan strategi

  • Dapat mengoptimalkan parameter atau menambahkan tahap konfirmasi sinyal untuk menyaring sinyal palsu

Bidang Peningkatan

  • Uji lebih banyak kombinasi parameter untuk menemukan pengaturan optimal
  • Jelajahi lebih banyak indikator reversi rata-rata, evaluasi kinerja indikator yang berbeda
  • Memperkenalkan stop loss untuk membatasi kerugian perdagangan tunggal
  • Mengintegrasikan model pembelajaran mesin yang dilatih pada data besar untuk menghasilkan sinyal pembalikan yang lebih akurat

Ringkasan

Strategi ini menggabungkan indikator reversi rata-rata dan indikator penghakiman tren, memasuki pasar ketika sinyal pembalikan muncul sambil menghormati arah tren utama. Menggunakan konfirmasi indikator ganda secara efektif menghilangkan sinyal palsu. Meskipun risiko ada selama tren satu sisi yang berkepanjangan dan sinyal pembalikan yang salah. Optimasi lebih lanjut dapat dilakukan melalui penyesuaian parameter, stop loss, peningkatan indikator dan model pembelajaran mesin.


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

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 02/02/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
// The Market Facilitation Index is an indicator that relates price range to 
// volume and measures the efficency of price movement. Use the indicator to 
// determine if the market is trending. If the Market Facilitation Index increased, 
// then the market is facilitating trade and is more efficient, implying that the 
// market is trending. If the Market Facilitation Index decreased, then the market 
// is becoming less efficient, which may indicate a trading range is developing that 
// may be a trend reversal.
//
// 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


MFI(BuyZone,SellZone) =>
    pos = 0.0
    xmyVol = volume
    xmyhigh = high
    xmylow = low
    nRes = (xmyhigh - xmylow) / xmyVol * 10000
    pos := iff(nRes > BuyZone, 1,
             iff(nRes < SellZone, -1, nz(pos[1], 0)))
    pos

strategy(title="Combo Backtest 123 Reversal & Market Facilitation Index", 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, "---- MFI ----")
SellZone = input(6.2, minval=0.01, step = 0.01)
BuyZone = input(1, minval=0.01, step = 0.01)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posMFI = MFI(BuyZone,SellZone)
pos = iff(posReversal123 == 1 and posMFI == 1 , 1,
	   iff(posReversal123 == -1 and posMFI == -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