Gabungan strategi purata bergerak berganda dan penunjuk stokastik


Tarikh penciptaan: 2024-01-12 11:16:52 Akhirnya diubah suai: 2024-01-12 11:16:52
Salin: 0 Bilangan klik: 567
1
fokus pada
1617
Pengikut

Gabungan strategi purata bergerak berganda dan penunjuk stokastik

Gambaran keseluruhan

Artikel ini membentangkan strategi perdagangan kuantitatif yang menggunakan kombinasi strategi garis rata dua dan penunjuk rawak. Strategi ini menggabungkan keupayaan trend pengesanan garis rata bergerak dan ciri overbought dan oversold penunjuk rawak untuk membentuk isyarat perdagangan.

Prinsip Strategi

Strategi ini terdiri daripada dua bahagian:

  1. Strategi dua hala

Garis purata bergerak pantas dan garis purata bergerak perlahan digunakan untuk membentuk isyarat membeli garpu emas dan isyarat menjual garpu mati. Garis purata bergerak pantas dapat menangkap trend perubahan harga dengan lebih cepat, dan garpu bergerak perlahan akan meminda isyarat palsu.

  1. Penunjuk rawak

Menggunakan ciri-ciri getaran penunjuk rawak untuk mengenal pasti keadaan overbought dan oversold. Apabila penunjuk rawak lebih tinggi daripada garis perlahan, ia adalah isyarat overbought, dan apabila penunjuk rawak lebih rendah daripada garis perlahan, ia adalah isyarat oversold.

Kedua-dua bahagian isyarat gabungan membentuk isyarat perdagangan akhir. Strategi dua garis rata menjejaki trend utama, penunjuk rawak membantu mengelakkan keadaan yang tidak baik.

Analisis kelebihan strategi

  • Kelebihan indeks gabungan dua rata-rata dan rawak, lebih stabil.
  • Pengesanan trend rata-rata, pengesahan penunjuk rawak, berkesan.
  • Parameter yang boleh disesuaikan untuk menyesuaikan diri dengan keadaan pasaran yang berbeza.

Analisis risiko strategi

  • Garis dua hala mudah menyebabkan isyarat salah.
  • Penetapan parameter penunjuk rawak yang tidak betul mungkin terlepas trend.
  • Parameter perlu diselaraskan dengan perubahan keadaan.

Anda boleh mengurangkan risiko dengan mengoptimumkan kombinasi parameter, atau anda boleh menambah stop loss untuk mengawal kerugian.

Arah pengoptimuman strategi

Strategi ini boleh dioptimumkan dengan:

  1. Uji kesan parameter rata-rata yang berbeza terhadap kesan strategi.
  2. Uji kesan parameter penunjuk rawak yang berbeza terhadap kestabilan strategi.
  3. Menambah penapis trend untuk meningkatkan peluang strategi.
  4. Menubuhkan mekanisme penghentian kerugian yang dinamik untuk mengawal kerugian.

ringkaskan

Strategi ini menggunakan strategi dua garis sejajar dan kelebihan penunjuk rawak secara komprehensif. Dengan mengikuti trend utama pasaran, anda dapat mengelakkan pembalikan yang tidak menguntungkan. Anda boleh mendapatkan kesan strategi yang lebih baik dengan mengoptimumkan kombinasi parameter.

Kod sumber strategi
/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 24/11/2020
// 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
// As the name suggests, High low bands are two bands surrounding the underlying’s 
// price. These bands are generated from the triangular moving averages calculated 
// from the underlying’s price. The triangular moving average is, in turn, shifted 
// up and down by a fixed percentage. The bands, thus formed, are termed as High 
// low bands. The main theme and concept of High low bands is based upon the triangular 
// moving average. 
//
// 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

    
HLB(Length, PercentShift) =>
    pos = 0.0
    xTMA = sma(sma(close, Length), Length)
    xHighBand = xTMA + (xTMA * PercentShift / 100)
    xLowBand = xTMA - (xTMA * PercentShift / 100)
    pos :=iff(close > xHighBand, 1,
           iff(close <xLowBand, -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & High Low Bands", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
Length_HLB = input(14, minval=1)
PercentShift = input(1, minval = 0.01, step = 0.01)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posHLB = HLB(Length_HLB, PercentShift)
pos = iff(posReversal123 == 1 and posHLB == 1 , 1,
	   iff(posReversal123 == -1 and posHLB == -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 )