Strategi ramalan penyesuaian isyarat silang SMI berdasarkan penunjuk momentum

SMI EMA
Tarikh penciptaan: 2024-12-27 15:38:01 Akhirnya diubah suai: 2024-12-27 15:38:01
Salin: 2 Bilangan klik: 370
1
fokus pada
1617
Pengikut

Strategi ramalan penyesuaian isyarat silang SMI berdasarkan penunjuk momentum

Gambaran keseluruhan

Strategi ini adalah sistem perdagangan adaptif berdasarkan Stochastic Momentum Indicator (SMI). Ia meramalkan arah aliran pasaran dengan menganalisis persilangan penunjuk IKS dan garis isyaratnya, dan secara automatik mengeluarkan isyarat beli dan jual pada kedudukan utama. Strategi ini menggunakan purata bergerak eksponen berganda (EMA) untuk melicinkan data dan meningkatkan kebolehpercayaan isyarat. Sistem ini amat sesuai untuk urus niaga jangka sederhana dan panjang dan boleh menangkap titik perubahan arah aliran pasaran utama dengan berkesan.

Prinsip Strategi

Teras strategi adalah untuk mengukur momentum harga dengan mengira Stochastic Momentum Indicator (SMI). Mula-mula julat harga tinggi dan rendah dalam tempoh tertentu dikira, dan kemudian harga penutup dinormalkan berbanding julat ini. Dengan menggunakan pelicinan EMA berganda pada julat relatif dan julat harga, nilai SMI yang lebih stabil diperoleh. Apabila garisan SMI membuat salib emas dengan garis isyaratnya (EMA SMI), isyarat beli dicetuskan apabila ia membuat salib kematian, isyarat jual dicetuskan. Pada masa yang sama, julat terlebih beli dan terlebih jual (+40/-40) ditetapkan untuk mengesahkan kebolehpercayaan isyarat.

Kelebihan Strategik

  1. Kejelasan isyarat yang kuat: Menggunakan isyarat silang sebagai pencetus perdagangan mengelakkan pertimbangan subjektif
  2. Rintangan hingar yang baik: Pelicinan EMA berganda digunakan untuk menapis bunyi pasaran dengan berkesan
  3. Kebolehsuaian yang kuat: boleh menyesuaikan diri dengan persekitaran pasaran yang berbeza melalui pengoptimuman parameter
  4. Kawalan risiko yang dipertingkatkan: tetapkan julat terlebih beli dan terlebih jual untuk mengelakkan salah pertimbangan dalam keadaan pasaran yang melampau
  5. Tahap visualisasi yang tinggi: Gunakan isian kecerunan untuk memaparkan status pasaran secara intuitif

Risiko Strategik

  1. Risiko ketinggalan: Disebabkan penggunaan berbilang purata bergerak, isyarat akan mempunyai ketinggalan tertentu
  2. Risiko pasaran tidak menentu: isyarat palsu mungkin dijana dalam pasaran mendatar dan tidak menentu
  3. Kepekaan parameter: Kombinasi parameter yang berbeza boleh membawa kepada hasil yang berbeza sama sekali
  4. Pergantungan pada persekitaran pasaran: prestasi yang lebih baik dalam pasaran arah aliran, prestasi lemah dalam pasaran yang tidak menentu

Arah pengoptimuman strategi

  1. Memperkenalkan penunjuk volum: Mengesahkan kesahihan isyarat dengan menggabungkan perubahan volum
  2. Tambah penapis arah aliran: Gunakan purata bergerak jangka panjang untuk mengesahkan arah aliran keseluruhan
  3. Optimumkan penyesuaian parameter: laraskan parameter secara dinamik mengikut turun naik pasaran
  4. Tambah mekanisme henti rugi: tetapkan henti rugi bergerak untuk melindungi keuntungan sedia ada
  5. Meningkatkan pengurusan risiko: Tambah pengurusan jawatan dan modul pengurusan dana

ringkaskan

Ini adalah strategi dagangan matang berdasarkan penunjuk IKS Ia menjana isyarat dagangan melalui persilangan penunjuk teknikal dan sangat praktikal. Kelebihan teras strategi terletak pada isyaratnya yang jelas dan rintangan hingar yang kuat, tetapi terdapat juga tahap ketinggalan tertentu. Dengan menambahkan langkah pengoptimuman seperti pengesahan volum dan penapisan arah aliran, kestabilan dan kebolehpercayaan strategi boleh dipertingkatkan lagi. Strategi ini amat sesuai untuk menjejaki arah aliran jangka sederhana dan panjang dan merupakan pilihan yang baik untuk pelabur yang ingin membina sistem perdagangan yang sistematik.

Kod sumber strategi
/*backtest
start: 2024-12-19 00:00:00
end: 2024-12-26 00:00:00
period: 45m
basePeriod: 45m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Iban_Boe

//@version=6
strategy("SMI Strategy with Signals", "SMI Strategy", overlay=false)

// Parámetros del SMI
lengthK   = input.int(14, "%K Length",  minval=1, maxval=15000)
lengthD   = input.int(3,  "%D Length",  minval=1, maxval=4999)
lengthEMA = input.int(3,  "EMA Length", minval=1, maxval=4999)

// Función de doble EMA
emaEma(source, length) => ta.ema(ta.ema(source, length), length)

// Cálculos del SMI
highestHigh = ta.highest(lengthK)
lowestLow = ta.lowest(lengthK)
highestLowestRange = highestHigh - lowestLow
relativeRange = close - (highestHigh + lowestLow) / 2
smi = 200 * (emaEma(relativeRange, lengthD) / emaEma(highestLowestRange, lengthD))
smiSignal = ta.ema(smi, lengthEMA)

// Gráficos del SMI
smiPlot = plot(smi, "SMI", color=color.blue)
plot(smiSignal, "SMI-based EMA", color=color.orange)

// Level lines
hline(40, "Overbought Line", color=color.green)
hline(-40, "Oversold Line", color=color.red)
hline(0, "Middle Line", color=color.gray)

midLinePlot = plot(0, color = na, editable = false, display = display.none)
fill(smiPlot, midLinePlot, 120,  40,   top_color = color.new(#4caf4f, 50),    bottom_color = color.new(color.green, 100), title = "Overbought Gradient Fill")
fill(smiPlot, midLinePlot, -40, -120,  top_color = color.new(color.red, 100), bottom_color = color.new(color.red, 50),    title = "Oversold Gradient Fill")

// Señales de compra y venta
buySignal = ta.crossover(smi, smiSignal) // Detect crossover
sellSignal = ta.crossunder(smi, smiSignal) // Detect crossover

// Graficar señales de compra/venta
plotshape(series=buySignal, style=shape.labelup, location=location.belowbar, color=color.green, size=size.tiny, title="Señal de Compra")
plotshape(series=sellSignal, style=shape.labeldown, location=location.abovebar, color=color.red, size=size.tiny, title="Señal de Venta")

// Lógica de la estrategia
if (buySignal)
    strategy.entry("Compra", strategy.long)

if (sellSignal)
    strategy.entry("Venta", strategy.short)

// Alertas
alertcondition(buySignal, title="Alerta de Compra", message="¡Señal de Compra Detectada!")
alertcondition(sellSignal, title="Alerta de Venta", message="¡Señal de Venta Detectada!")