Strategi Mengikuti Trend Palang Emas EMA Berganda dan Palang Kematian


Tarikh penciptaan: 2024-02-29 11:45:42 Akhirnya diubah suai: 2024-02-29 11:45:42
Salin: 0 Bilangan klik: 644
1
fokus pada
1617
Pengikut

Strategi Mengikuti Trend Palang Emas EMA Berganda dan Palang Kematian

Gambaran keseluruhan

Strategi pengesanan trend EMA berganda adalah strategi perdagangan kuantitatif yang menggunakan indikator EMA berganda untuk menentukan arah trend harga. Strategi ini menentukan trend harga dengan mengira dua set parameter EMA yang berbeza, menggabungkan sinyal EMA berganda dan yang mati. Ia menghasilkan isyarat beli apabila EMA yang lebih pendek menembusi EMA yang lebih panjang; ia menghasilkan isyarat jual apabila EMA yang lebih pendek menembusi EMA yang lebih panjang.

Prinsip Strategi

Indeks utama strategi ini adalah dua set EMA, termasuk satu set EMA1 dengan tempoh yang lebih lama dan satu set EMA2 dengan tempoh yang lebih pendek. Strategi ini mengira kedua-dua set EMA dengan garis 4 jam sebagai tempoh asas.

Apabila tempoh yang lebih pendek EMA2 melalui tempoh yang lebih lama EMA1, menghasilkan isyarat beli. Ini menunjukkan bahawa trend jangka pendek harga menjadi kuat dan mula memasuki pergerakan menaik. Apabila tempoh yang lebih pendek EMA2 melalui tempoh yang lebih lama EMA1, menghasilkan isyarat jual. Ini menunjukkan bahawa trend kenaikan jangka pendek harga terputus dan mula memasuki pergerakan menurun.

Untuk menyaring isyarat kesilapan, strategi menetapkan dua set penunjuk garpu emas dan garpu mati. Hanya apabila kedua-dua set penunjuk memberi isyarat pada masa yang sama, ia akan mencetuskan pembelian dan penjualan yang sesuai. Ini dapat mengurangkan perdagangan yang salah akibat pergerakan harga.

Analisis kelebihan

  • Dengan menggunakan struktur dua EMA, perubahan dalam trend harga jangka pendek dapat ditangkap dengan berkesan, dan keputusan mengenai trend dapat dibuat.
  • Menambah penapis untuk kedua-dua set penunjuk Gold Fork Dead Fork dapat mengurangkan isyarat ralat dan mengelakkan perdagangan yang tidak perlu disebabkan oleh pergerakan harga.
  • Indikator yang dikira pada tahap 4 jam dapat menangani turun naik harga yang kerap berlaku.
  • Struktur strategi mudah difahami, mudah difahami, sesuai untuk aplikasi perdagangan kuantitatif.

Analisis risiko

  • Struktur dua EMA kurang berkesan dalam menilai keadaan pengiraan. Jika terdapat pengiraan yang lama, ia akan menghasilkan isyarat yang salah.
  • Indikator peringkat 4 jam tidak cukup sensitif terhadap tindak balas kepada peristiwa yang mengejutkan. Mesej kejutan yang penting boleh menyebabkan keadaan yang besar dalam masa 4 jam dan tidak dapat mengawal risiko dengan berkesan.
  • Strategi hanya berdasarkan kepada petunjuk teknikal dan tidak menggabungkan maklumat asas. Jika terdapat perubahan besar dalam asas syarikat, petunjuk teknikal mungkin tidak akan berfungsi.

Risiko ini boleh dikawal dengan cara berikut:

  1. Menambah EMA untuk lebih banyak tempoh masa, membina portfolio model.
  2. Menerusi analisis emosi teks dan lain-lain untuk menilai peristiwa besar, dinamika untuk menyesuaikan kedudukan.
  3. Perubahan dalam persekitaran ekonomi, dasar dan asas syarikat, parameter penyesuaian dinamik.

Arah pengoptimuman

Strategi ini masih boleh dioptimumkan lagi:

  1. Menambah portfolio model. Anda boleh membina lebih banyak kombinasi indikator parameter yang berbeza, meningkatkan kestabilan strategi.

  2. Menambah mekanisme penangguhan kerugian. Menetapkan titik penangguhan yang munasabah, yang dapat mengawal kerugian tunggal dengan berkesan.

  3. Pengoptimuman parameter dinamik. Parameter EMA boleh dioptimumkan secara automatik mengikut keadaan pasaran yang berbeza.

  4. Menggabungkan teknologi pembelajaran mesin. Menggunakan kerangka kerja seperti Tensorflow, model latihan untuk meramalkan trend harga dalam masa nyata.

ringkaskan

Strategi pengesanan trend binari EMA adalah strategi perdagangan trend yang mudah dan praktikal. Ia menggunakan indikator EMA binari untuk menilai trend jangka pendek dalam harga untuk menangkap peluang pergerakan arah.

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

//@version=3


/// Component Code Startt
testStartYear = input(2017, "Backtest Start Year")
testStartMonth = input(01, "Backtest Start Month")
testStartDay = input(1, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0)

testStopYear = input(2020, "Backtest Stop Year")
testStopMonth = input(1, "Backtest Stop Month")
testStopDay = input(1, "Backtest Stop Day")
testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay,0,0)

// A switch to control background coloring of the test period
testPeriodBackground = input(title="Color Background?", type=bool, defval=false)
testPeriodBackgroundColor = testPeriodBackground and (time >= testPeriodStart) and (time <= testPeriodStop) ? #00FF00 : na
bgcolor(testPeriodBackgroundColor, transp=97)

testPeriod() => true
// Component Code Stop

strategy(title="Ema cross strat", overlay=true)
margin = input(true, title="Margin?")
Margin = margin  ? margin : false
resCustom = input(title="EMA Timeframe", defval="240" )
source = close,
len2 = input(21, minval=1, title="EMA1")
len3 = input(10, minval=1, title="EMA2")
ema2 = request.security(syminfo.tickerid,resCustom,ema(source,len2), lookahead=barmerge.lookahead_off)
ema3 = request.security(syminfo.tickerid,resCustom,ema(source,len3), lookahead=barmerge.lookahead_off)


mylong = crossover(ema3, ema2)
myshort = crossunder(ema3,ema2)

last_long = na
last_short = na
last_long := mylong ? time : nz(last_long[1])
last_short := myshort ? time : nz(last_short[1])

in_long = last_long > last_short ? 2 : 0
in_short = last_short > last_long ? 2 : 0

mylong2 = crossover(ema3, ema2)
myshort2 = crossunder(ema3, ema2)

last_long2 = na
last_short2 = na
last_long2 := mylong2 ? time : nz(last_long2[1])
last_short2 := myshort2 ? time : nz(last_short2[1])

in_long2 = last_long2 > last_short2 ? 0 : 0
in_short2 = last_short2 > last_long2 ? 0 : 0

condlongx =   in_long + in_long2
condlong = crossover(condlongx, 1.9)
condlongclose = crossunder(condlongx, 1.9)

condshortx =  in_short + in_short2
condshort = crossover(condshortx, 1.9)
condshortclose = crossover(condshortx, 1.9)




if crossover(condlongx, 1.9) and testPeriod() and strategy.position_size <= 0
    strategy.entry("Long", strategy.long, comment="Long")

if crossover(condshortx, 1.9) and testPeriod() and strategy.position_size > 0    
    strategy.close("Long",when = not Margin)
    
if crossover(condshortx, 1.9) and testPeriod() and strategy.position_size >= 0
    strategy.entry("Short", strategy.short, comment="Short", when = Margin)