Sumber dimuat naik... memuat...

Crossover purata bergerak berbilang tempoh dengan sistem analisis jumlah

Penulis:ChaoZhang, Tarikh: 2024-11-27 15:08:39
Tag:EMASMAWMAVOL

img

Ringkasan

Ini adalah sistem strategi dagangan kuantitatif berdasarkan crossover purata bergerak dan analisis jumlah. Strategi membuat keputusan dagangan melalui isyarat crossover pelbagai jenis purata bergerak (termasuk EMA, SMA, dan WMA), digabungkan dengan penunjuk jumlah. Sistem ini menyokong konfigurasi fleksibel jenis dan parameter purata bergerak, sambil memperkenalkan analisis jumlah sebagai syarat pengesahan perdagangan untuk meningkatkan kebolehpercayaan.

Prinsip Strategi

Strategi ini menggunakan sistem silang purata bergerak berganda sebagai isyarat perdagangan teras, digabungkan dengan analisis jumlah sebagai penilaian tambahan:

  1. Menggunakan dua purata bergerak (MA1 dan MA2) dari tempoh yang berbeza, menyokong beralih bebas antara SMA, EMA, dan WMA.
  2. Memperkenalkan Volume SMA sebagai standard rujukan jumlah.
  3. Menggunakan EMA 200 tempoh sebagai penanda aras penilaian trend jangka panjang.
  4. Menghasilkan isyarat panjang apabila MA pantas melintasi di atas MA perlahan dengan jumlah di atas purata.
  5. Menghasilkan isyarat pendek apabila MA pantas melintasi di bawah MA perlahan dengan jumlah di atas purata.

Kelebihan Strategi

  1. Fleksibiliti yang tinggi: Menyokong pelbagai jenis MA untuk memenuhi keperluan gaya perdagangan yang berbeza.
  2. Isyarat yang boleh dipercayai: Meningkatkan kualiti isyarat melalui pengesahan jumlah.
  3. Mengikuti trend: Menggabungkan EMA jangka panjang untuk mengelakkan perdagangan yang bertentangan dengan trend.
  4. Parameter yang boleh diselaraskan: Tempoh MA dan tempoh jumlah boleh diselaraskan dengan fleksibel.
  5. Operasi Sistematik: Peraturan perdagangan yang jelas, meminimumkan faktor subjektif.

Risiko Strategi

  1. Risiko pengukuhan: Boleh menghasilkan isyarat pecah palsu yang kerap di pasaran sampingan.
  2. Risiko Lag: Purata bergerak mempunyai lag yang melekat, berpotensi kehilangan titik kemasukan yang optimum.
  3. Risiko Kos: Perdagangan yang kerap boleh membawa kepada kos transaksi yang tinggi.
  4. Kebergantungan persekitaran pasaran: Keberkesanan strategi sangat bergantung kepada kekuatan trend.

Arahan pengoptimuman

  1. Tambah Indikator Kekuatan Trend: Pertimbangkan untuk menambah ADX untuk berdagang hanya dalam trend yang kuat.
  2. Mengoptimumkan Stop Loss: Melaksanakan trailing atau stop loss tetap untuk kawalan risiko.
  3. Meningkatkan Analisis Kitaran Pasaran: Memasukkan penunjuk turun naik untuk penyesuaian parameter.
  4. Meningkatkan Analisis Volume: Tambah pengenalan corak volume untuk kualiti isyarat yang lebih baik.
  5. Melaksanakan Kawalan Risiko: Tetapkan had kedudukan maksimum dan had stop loss harian.

Ringkasan

Ini adalah strategi perdagangan kuantitatif yang menggabungkan teori analisis teknikal klasik melalui analisis persilangan purata bergerak dan analisis jumlah. Reka bentuk strategi adalah munasabah dengan kepraktisan dan skalabiliti yang kuat. Melalui pengoptimuman parameter dan peningkatan modul, kestabilan dan keuntungan strategi dapat ditingkatkan lagi.


/*backtest
start: 2019-12-23 08:00:00
end: 2024-11-25 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Cruzamento de Médias com Volume ☾︎ 𝔇𝔞𝔯𝔎 ✞︎ 𝔗𝔯𝔞𝔡𝔢𝔯 ☽︎", overlay=true)

// Criação de opções no editor para selecionar o tipo de média móvel
maType1 = input.string(title="Tipo de Média Móvel 1", defval="EMA", options=["SMA", "EMA", "WMA"])
maType2 = input.string(title="Tipo de Média Móvel 2", defval="EMA", options=["SMA", "EMA", "WMA"])

// Função para selecionar a média móvel de acordo com o tipo escolhido
getMovingAverage(maType, src, length) =>
    if maType == "SMA"
        ta.sma(src, length)
    else if maType == "EMA"
        ta.ema(src, length)
    else if maType == "WMA"
        ta.wma(src, length)
    else
        na

// Parâmetros para o cálculo das médias móveis
length1 = input.int(9, title="Período da Média 1")
length2 = input.int(21, title="Período da Média 2")

// Cálculo das médias móveis escolhidas
ma1 = getMovingAverage(maType1, close, length1)
ma2 = getMovingAverage(maType2, close, length2)

// Parâmetro editável para o período da média de volume
volLength = input.int(20, title="Período da Média de Volume")

// Cálculo da média móvel do volume com período ajustável
volSMA = ta.sma(volume, volLength)  // Média móvel simples do volume

// Cálculo da EMA de 200 períodos para visualizar a tendência primária
ema200 = ta.ema(close, 200)

// Condições para compra: ma1 cruza acima da ma2 + Volume acima da média de volume ajustável
longCondition = ta.crossover(ma1, ma2) and volume > volSMA

// Condições para venda: ma1 cruza abaixo da ma2 + Volume acima da média de volume ajustável
shortCondition = ta.crossunder(ma1, ma2) and volume > volSMA

// Executa a operação de compra
if (longCondition)
    strategy.entry("Compra", strategy.long)

// Executa a operação de venda
if (shortCondition)
    strategy.entry("Venda", strategy.short)

// Plotando as médias móveis no gráfico de preços
plot(ma1, color=color.green, title="Média Móvel 1", linewidth=2)
plot(ma2, color=color.red, title="Média Móvel 2", linewidth=2)

// Plotando a EMA de 200 períodos para visualização da tendência de longo prazo
plot(ema200, color=color.orange, title="EMA 200", linewidth=2)

// Plotando a média de volume para visualização no painel inferior
plot(volSMA, color=color.blue, title="Média de Volume", linewidth=2)

Berkaitan

Lebih lanjut