Strategi Dagangan Jangka Pendek Berdasarkan SMA dan EMA

Penulis:ChaoZhang, Tarikh: 2023-12-07 15:29:12
Tag:

img

Ringkasan

Strategi ini menjalankan perdagangan jangka pendek berdasarkan dua penunjuk - Purata Bergerak Sederhana (SMA) dan Purata Bergerak Eksponen (EMA). Ia menghasilkan isyarat beli apabila EMA melintasi di atas SMA dan isyarat jual apabila SMA melintasi di bawah EMA. Strategi ini sesuai untuk perdagangan frekuensi tinggi pada jangka masa 1 minit.

Logika Strategi

Indikator teras strategi ini adalah SMA 20 tempoh dan EMA 21 tempoh. SMA dapat menapis turun naik harga rawak dengan berkesan dan menangkap trend jangka panjang. Berbanding dengan SMA, EMA bertindak balas lebih cepat terhadap perubahan harga baru-baru ini dan dapat mengenal pasti trend baru lebih awal.

Apabila EMA melintasi di atas SMA, ia menunjukkan garis purata jangka pendek berada di atas jangka panjang dan harga mula meningkat. Salib emas ini adalah isyarat beli. Apabila SMA melintasi di bawah EMA, ia menunjukkan garis purata jangka panjang berada di bawah jangka pendek dan harga mula menurun. Salib kematian ini adalah isyarat jual.

Strategi ini mudah dan mudah. Dengan menangkap salib emas / kematian antara EMA dan SMA, isyarat perdagangan boleh dihasilkan dengan mudah.

Analisis Kelebihan

Kelebihan strategi ini termasuk:

  1. Ia menggunakan dua penunjuk mudah yang diterima secara meluas yang mudah difahami dan dilaksanakan.

  2. Gabungan SMA dan EMA menghasilkan isyarat perdagangan yang lebih jelas.

  3. Ia sesuai untuk perdagangan jangka pendek frekuensi tinggi dan menangkap perubahan harga jangka pendek.

  4. Logik perdagangan adalah sangat mudah dan jelas, mudah untuk pengoptimuman parameter.

  5. Kod pelaksanaan ringkas dan mudah diperluaskan dan dioptimumkan.

Analisis Risiko

Terdapat juga beberapa risiko strategi ini:

  1. Prestasi sangat bergantung kepada penyesuaian parameter. Parameter yang tidak betul boleh menyebabkan perdagangan berlebihan atau hilang.

  2. Isyarat yang tidak jelas atau salah mungkin berlaku semasa turun naik pasaran yang ganas.

  3. Penunjuk jangka pendek mudah terdedah kepada pecah palsu yang mengakibatkan kerugian yang tidak perlu.

  4. Perdagangan frekuensi tinggi memerlukan sokongan pembiayaan yang mencukupi, jika tidak, risiko melebihi kerugian maksimum.

Arahan pengoptimuman

Strategi ini boleh dioptimumkan lagi dari aspek berikut:

  1. Mengoptimumkan tempoh SMA dan EMA untuk mencari kombinasi parameter terbaik menggunakan kaedah seperti carian grid dan algoritma genetik.

  2. Menggabungkan stop loss dan mengambil keuntungan untuk mengawal kerugian perdagangan tunggal dan meningkatkan ruang keuntungan.

  3. Gabungkan dengan penunjuk lain seperti KDJ, RSI untuk menapis pecah palsu.

  4. Ukuran kedudukan yang sederhana untuk mengelakkan melebihi kerugian maksimum.

Kesimpulan

Strategi ini memanfaatkan SMA dan EMA, dua penunjuk yang mudah dan berkesan, dan menggunakan gabungan penunjuk, menghasilkan isyarat perdagangan yang jelas. Kesederhanaan logik menjadikannya mudah dilaksanakan dan diuji. Sementara itu, masih ada beberapa risiko strategi. Ujian dan pengoptimuman lanjut diperlukan sebelum aplikasi dunia nyata. Kesimpulannya, ia memberikan idea yang cekap untuk perdagangan jangka pendek dan patut diterokai lebih lanjut.


/*backtest
start: 2022-11-30 00:00:00
end: 2023-12-06 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Cruce de SMA y EMA - Estrategia", overlay=true)

// Definición de variables
smaLength = 20
emaLength = 21

sma = ta.sma(close, smaLength)
ema = ta.ema(close, emaLength)

// Cruce de SMA y EMA hacia arriba (orden de compra)
buySignal = ta.crossover(ema, sma)

// Cruce de EMA y SMA hacia arriba (orden de venta)
sellSignal = ta.crossover(sma, ema)

// Configuración de la relación riesgo/recompensa
stopLoss = input(1, title="Stop Loss")
takeProfit = input(2, title="Take Profit")

// Gestión de órdenes
strategy.entry("Buy", strategy.long, when = buySignal)
strategy.entry("Sell", strategy.short, when = sellSignal)

strategy.exit("Take Profit/Stop Loss", from_entry = "Buy", stop = close * (1 - stopLoss/100), limit = close * (1 + takeProfit/100))
strategy.exit("Take Profit/Stop Loss", from_entry = "Sell", stop = close * (1 + stopLoss/100), limit = close * (1 - takeProfit/100))

// Marcado de señales en el gráfico
plotshape(buySignal, style=shape.triangleup, location=location.belowbar, color=color.green, title="Buy Signal")
plotshape(sellSignal, style=shape.triangledown, location=location.abovebar, color=color.red, title="Sell Signal")


Lebih lanjut