Indikator berganda Purata Trend Pembalikan Mengikut Strategi

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

img

Ringkasan

Strategi ini menghasilkan isyarat beli dan jual dengan menggabungkan penunjuk purata bergerak dan indeks memudahkan pasaran.

Prinsip-prinsip

Strategi ini menggunakan dua penunjuk untuk penjanaan isyarat. Yang pertama adalah penunjuk purata bergerak, khususnya gabungan garis pantas dan garis perlahan dari Osilator Stochastic. Ia menghasilkan isyarat jual apabila harga ditutup selama dua hari berturut-turut dan garis pantas berada di atas garis perlahan. Ia menghasilkan isyarat beli apabila harga ditutup selama dua hari berturut-turut dan garis pantas berada di bawah garis perlahan. Dengan memantau pembalikan harga dan hubungan antara garis pantas dan garis perlahan, ia bertujuan untuk meramalkan titik perubahan potensi trend harga.

Indikator kedua adalah indeks kemudahan pasaran. Ia mengukur kecekapan pergerakan harga dengan mengira hubungan antara julat harga dan jumlah. Apabila indeks meningkat, ia menunjukkan peningkatan kecairan pasaran dan kecekapan operasi yang lebih tinggi, menandakan pasaran yang sedang berkembang. Apabila indeks menurun, ia menunjukkan kecairan kecairan dan penurunan kecekapan, yang menunjukkan pasaran yang berkisar sisi atau pembalikan trend.

Strategi ini menjana pesanan beli dan jual sebenar apabila kedua-dua penunjuk mengeluarkan isyarat perdagangan yang serasi secara serentak.

Kelebihan

  • Keakuratan isyarat yang lebih baik dengan memerlukan pengesahan dari dua penunjuk, mengelakkan isyarat palsu
  • Gabungan penunjuk pembalikan purata dan penunjuk penilaian trend membantu mengelakkan perdagangan terhadap trend utama
  • Mengurangkan keperluan untuk penyesuaian parameter yang kerap dan kurang campur tangan manual

Risiko dan Penyelesaian

  • Sukar untuk memanfaatkan peluang pembalikan jika aliran naik atau penurunan satu arah yang berpanjangan, tidak dapat memasuki pasaran

  • Boleh melonggarkan parameter penunjuk pembalikan purata untuk meningkatkan peluang menangkap isyarat beli dan jual

  • Juga boleh meningkatkan saiz kedudukan untuk menunggang trend untuk mengimbangi keuntungan

  • Isyarat pembalikan yang tidak tepat boleh membatalkan strategi

  • Boleh mengoptimumkan parameter atau menambah tahap pengesahan isyarat untuk menapis isyarat palsu

Kawasan Peningkatan

  • Uji lebih banyak kombinasi parameter untuk mencari tetapan optimum
  • Mengkaji lebih banyak penunjuk pembalikan purata, menilai prestasi penunjuk yang berbeza
  • Memperkenalkan stop loss untuk mengehadkan kerugian perdagangan tunggal
  • Menggabungkan model pembelajaran mesin yang dilatih pada data besar untuk menjana isyarat pembalikan yang lebih tepat

Ringkasan

Strategi ini menggabungkan penunjuk pembalikan purata dan penunjuk penghakiman trend, memasuki pasaran apabila isyarat pembalikan muncul sambil menghormati arah trend utama. Menggunakan pengesahan penunjuk berganda dengan berkesan menghapuskan isyarat palsu. Walaupun risiko wujud semasa trend satu sisi yang berpanjangan dan isyarat pembalikan yang salah. Pengoptimuman lanjut boleh dilakukan melalui penyesuaian parameter, kehilangan berhenti, peningkatan penunjuk 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 lanjut