Strategi penjejakan pembalikan kuantitatif serampang dua mata


Tarikh penciptaan: 2024-02-18 10:03:14 Akhirnya diubah suai: 2024-02-18 10:03:14
Salin: 0 Bilangan klik: 533
1
fokus pada
1617
Pengikut

Strategi penjejakan pembalikan kuantitatif serampang dua mata

Gambaran keseluruhan

Strategi pengesanan reversal kuantitatif dua saluran dengan menggunakan kombinasi indikator purata bergerak yang mudah dan indikator rawak, mewujudkan strategi perdagangan garis pendek yang stabil dan cekap yang dapat menangkap pasaran yang berubah dengan cepat sambil mengurangkan kos peluang yang disebabkan oleh isyarat yang terlewat.

Prinsip Strategi

Strategi ini terdiri daripada dua bahagian: bahagian 123 bentuk berbalik dan bahagian bergerak bergerak yang menyesuaikan diri. Bagian 123 bentuk berbalik menilai apakah ada peluang berbalik dengan mengira hubungan harga penutupan dua hari perdagangan sebelumnya. Jika harga penutupan hari sebelumnya lebih rendah daripada dua hari sebelumnya dan harga penutupan hari perdagangan semasa lebih tinggi daripada hari sebelumnya, dan garis perlahan secara rawak lebih rendah daripada 50, isyarat membeli dihasilkan.

Kelebihan Strategik

Kelebihan terbesar strategi pengesanan reversal kuantitatif di bawah dua saluran adalah kombinasi penggunaan bentuk reversal dan penapisan trend, yang menjadikannya dapat menangkap perubahan pesat dan mengelakkan terkurung di pasaran yang bergolak. Sumber keuntungan adalah dua: pertama, pengenalan bentuk 123 memberi peluang untuk mengesan perubahan harga yang cepat dalam masa yang tepat, yang tidak dapat dilakukan oleh banyak strategi berat badan. Kedua, penggunaan rata-rata bergerak yang beradaptasi memastikan persatuan arah perdagangan dan trend utama, menapis kebisingan dengan berkesan, dan mengurangkan kerugian yang tidak perlu.

Risiko Strategik

Risiko utama strategi ini adalah bahawa parameter yang tidak betul dapat menyebabkan frekuensi perdagangan yang terlalu tinggi atau keupayaan pengiktirafan isyarat yang tidak mencukupi. Jika parameter bentuk 123 terlalu sensitif, ia boleh menyebabkan perdagangan yang terlalu kerap dalam keadaan yang bergolak, menghasilkan kerugian kedudukan yang lebih banyak.

Pengoptimuman Strategi

Strategi ini boleh dioptimumkan dalam beberapa aspek: pertama, menyesuaikan parameter 123 bentuk supaya ia dapat mengenali pembalikan yang jelas dan tidak terlalu sensitif untuk menghasilkan isyarat yang salah. Kedua, mengoptimumkan parameter yang menyesuaikan diri dengan purata bergerak, mencari keseimbangan terbaik antara rata-rata dan sensitif. Ketiga, anda boleh memperkenalkan strategi berhenti untuk mengawal kerugian tunggal.

ringkaskan

Strategi pengesanan reversal kuantitatif dua saluran berjaya mengintegrasikan perdagangan reversal dan penapisan trend sebagai dua bahagian penting, dan kelebihan gabungan adalah ketara. Dengan terus mengoptimumkan parameter yang ditetapkan, dan terus memperbaiki mekanisme hentikan kerugian dan kawalan risiko, strategi ini dijangka menjadi strategi perdagangan kuantitatif yang cekap dengan keuntungan yang mudah dan risiko yang boleh dikawal.

Kod sumber strategi
/*backtest
start: 2024-01-18 00:00:00
end: 2024-02-17 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 08/12/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
// Everyone wants a short-term, fast trading trend that works without large
// losses. That combination does not exist. But it is possible to have fast
// trading trends in which one must get in or out of the market quickly, but
// these have the distinct disadvantage of being whipsawed by market noise
// when the market is volatile in a sideways trending market. During these
// periods, the trader is jumping in and out of positions with no profit-making
// trend in sight. In an attempt to overcome the problem of noise and still be
// able to get closer to the actual change of the trend, Kaufman developed an
// indicator that adapts to market movement. This indicator, an adaptive moving
// average (AMA), moves very slowly when markets are moving sideways but moves
// swiftly when the markets also move swiftly, change directions or break out of
// a trading range.
//
// 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

KAMA(Length) =>
    pos = 0.0
    nAMA = 0.0
    xPrice = close
    xvnoise = abs(xPrice - xPrice[1])
    nfastend = 0.666
    nslowend = 0.0645
    reverse = input(false, title="Trade reverse")
    nsignal = abs(xPrice - xPrice[Length])
    nnoise = sum(xvnoise, Length)
    nefratio = iff(nnoise != 0, nsignal / nnoise, 0)
    nsmooth = pow(nefratio * (nfastend - nslowend) + nslowend, 2) 
    nAMA := nz(nAMA[1]) + nsmooth * (xPrice - nz(nAMA[1]))
    pos := iff(close[1] > nAMA, 1,
    	     iff(close[1] < nAMA, -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & Kaufman Moving Average Adaptive", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
LengthKAMA = input(21, minval=2)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posKAMA = KAMA(LengthKAMA)
pos = iff(posReversal123 == 1 and posKAMA == 1 , 1,
	   iff(posReversal123 == -1 and posKAMA == -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 )