Strategi Crossover Purata Pergerakan Berganda

EMA SMA
Tarikh penciptaan: 2024-05-17 15:48:04 Akhirnya diubah suai: 2024-05-17 15:48:04
Salin: 0 Bilangan klik: 376
1
fokus pada
1226
Pengikut

Strategi Crossover Purata Pergerakan Berganda

Gambaran keseluruhan

Strategi penyeberangan dua garis sejajar adalah strategi perdagangan yang mengikuti trend klasik. Strategi ini menggunakan dua purata bergerak, satu adalah purata bergerak cepat dan satu lagi adalah purata bergerak perlahan. Apabila purata bergerak cepat melintasi rata-rata bergerak perlahan dari atas ke bawah, ia dipanggil “perseberangan emas”, yang menunjukkan kemungkinan pembentukan trend naik, di mana lebih banyak kedudukan dibuka. Apabila purata bergerak cepat melintasi rata-rata bergerak perlahan dari atas ke bawah, ia dipanggil “perseberangan mati”, yang menunjukkan kemungkinan pembentukan trend menurun, di mana kedudukan dibuka kosong.

Prinsip Strategi

Inti strategi ini adalah menggunakan ciri-ciri trend dan isyarat persilangan rata-rata bergerak untuk menentukan arah trend dan masa untuk membuka kedudukan. Pertama, dengan parameter yang ditetapkan untuk jangka masa rata-rata bergerak cepat (default 50) dan rata-rata bergerak perlahan (default 200), dan pilihan untuk menggunakan SMA atau EMA.

  1. Apabila rata-rata bergerak cepat melintasi rata-rata bergerak perlahan ke atas ((golden cross), jika anda tidak memegang kedudukan pada masa ini, anda akan membuka lebih banyak kedudukan, dan menetapkan harga hentian kerugian ((berdasarkan peratusan hentian kerugian).
  2. Apabila rata-rata bergerak pantas ke bawah melalui rata-rata bergerak perlahan (mortal crossover), jika anda tidak memegang kedudukan pada masa ini, anda akan membuka posisi kosong dan menetapkan harga berhenti kehilangan.
  3. Jika terdapat lebih daripada satu kedudukan, kedudukan kosong apabila kematian berlaku.
  4. Jika terdapat kedudukan kosong, kosongkan kedudukan apabila berlaku persilangan emas. Buka posisi dengan isyarat silang purata bergerak dan tetapkan stop loss untuk menangkap trend jangka panjang harga dengan cara mengikuti trend.

Kelebihan Strategik

  1. Logik yang ringkas dan jelas, mudah difahami dan diimplementasikan, adalah asas kepada strategi trend tracking.
  2. Dengan menyeberang purata bergerak dari dua tempoh yang berbeza, kita dapat menilai dengan lebih baik mengenai pembentukan dan pembalikan trend.
  3. Ia menyokong kedua-dua jenis purata bergerak, iaitu SMA dan EMA, dengan pilihan yang fleksibel.
  4. Ia juga boleh digunakan untuk menjimatkan wang dalam bentuk wang tunai.
  5. Gaya trend-following yang sesuai untuk trend jangka menengah dan panjang.

Risiko Strategik

  1. Pilihan parameter yang tidak betul (seperti pilihan kitaran purata bergerak yang tidak betul) boleh menyebabkan isyarat kerap atau penghakiman trend terlewat.
  2. Ia boleh menyebabkan perdagangan yang kerap dan tidak baik.
  3. Ia boleh menyebabkan penurunan yang lebih ketara apabila trend berbalik atau berakhir.
  4. Peratusan pegangan tetap mungkin tidak dapat mengawal risiko dengan baik.

Arah pengoptimuman strategi

  1. Optimumkan parameter, termasuk kitaran purata bergerak, peratusan henti rugi, dan lain-lain, untuk meningkatkan kestabilan dan nisbah risiko keuntungan.
  2. Anda boleh mempertimbangkan untuk memperkenalkan ATR dan lain-lain indikator yang berkaitan dengan kadar turun naik untuk menyesuaikan kedudukan hentian secara dinamik.
  3. Setelah trend disahkan, anda boleh membuka lagi kedudukan anda dan bukannya membuka kedudukan anda dengan segera ketika anda menyeberang, atau anda boleh menambahkan indikator pengesahan trend lain untuk membantu penilaian, meningkatkan ketepatan trend.
  4. Ia boleh dipertingkatkan dengan strategi pengurusan wang, seperti menaikkan atau menurunkan kadar perbendaharaan.
  5. Pertimbangkan untuk menggabungkannya dengan isyarat lain untuk membentuk strategi pelbagai faktor.

ringkaskan

Strategi persilangan dua garis sejajar adalah strategi penjejakan trend klasik yang mudah, untuk menilai arah trend dan masa pembukaan kedudukan dengan persilangan dua rata-rata bergerak yang berbeza, sesuai untuk menangkap trend jangka panjang. Tetapi parameter tetap mungkin tidak stabil dalam keadaan pasaran yang berubah-ubah, dan perlu pengoptimuman lebih lanjut, seperti parameter pengoptimuman, penambahbaikan stop loss, pengenalan isyarat dan lain-lain, untuk menjadi strategi perdagangan yang agak stabil.

Kod 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)