Strategi Crossover Rata-rata Pergerakan Ganda-EMA9/20


Tanggal Pembuatan: 2024-03-08 15:22:50 Akhirnya memodifikasi: 2024-03-08 15:22:50
menyalin: 0 Jumlah klik: 793
1
fokus pada
1617
Pengikut

Strategi Crossover Rata-rata Pergerakan Ganda-EMA9/20

Tinjauan Strategi

Strategi EMA9/20 adalah strategi perdagangan kuantitatif yang didasarkan pada persimpangan dua rata-rata bergerak indeks (EMA). Strategi ini menggunakan EMA hari ke-9 dan EMA hari ke-20 sebagai sinyal perdagangan, menghasilkan sinyal beli atau jual ketika dua garis lurus berpotongan. Strategi ini juga menggunakan harga dan persimpangan EMA hari ke-9 sebagai sinyal tambahan, serta stop loss bergerak untuk mengelola risiko perdagangan.

Prinsip Strategi

Prinsip inti dari strategi ini adalah menggunakan persilangan rata-rata bergerak indeks dari dua periode yang berbeda untuk menangkap tren pasar. Ketika rata-rata jangka pendek (>9 hari EMA) melewati rata-rata jangka panjang (>20 hari EMA), menunjukkan bahwa pasar mungkin memasuki tren naik, maka strategi ini menghasilkan sinyal beli; sebaliknya, ketika rata-rata jangka pendek di bawah garis rata-rata melewati rata-rata jangka panjang, menunjukkan bahwa pasar mungkin memasuki tren turun, maka strategi ini menghasilkan sinyal jual.

Selain sinyal persimpangan rata-rata, strategi ini juga memperkenalkan persimpangan harga dengan rata-rata jangka pendek (EMA 9 hari) sebagai sinyal tambahan. Ketika harga melewati EMA 9 hari di atas, sinyal beli juga dihasilkan; Ketika harga melewati EMA 9 hari di bawah, sinyal jual juga dihasilkan.

Untuk mengendalikan risiko, strategi ini menggunakan metode Trailing Stop. Setelah perdagangan masuk ke posisi untung, stop loss bergerak akan terus menyesuaikan posisi stop loss dengan perubahan harga sampai harga berbalik dan menembus posisi stop loss, sehingga mengunci keuntungan, sementara membatasi potensi kerugian.

Keunggulan Strategis

  1. Sederhana dan mudah dipahami: Strategi ini didasarkan pada prinsip klasik perpotongan linear, logikanya jelas, mudah dipahami dan diterapkan.

  2. Pelacakan tren: Strategi ini dapat secara efektif menangkap tren utama pasar dengan menyilangkan garis rata-rata dari dua periode yang berbeda.

  3. Stop loss tepat waktu: Memperkenalkan mekanisme stop loss bergerak, yang dapat dihilangkan tepat waktu ketika tren berbalik, untuk mengendalikan risiko penurunan.

  4. Fleksibilitas Parameter: Parameter strategi (misalnya, siklus rata-rata, titik berhenti, dll.) dapat dioptimalkan dan disesuaikan dengan pasar dan varietas yang berbeda untuk menyesuaikan dengan lingkungan pasar yang berbeda.

Risiko Strategis

  1. Frekuensi perdagangan: Karena strategi ini menggunakan sinyal crossover rata-rata dan crossover harga secara bersamaan, ini dapat menyebabkan frekuensi perdagangan yang lebih tinggi, sehingga meningkatkan biaya perdagangan.

  2. Pasar bergoyang: Strategi ini dapat menghasilkan lebih banyak sinyal salah ketika pasar bergoyang atau bertolak belakang, yang menyebabkan penurunan tingkat keuntungan.

  3. Sensitivitas parameter: Kinerja strategi mungkin lebih sensitif terhadap pilihan parameter, dan parameter yang berbeda dapat menghasilkan hasil yang sangat berbeda.

Arah optimasi

  1. Filtrasi sinyal: Berdasarkan sinyal crossover dan crossover harga, indikator teknis lainnya (seperti RSI, MACD, dll.) diperkenalkan sebagai kondisi filter untuk mengurangi sinyal yang salah.

  2. Parameter dinamis: Bergantung pada faktor-faktor seperti volatilitas pasar, kekuatan tren, dan parameter strategi yang disesuaikan secara dinamis (misalnya siklus rata-rata, titik berhenti, dll.) untuk menyesuaikan diri dengan kondisi pasar yang berbeda.

  3. Manajemen posisi: Sesuai dengan tren pasar dan kekuatan sinyal, ukuran posisi disesuaikan secara dinamis, meningkatkan posisi saat tren kuat, mengurangi posisi saat tren tidak jelas atau sinyal lebih lemah.

  4. Adaptasi multi-varietas: memperluas strategi ini ke berbagai varietas dan pasar untuk mengurangi risiko keseluruhan dan meningkatkan stabilitas pendapatan melalui diversifikasi investasi dan analisis relevansi.

Meringkaskan

Strategi EMA9/20 adalah strategi perdagangan kuantitatif yang sederhana dan praktis untuk menangkap tren pasar melalui persilangan dan persilangan harga dua rata-rata periode yang berbeda, sambil menggunakan stop loss bergerak untuk mengendalikan risiko. Strategi ini logisnya jelas, mudah dipahami dan diterapkan, cocok untuk dipelajari dan digunakan oleh pemula. Namun, strategi ini juga memiliki beberapa keterbatasan, seperti kinerja yang lebih buruk di pasar yang bergolak, pilihan parameter yang lebih sensitif, dll.

Kode Sumber Strategi
/*backtest
start: 2023-03-02 00:00:00
end: 2024-03-07 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/


//@version=5
strategy(title = "EMAs 9 / 20",
		 shorttitle = '9/20 EMAs', 
		 initial_capital = 1000,
		 overlay = true, 
		 default_qty_type = strategy.fixed,
		 commission_type = strategy.commission.cash_per_contract,
		 commission_value = 0.35,
		 default_qty_value = 1)


int trailOffset = 10
int trailPoints = 15


series float oEma9 = ta.ema(ohlc4, 9)
series float oEma20 = ta.ema(ohlc4, 20)

series bool closeCrossoverEma9 = ta.crossover(close, oEma9)
series bool closeCrossunderEma9 = ta.crossover(close, oEma9)

series bool nineCrossover20 = ta.crossover(oEma9, oEma20)
series bool nineCrossunder20 = ta.crossunder(oEma9, oEma20)

//Entry Exits

if nineCrossover20
    strategy.entry("Long 9Cross20", strategy.long, 2)
else if closeCrossoverEma9
    strategy.entry("Long 9CrossClose", strategy.long, 2)
    strategy.exit("Long 9CrossClose Exit", from_entry = "Long 9CrossClose", trail_points = trailPoints, trail_offset = trailOffset)
else if nineCrossunder20
    strategy.close("Long 9Cross20")
    
    

if nineCrossunder20
    strategy.entry("Short 9Cross20", strategy.short, 2)
else if closeCrossunderEma9
    strategy.entry("Short 9CrossClose", strategy.short, 2)
    strategy.exit("Short 9CrossClose Exit", from_entry = "Short 9CrossClose", trail_points = trailPoints, trail_offset = trailOffset)
else if nineCrossover20
    strategy.close("Short 9Cross20")