Strategi perdagangan gabungan pelbagai faktor


Tarikh penciptaan: 2023-09-12 16:05:10 Akhirnya diubah suai: 2023-09-12 16:05:10
Salin: 0 Bilangan klik: 701
1
fokus pada
1617
Pengikut

Strategi ini membentuk strategi perdagangan kuantitatif yang komprehensif dengan menggabungkan penggunaan pelbagai jenis penunjuk teknikal. Strategi ini menyatukan kelebihan pelbagai faktor untuk meningkatkan ketepatan keputusan perdagangan.

Prinsip-prinsip strategi:

  1. Hitung 123 indikator pembalikan untuk menentukan sama ada harga telah mengalami pembalikan tiga hari.

  2. Mengira Indeks Elder Bearish untuk menentukan sama ada harga telah terjual lebihan.

  3. Apabila kedua-duanya menghantar isyarat beli pada masa yang sama, lakukan operasi berbilang. Apabila kedua-duanya menghantar isyarat jual pada masa yang sama, lakukan operasi kosong.

  4. Dengan pengesahan faktor penunjuk, anda dapat menyaring dengan berkesan beberapa isyarat perdagangan bising.

  5. Gabungan pelbagai jenis penunjuk dapat meningkatkan penilaian keadaan pasaran.

Kelebihan strategi ini:

  1. Pengesahan gabungan pelbagai faktor dapat mengurangkan kemungkinan transaksi yang salah.

  2. Meningkatkan keupayaan untuk mengenal pasti keadaan pasaran yang kompleks.

  3. Kombinasi parameter strategi adalah lebih sukar untuk dioptimumkan dan mempunyai kelebihan tertentu.

Risiko strategi ini:

  1. Kombinasi pelbagai indikator memerlukan masa untuk mengoptimumkan parameter untuk mencapai perlawanan terbaik.

  2. Terdapat kemungkinan terdapat ketidakserasian isyarat antara pelbagai petunjuk.

  3. Strategi gabungan mungkin kurang stabil secara keseluruhan daripada strategi satu indikator.

Kesimpulannya, strategi ini boleh meningkatkan ketepatan keputusan dengan menggabungkan kelebihan pelbagai faktor. Tetapi perlu berhati-hati dengan masalah pencocokan antara pelbagai petunjuk, dengan pengoptimuman parameter yang ketat untuk mendapatkan pulangan tambahan yang stabil.

Kod sumber strategi
/*backtest
start: 2022-09-05 00:00:00
end: 2023-02-03 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 27/05/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
// Developed by Dr Alexander Elder, the Elder-ray indicator measures buying 
// and selling pressure in the market. The Elder-ray is often used as part 
// of the Triple Screen trading system but may also be used on its own.
// Dr Elder uses a 13-day exponential moving average (EMA) to indicate the 
// market consensus of value. Bull Power measures the ability of buyers to 
// drive prices above the consensus of value. Bear Power reflects the ability 
// of sellers to drive prices below the average consensus of value.
// Bull Power is calculated by subtracting the 13-day EMA from the day's High. 
// Bear power subtracts the 13-day EMA from the day's Low.
// You can use in the xPrice any series: Open, High, Low, Close, HL2, HLC3, OHLC4 and ect...
//
// 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

BP(Trigger,Length) =>
    pos = 0
    DayHigh = 0.0
    xPrice = close
    xMA = ema(xPrice,Length)
    DayHigh := iff(dayofmonth != dayofmonth[1], high, max(high, nz(DayHigh[1])))
    nRes = DayHigh - xMA
    pos := iff(nRes > Trigger, 1,
    	     iff(nRes < Trigger, -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & Elder Ray (Bear Power) ", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
LengthBP = input(13, minval=1)
Trigger = input(0)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posBP = BP(Trigger,LengthBP)
pos = iff(posReversal123 == 1 and posBP == 1 , 1,
	   iff(posReversal123 == -1 and posBP == -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 )