Strategi dagangan kuantitatif menyepadukan pembalikan dan purata bergerak masa hadapan


Tarikh penciptaan: 2023-12-08 12:00:35 Akhirnya diubah suai: 2023-12-08 12:00:35
Salin: 0 Bilangan klik: 624
1
fokus pada
1621
Pengikut

Strategi dagangan kuantitatif menyepadukan pembalikan dan purata bergerak masa hadapan

Gambaran keseluruhan

Strategi ini menggabungkan strategi 123 berbalik dan strategi rata-rata bergerak ke masa depan, mewujudkan strategi perdagangan kuantitatif yang melakukan entrada atau salida apabila kedua-dua strategi mengeluarkan isyarat pada masa yang sama. Strategi ini digunakan terutamanya dalam pasaran niaga hadapan indeks saham, dengan menangkap gabungan isyarat berbalik jangka pendek dan isyarat trend jangka menengah, mewujudkan perdagangan memegang kedudukan jangka menengah.

Prinsip Strategi

123 Strategi berbalik

Strategi 123 berbalik berasal dari buku bagaimana saya menggandakan wang saya tiga kali ganda di pasaran niaga hadapan. Strategi ini melakukan lebih banyak apabila harga penutupan berbalik dua hari berturut-turut dan garis K perlahan berada di bawah 50 pada hari ke-9; kosong apabila harga penutupan berbalik dua hari berturut-turut dan garis K cepat berada di atas 50 pada hari ke-9.

Strategi untuk maju ke hadapan

Garis Demarkasi Masa Depan (FLD) adalah satu strategi trend-following yang berdasarkan pada peraturan berkala pergerakan harga. Garis FLD adalah berdasarkan pada harga yang bergerak rata-rata setengah kitaran ke masa depan, dan menghasilkan isyarat perdagangan apabila ia melintasi garis FLD.

Analisis kelebihan

Strategi ini menggabungkan strategi pembalikan dan strategi pemantauan trend, yang dapat menangkap peluang pembalikan pasaran jangka pendek dan arah trend jangka panjang, untuk mencapai perdagangan kuantitatif dalam skala masa yang pelbagai. Strategi pembalikan menyediakan peluang keuntungan jangka pendek, dan bahagian pemantauan trend dapat memastikan arah perdagangan keseluruhan selaras dengan trend, dan mengawal risiko perdagangan dengan berkesan.

Analisis risiko

Strategi ini kebanyakannya berhadapan dengan risiko pelanggaran palsu isyarat pembalikan dan kesalahan penghakiman garisan FLD. Bagi yang pertama, anda boleh mengesahkan isyarat pembalikan dengan menyesuaikan parameter, atau menambah petunjuk penghakiman tambahan untuk meningkatkan ketepatan penghakiman. Bagi yang kedua, anda perlu mengoptimumkan parameter untuk memastikan ia dapat menggambarkan peraturan band pasaran dengan lebih tepat. Selain itu, anda juga perlu berjaga-jaga terhadap kemungkinan pembalikan garisan FLD semasa trend kitaran besar.

Arah pengoptimuman

  1. Peningkatan strategi pembalikan, penapisan isyarat pengesahan dengan penunjuk lain, dan penurunan kebarangkalian penembusan palsu
  2. Bandingkan parameter baris FLD yang berbeza untuk melihat apakah ia lebih tepat menggambarkan hukum kitaran
  3. Tambah logik stop loss untuk mengawal risiko kerugian tunggal
  4. Uji kesan parameter pelbagai varieti

ringkaskan

Strategi ini menggabungkan falsafah perdagangan yang berbalik dan trend, untuk mencapai keuntungan yang stabil dalam jangka masa pendek dan sederhana. Di masa depan, ia boleh dioptimumkan dari segi ketepatan isyarat pengesahan, ketepatan menggambarkan trend, dan mengawal risiko, yang menjadikan parameter strategi lebih luas dan lebih stabil.

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

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 28/08/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
//  An FLD is a line that is plotted on the same scale as the price and is in fact the 
//  price itself displaced to the right (into the future) by (approximately) half the 
//  wavelength of the cycle for which the FLD is plotted. There are three FLD's that can be 
//  plotted for each cycle:
//    An FLD based on the median price.
//    An FLD based on the high price.
//    An FLD based on the low price.
//
// 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


FLD(Period,src) =>
    pos = 0
    pos := iff(src[Period] < close , 1,
             iff(src[Period] > close, -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & FLD's - Future Lines of Demarcation", shorttitle="Combo", overlay = true)
Length = input(15, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
Period = input(title="Period", defval=40)
src = input(title="Source", type=input.source, defval=close)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posFLD = FLD(Period,src)
pos = iff(posReversal123 == 1 and posFLD == 1 , 1,
	   iff(posReversal123 == -1 and posFLD == -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 )