Sistem perdagangan pelacakan tren multi-periode berdasarkan pita fluktuasi rata-rata pergerakan EMA

EMA stdev ATR SMA MACD RSI
Tanggal Pembuatan: 2024-11-29 10:49:30 Akhirnya memodifikasi: 2024-11-29 10:49:30
menyalin: 1 Jumlah klik: 424
1
fokus pada
1617
Pengikut

Sistem perdagangan pelacakan tren multi-periode berdasarkan pita fluktuasi rata-rata pergerakan EMA

Ringkasan

Strategi ini adalah sistem perdagangan band volatilitas yang dibangun berdasarkan 300 periode indeks moving averages (EMA). Dengan menggabungkan EMA dan standar deviasi, membentuk zona volatilitas dinamis seperti Brin’s Band untuk menangkap peluang overbought dan oversold di pasar. Strategi ini terutama menghasilkan sinyal perdagangan melalui persilangan harga dengan band volatilitas, dan menetapkan kondisi stop-loss berdasarkan persentase.

Prinsip Strategi

Inti dari strategi ini adalah dengan membangun pusat harga melalui 300 siklus EMA, kemudian menggunakan standar deviasi untuk membangun band turun naik. Ketika harga menembus downtrend dianggap sebagai oversell menghasilkan sinyal plus, ketika menembus uptrend dianggap sebagai oversell menghasilkan sinyal short.

  1. Menggunakan 300 siklus EMA untuk membuat garis dasar tren jangka panjang
  2. Perhitungan 300 siklus harga standar perbedaan dan membangun band oscillasi dengan standar perbedaan 2x
  3. Saat harga menembus tren bawah, lebih banyak posisi dibuka, stop-loss naik 0,98% untuk harga bukaan.
  4. Posisi terbuka kosong saat harga menembus rel, posisi terhenti turun 0,98% untuk harga bukaan
  5. Menampilkan sinyal perdagangan secara intuitif melalui antarmuka grafis, dan dilengkapi dengan fitur peringatan real-time

Keunggulan Strategis

  1. Sistem menggunakan EMA siklus panjang untuk memfilter kebisingan pasar jangka pendek
  2. Garis gelombang dinamis dapat beradaptasi dengan perubahan volatilitas pasar
  3. Aturan transaksi yang jelas, menghindari gangguan dari penilaian subjektif
  4. Mempunyai mekanisme pencegahan yang baik dan mengontrol risiko secara efektif
  5. Antarmuka grafis yang intuitif untuk melihat kondisi pasar
  6. Fitur peringatan real-time membantu untuk menangkap peluang perdagangan tepat waktu

Risiko Strategis

  1. Rata-rata periode panjang memiliki keterlambatan, mungkin kehilangan tren cepat
  2. Dalam pasar yang bergejolak, kemungkinan terjadinya terobosan palsu yang sering terjadi
  3. “Saya tidak tahu apa yang akan terjadi, tapi saya pikir itu akan menjadi masalah besar.
  4. Tidak ada mekanisme penghentian kerugian, risiko lebih besar jika tren berbalik Langkah-langkah berikut direkomendasikan untuk mengelola risiko:
  • Pertimbangan tambahan yang digabungkan dengan indikator siklus pendek
  • Menambahkan filter konfirmasi tren
  • Persentase Stop Stop Dinamis
  • Mekanisme pelindung tambahan

Arah optimasi strategi

  1. Memperkenalkan indikator pengesahan tren seperti MACD, RSI, dan lain-lain, memfilter sinyal palsu
  2. Menggunakan ATR untuk secara dinamis menyesuaikan posisi stop loss
  3. Menambahkan fitur stop loss mobile untuk lebih mengunci keuntungan
  4. Optimalkan parameter panjang untuk mencari kombinasi siklus optimal
  5. Pertimbangan untuk menambahkan indikator volume lalu lintas untuk meningkatkan keandalan sinyal
  6. Mengembangkan mekanisme parameter adaptasi untuk meningkatkan adaptasi strategi

Meringkaskan

Strategi ini menangkap peluang overbought dan oversold di pasar melalui pita EMA, aturan perdagangan jelas, dan pengoperasiannya sederhana. Namun, dalam penerapan praktis, perlu diperhatikan untuk mengendalikan risiko, dan disarankan untuk meningkatkan stabilitas strategi dengan menambahkan indikator tambahan, mengoptimalkan pengaturan parameter, dan lain-lain. Strategi ini secara keseluruhan dirancang dengan baik, memiliki nilai praktis dan ruang pengoptimalan yang lebih baik.

Kode Sumber Strategi
/*backtest
start: 2024-10-01 00:00:00
end: 2024-10-31 23:59:59
period: 2h
basePeriod: 2h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Estrategia de Compra/Venta en Bandas de EMA 300", overlay=true)

// Definir el período de la EMA
periodo = input.int(300, title="Período de la EMA")

// Calcular la EMA de 300
ema_300 = ta.ema(close, periodo)

// Definir el número de desviaciones estándar
num_desviaciones = input.float(2, title="Número de Desviaciones Estándar")

// Calcular la desviación estándar de la EMA de 300
desviacion = ta.stdev(close, periodo)

// Calcular los límites superior e inferior de las bandas
banda_superior = ema_300 + desviacion * num_desviaciones
banda_inferior = ema_300 - desviacion * num_desviaciones

// Definir el porcentaje para las señales de compra y venta
porcentaje = input.float(0.98, title="Porcentaje de Salida de Banda")

// Definir señales de compra y venta
compra = ta.crossover(close, banda_inferior)
venta = ta.crossunder(close, banda_superior)

// Calcular el precio de salida para las señales de compra y venta
precio_salida_compra = close * (1 + porcentaje / 100)
precio_salida_venta = close * (1 - porcentaje / 100)

// Plotear las bandas
plot(banda_superior, color=color.blue, linewidth=2, title="Banda Superior")
plot(banda_inferior, color=color.red, linewidth=2, title="Banda Inferior")

// Plotear las señales de compra y venta
plotshape(compra, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small, title="Compra")
plotshape(venta, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small, title="Venta")

// Simular operaciones
if (compra)
    strategy.entry("Compra", strategy.long)
if (venta)
    strategy.entry("Venta", strategy.short)

// Definir reglas de salida
if (strategy.position_size > 0)
    strategy.exit("Exit Long", from_entry="Compra", limit=precio_salida_compra)
if (strategy.position_size < 0)
    strategy.exit("Exit Short", from_entry="Venta", limit=precio_salida_venta)

// Crear alertas
alertcondition(compra, title="Alerta de Compra", message="¡Señal de Compra Detectada!")
alertcondition(venta, title="Alerta de Venta", message="¡Señal de Venta Detectada!")

// Mostrar alertas en el gráfico
if (compra)
    label.new(bar_index, low, text="Compra", style=label.style_label_up, color=color.green, textcolor=color.white)
if (venta)
    label.new(bar_index, high, text="Venta", style=label.style_label_down, color=color.red, textcolor=color.white)