Strategi Crossover Rata-rata Pergerakan Ganda

EMA SMA
Tanggal Pembuatan: 2024-05-17 15:48:04 Akhirnya memodifikasi: 2024-05-17 15:48:04
menyalin: 0 Jumlah klik: 661
1
fokus pada
1617
Pengikut

Strategi Crossover Rata-rata Pergerakan Ganda

Ringkasan

Strategi ini menggunakan dua rata-rata bergerak, salah satunya adalah rata-rata bergerak cepat, dan yang lainnya adalah rata-rata bergerak lambat. Ketika rata-rata bergerak cepat melewati rata-rata bergerak lambat dari atas ke bawah, disebut “persaingan emas”, yang menunjukkan kemungkinan tren naik terbentuk, dan pada saat itu lebih banyak posisi dibuka. Ketika rata-rata bergerak cepat melewati rata-rata bergerak lambat dari atas ke bawah, disebut “persaingan mati”, yang menunjukkan kemungkinan tren turun terbentuk, dan pada saat itu posisi dibuka kosong.

Prinsip Strategi

Inti dari strategi ini adalah memanfaatkan karakteristik tren dan sinyal silang dari moving average untuk menentukan arah tren dan waktu untuk membuka posisi. Pertama, dengan parameter yang ditetapkan untuk periode dengan fast moving average (default 50) dan slow moving average (default 200), dan pilihan untuk menggunakan SMA atau EMA. Kemudian menghitung dua moving average untuk menentukan persimpangan mereka:

  1. Ketika rata-rata bergerak cepat melintasi rata-rata bergerak lambat ke atas (gold crossing), jika tidak memiliki posisi saat ini, buka lebih banyak posisi, dan tetapkan harga stop loss (dihitung berdasarkan persentase stop loss).
  2. Ketika Fast Moving Average melintasi Slow Moving Average ke bawah (death cross), posisi yang tidak dipegang saat ini akan dibuka dengan posisi kosong, dan pada saat yang sama menetapkan harga stop loss.
  3. Jika sudah ada beberapa posisi, posisi kosong pada saat kematian terjadi.
  4. Jika sudah ada posisi kosong, maka posisi kosong akan terjadi pada saat terjadi crossing emas. Buka posisi dengan sinyal crossover moving averages dan set stop loss untuk menangkap tren jangka menengah dan panjang harga dengan cara trend tracking.

Keunggulan Strategis

  1. Logika yang sederhana dan jelas, mudah dipahami dan diterapkan, adalah dasar dari strategi pelacakan tren.
  2. Sebuah persilangan antara dua rata-rata bergerak dari periode yang berbeda dapat memberikan penilaian yang lebih baik tentang pembentukan dan pembalikan tren.
  3. Mendukung dua jenis moving average, SMA dan EMA, dengan pilihan yang fleksibel.
  4. Dengan pengaturan stop loss, risiko kerugian dapat dikontrol.
  5. Gaya trend-following cocok untuk mengidentifikasi tren jangka menengah dan panjang.

Risiko Strategis

  1. Pemilihan parameter yang salah (misalnya, pemilihan siklus rata-rata bergerak yang salah) dapat menyebabkan frekuensi sinyal atau keterlambatan penilaian tren.
  2. Perdagangan cepat dan bergejolak dapat menyebabkan transaksi yang sering dan tidak berjalan dengan baik.
  3. Pada akhir periode ini, ada kemungkinan penurunan yang lebih besar pada saat tren berbalik atau berakhir.
  4. Stop loss persentase tetap mungkin tidak dapat mengontrol risiko dengan baik.

Arah optimasi strategi

  1. Optimalisasi parameter, termasuk siklus moving average, persentase stop loss, dan lain-lain, untuk meningkatkan stabilitas dan rasio risiko keuntungan.
  2. Pertimbangan untuk memperkenalkan indikator yang terkait dengan volatilitas seperti ATR dapat dipertimbangkan untuk menyesuaikan posisi stop loss secara dinamis.
  3. Setelah konfirmasi tren, posisi dibuka kembali dan tidak langsung dibuka saat persilangan, atau kemudian menambahkan indikator konfirmasi tren lainnya untuk membantu penilaian, meningkatkan akurasi penangkap tren.
  4. Strategi pengelolaan dana yang lebih baik dapat dilakukan dengan cara menaikkan atau menurunkan posisi.
  5. Pertimbangkan untuk menggabungkannya dengan sinyal lain untuk membentuk strategi multi-faktor.

Meringkaskan

Strategi crossover linier ganda adalah strategi pelacakan tren klasik yang sederhana, untuk menilai arah tren dan waktu pembukaan posisi yang tepat untuk menangkap tren jangka menengah dan panjang melalui persilangan dua rata-rata bergerak periode yang berbeda. Namun, parameter tetap mungkin menunjukkan ketidakstabilan dalam lingkungan pasar yang berubah, dan perlu perbaikan lebih lanjut, seperti parameter optimasi, perbaikan stop loss, pengenalan sinyal, dll., Untuk menjadi strategi perdagangan yang relatif stabil.

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

//@version=5
//==============================================================================
// A baseline strategy with a well known concept, golden cross & death cross.
// Support for both Simple & Exponential moving averages.
// Support for long & short stop losses as a percentage.:well
//==============================================================================
strategy("Basic Moving Average Crosses", overlay=true)

//------------------------------------------------------------------------------
// configuration
//------------------------------------------------------------------------------
maQuickLength = input(50, title="Quick MA Length") 
maSlowLength  = input(200, title="Quick MA Length") 
useSma        = input(true, title="Use SMA? If false, EMA is used.")

maQuick = useSma ? ta.sma(close, maQuickLength) : ta.ema(close, maQuickLength)
maSlow  = useSma ? ta.sma(close, maSlowLength) : ta.ema(close, maSlowLength)

stop_loss_percentage = input(2.0, title="Stop Loss (%)")

var float longStopLevel = na
var float shortStopLevel = na

bool isGoldenCross = ta.crossover(maQuick, maSlow)
bool isDeathCross  = ta.crossunder(maQuick, maSlow)

//------------------------------------------------------------------------------
// position opening logic
//------------------------------------------------------------------------------

if(strategy.position_size == 0)
    // Golden cross, enter a long position
    if(isGoldenCross)
        strategy.entry("Buy", strategy.long)
        longStopLevel := close - close * stop_loss_percentage/100.0
        strategy.exit("StopLossLong", "Buy", stop=longStopLevel)
    // Death cross, enter short position
    else if(isDeathCross)
        strategy.entry("Sell", strategy.short)
        shortStopLevel := close + close * stop_loss_percentage/100.0
        strategy.exit("StopLossShort", "Sell", stop=shortStopLevel)

//------------------------------------------------------------------------------
// position closing logic
//------------------------------------------------------------------------------
else
    // Close long position on death cross
    if(strategy.position_size > 0 and isDeathCross)
        strategy.close("Buy")
    
    // Close short position on golden cross
    else if(strategy.position_size < 0 and isGoldenCross)
        strategy.close("Sell")

//------------------------------------------------------------------------------
// ploting
//------------------------------------------------------------------------------
plot(maQuick, color=color.yellow)
plot(maSlow, color=color.blue)