Strategi perdagangan kuantitas rata-rata bergerak eksponensial ganda

Penulis:ChaoZhang, Tanggal: 2024-02-02 11:41:34
Tag:

img

Gambaran umum

Strategi ini menghasilkan sinyal perdagangan dengan menghitung crossover antara rata-rata bergerak eksponensial 5 hari (EMA) dan rata-rata bergerak sederhana 20 hari (SMA).

Prinsip Strategi

Rata-rata bergerak eksponensial ganda adalah indikator teknis yang banyak digunakan. EMA 5 hari mewakili tren harga baru-baru ini sementara SMA 20 hari menunjukkan pergerakan harga jangka menengah. Ketika MA jangka pendek melintasi di atas MA jangka panjang, itu menandakan perpecahan ke atas dan tren harga ke atas, menunjukkan waktu yang baik untuk pergi panjang. Sebaliknya, penyeberangan ke bawah menyiratkan pembalikan harga potensial dan harus mempertimbangkan keluar dari posisi.

Strategi ini menetapkan EMA 5 hari dan SMA 20 hari sebagai sinyal perdagangan. Ini menjadi panjang ketika EMA 5 hari melintasi SMA 20 hari dan menutup posisi ketika perubahan harga mencapai 5% atau -5%.

Langkah-langkahnya adalah:

  1. Menghitung EMA 5 hari, SMA 20 hari dan TII
  2. Menghasilkan sinyal beli ketika EMA 5 hari melintasi SMA 20 hari sementara TII positif dan meningkat
  3. Masukkan posisi panjang
  4. Posisi tertutup ketika perubahan harga mencapai 5% atau -5%

Keuntungan

Strategi ini memanfaatkan penyeberangan emas antara dua MA dan memiliki keuntungan berikut:

  1. Sinyal perdagangan yang jelas dan sederhana, mudah diterapkan.
  2. MAs adalah indikator teknis utama dan umum, sinyal golden cross adalah klasik dan dapat diandalkan.
  3. Menggabungkan TII dapat menyaring beberapa sinyal yang tidak pasti dan meningkatkan tingkat kemenangan.
  4. Standar stop loss/take profit yang telah didefinisikan secara efektif mengendalikan risiko per perdagangan.

Secara umum, strategi ini memiliki aturan yang sederhana, memanfaatkan indikator teknis yang matang seperti MA crossover, dan memiliki pengukuran kontrol risiko yang relatif komprehensif.

Risiko

Masih ada beberapa risiko dalam strategi ini:

  1. Sinyal MA crossover mungkin terlambat.
  2. Indikator TII tidak berkinerja baik di pasar yang terikat rentang.
  3. Standar stop loss/take profit yang tetap bisa saja sewenang-wenang.

Perbaikan yang disarankan adalah:

  1. Mengoptimalkan parameter MA untuk mengurangi lag.
  2. Tambahkan indikator tambahan lainnya untuk meningkatkan keandalan sinyal.
  3. Tetapkan standar stop loss/take profit yang dinamis.

Jadi ada ruang untuk optimasi lebih lanjut.

Arahan Optimasi

Strategi ini dapat ditingkatkan dari aspek berikut:

  1. Optimalkan parameter MA dengan menguji kombinasi EMA dan SMA yang lebih pendek/panjang untuk menemukan pasangan yang optimal.

  2. Tambahkan indikator lain seperti MACD, KDJ untuk menyaring sinyal palsu.

  3. Menggunakan algoritma pembelajaran mesin untuk menemukan parameter yang lebih baik melalui pemodelan data historis dan statistik.

  4. Atur stop loss/take profit dinamis berdasarkan volatilitas pasar dan karakteristik instrumen untuk mengendalikan risiko dengan lebih baik.

  5. Perluas strategi ini ke produk lain seperti forex, cryptocurrency.

Melalui peningkatan di atas, stabilitas dan profitabilitas strategi ini dapat ditingkatkan secara substansial.

Kesimpulan

Sebagai kesimpulan, ini adalah strategi crossover MA ganda yang mudah dimengerti dan diimplementasikan. Ini memanfaatkan sinyal MA dan menggunakan TII untuk menyaring kesalahan. Ini mengendalikan risiko dengan stop loss / take profit. Strategi ini cocok untuk pemula untuk belajar dan juga memiliki ruang besar untuk optimasi. Peningkatan lebih lanjut pada penyesuaian parameter, penyaringan sinyal dan stop loss dinamis dapat mengubahnya menjadi strategi perdagangan yang praktis dan kuat.


/*backtest
start: 2024-01-02 00:00:00
end: 2024-02-01 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("EMA-SMA Crossover Strategy", shorttitle="EMA-SMA Cross", overlay=true)

// Define the moving averages
ema5 = ta.ema(close, 5)
sma20 = ta.sma(close, 20)
smaVolume10 = ta.sma(volume, 50)

majorLength = input(60, title="Major Length")
minorLength = input(30, title="Minor Length")
src = input(close, title="Source")

smaValue = ta.sma(src, majorLength)

positiveSum = 0.0
negativeSum = 0.0

for i = 0 to minorLength - 1
    price = na(src[i]) ? 0 : src[i]
    avg = na(smaValue[i]) ? 0 : smaValue[i]
    positiveSum := positiveSum + (price > avg ? price - avg : 0)
    negativeSum := negativeSum + (price > avg ? 0 : avg - price)

tii = 100 * positiveSum / (positiveSum + negativeSum)

// Buy condition: 5 EMA crosses above 20 SMA
buyCondition = ta.crossover(ema5, sma20) and tii > 0 and tii >= tii[1]

//and volume > smaVolume10 //

// Track entry price
var entryPrice = 0.0
if (buyCondition)
    entryPrice := close

// Calculate percentage change from entry price
priceChange = close / entryPrice - 1

// Plotting the moving averages on the chart
plot(ema5, color=color.blue, title="5 EMA")
plot(sma20, color=color.red, title="20 SMA")

// Highlighting buy signals and exit signals on the chart
// plotshape(series=buyCondition, title="Buy Signal", location=location.belowbar, color=color.green, size=size.small, style=shape.labelup, text="Buy")

// Strategy entry and exit
if (buyCondition)
    strategy.entry("Buy", strategy.long)

// Exit conditions
if (strategy.opentrades > 0)
    if (priceChange >= 0.05 or priceChange <= -0.05)
        strategy.close("Buy")


Lebih banyak