Strategi perdagangan merentas tempoh berdasarkan penunjuk EMA


Tarikh penciptaan: 2024-01-29 15:56:56 Akhirnya diubah suai: 2024-01-29 15:56:56
Salin: 0 Bilangan klik: 608
1
fokus pada
1617
Pengikut

Strategi perdagangan merentas tempoh berdasarkan penunjuk EMA

Gambaran keseluruhan

Strategi ini adalah strategi perdagangan lintas kitaran berdasarkan indikator EMA. Ia menggunakan dua EMA kitaran yang berbeza sebagai isyarat membeli dan menjual, melakukan lebih banyak semasa EMA kitaran panjang pada EMA kitaran pendek, dan melakukan kosong semasa EMA kitaran panjang di bawah EMA kitaran pendek.

Prinsip Strategi

Strategi ini menggunakan indikator EMA sebagai isyarat perdagangan. Secara khusus, EMA jangka pendek dan EMA jangka panjang dikira secara berasingan, menghasilkan isyarat beli lebih banyak apabila EMA jangka pendek melintasi EMA jangka panjang; menghasilkan isyarat jual kosong apabila EMA jangka pendek melintasi EMA jangka panjang.

Selepas memasuki kedudukan, strategi menetapkan titik henti dan berhenti pada masa yang sama. Tahap henti adalah peratusan tertentu dari harga masuk sebagai garisan henti, jika harga menyentuh garisan henti, ia akan berhenti; Henti adalah peratusan tertentu dari harga masuk sebagai garisan henti, jika harga menyentuh garisan henti, ia akan berhenti.

Strategi ini juga membolehkan pilihan untuk melakukan hanya lebih atau hanya lebih rendah, dan pilihan untuk berdagang dalam hari atau memegang perdagangan. Untuk perdagangan dalam hari, kedudukan kosong akan dipaksa sebelum penutupan saham AS.

Analisis kelebihan

Strategi ini mempunyai kelebihan berikut:

  1. Menggunakan penapis kurva indikator EMA, mengelakkan tertipu oleh lonjakan frekuensi tinggi, dapat menangkap trend garis tengah dan panjang secara serentak.

  2. Menggunakan EMA jangka pendek dan EMA jangka panjang sebagai isyarat perdagangan untuk mengelakkan perdagangan yang kerap.

  3. Tetapkan stop loss untuk mengawal kadar risiko dan keuntungan bagi setiap pesanan, yang membantu dalam pengurusan wang.

  4. Anda boleh memilih untuk melakukan perdagangan hanya dalam mata wang atau hanya dalam mata wang kosong, serta dagangan dalam hari atau dagangan pegangan, sesuai untuk pelbagai jenis peniaga.

  5. Serasi dengan pelbagai jenis perdagangan, termasuk saham, forex, mata wang digital dan sebagainya.

Analisis risiko

Strategi ini juga mempunyai risiko yang berpotensi:

  1. Indeks EMA mempunyai ketinggalan dan mungkin terlepas titik perubahan trend jangka pendek.

  2. Pilihan EMA jangka pendek yang tidak tepat boleh menyebabkan isyarat perdagangan yang salah.

  3. Ia juga boleh menyebabkan kenaikan harga saham yang lebih tinggi daripada jangka masa yang lama.

  4. Penghentian kemerosotan secara mekanikal boleh menyebabkan kekalahan awal atau penurunan keuntungan.

Langkah-langkah pengurusan risiko yang berkaitan:

  1. Mengoptimumkan parameter EMA untuk mencari kombinasi kitaran terbaik.

  2. Menambah petunjuk lain sebagai penilaian tambahan.

  3. Dinamika penyesuaian Stop Loss Stop Stop.

  4. Perbuatan manusia yang tidak normal.

Arah pengoptimuman

Strategi ini boleh dioptimumkan dengan cara berikut:

  1. Optimumkan parameter EMA untuk mencari kombinasi jangka panjang dan pendek yang sesuai untuk pelbagai jenis.

  2. Menambah penghakiman indikator lain, seperti MACD, KD dan lain-lain, untuk mencapai resonansi pelbagai indikator.

  3. Menambah latihan model pembelajaran mesin untuk menghasilkan stop loss dinamik.

  4. Akses kepada penunjuk RISK yang lebih maju untuk kejuruteraan ciri.

  5. Menambah elemen dagangan yang menyesuaikan diri untuk mencapai parameter yang dioptimumkan.

ringkaskan

Strategi ini secara keseluruhannya adalah templat strategi trend-following yang sangat baik, kelebihan utamanya adalah menggunakan EMA untuk menyaring kebisingan dan menghasilkan keuntungan yang stabil, dengan pengurusan risiko dan keuntungan yang baik. Dengan pengoptimuman berterusan, strategi ini boleh menjadi strategi kuantitatif yang umum di seluruh pasaran, yang patut dipelajari dan diamalkan oleh pedagang.

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

//@version=5
strategy("EMA Crossover Strategy by Vikrant Singh", overlay=true)


// Input for EMA Lengths
var bool runningPOS = false
var float stopLossLevel = na
var float targetLevel = na
shortLength = input(11, title="Short EMA Length")
longLength = input(21, title="Long EMA Length")

// Input for Stop-Loss and Target
stopLossPct = input(1, title="Stop-Loss (%)")
targetPct = input(3, title="Target (%)")
longOnly = input(true, title="Long Only")
intraDay = input(true, title="intraday?")


// Calculate EMAs
emaShort = ta.ema(close, shortLength)
emaLong = ta.ema(close, longLength)

// Calculate crossover conditions
crossoverCondition = ta.crossover(emaShort, emaLong)
crossunderCondition = ta.crossunder(emaShort, emaLong)

// Entry condition (long position just before crossover)
if crossoverCondition and not runningPOS and longOnly and (hour <= 15)
    strategy.entry("Long", strategy.long)
    runningPOS := true
    stopLossLevel := close * (1 - stopLossPct / 100)
    targetLevel := close * (1 + targetPct / 100)

//Entry condition (short position just before crossover)
if crossunderCondition and not runningPOS and not longOnly and (hour <= 15)
    strategy.entry("Short", strategy.short)
    runningPOS := true
    stopLossLevel := close * (1 + stopLossPct / 100)
    targetLevel := close * (1 - targetPct / 100)

// Exit conditions (square off on reverse crossover)
//Exit long
if (crossunderCondition or (low < stopLossLevel) or (high > targetLevel) ) and longOnly and runningPOS
    strategy.close("Long",comment = "Exit long")// ("Long", from_entry="Long",stop=stopLossLevel, limit=targetLevel)
    runningPOS := false

//Exit short
if (crossoverCondition or (high > stopLossLevel) or (low < targetLevel) ) and not longOnly and runningPOS
    strategy.close("Short", comment = "Exit Short")
    runningPOS := false

if intraDay and runningPOS
    if (hour >= 15)
        strategy.close_all(comment = "Intraday square off")
        //strategy.close("Long",comment = "intraday square off")
        runningPOS := false


// Plot EMAs
plot(emaShort, color=color.blue, title="Short EMA")
plot(emaLong, color=color.red, title="Long EMA")