Strategi Crossover Purata Bergerak Eksponen

Penulis:ChaoZhang, Tarikh: 2024-01-08 11:30:21
Tag:

img

Ringkasan

Strategi crossover purata bergerak eksponensial adalah strategi perdagangan kuantitatif yang mudah yang mengesan trend harga. Ia menggunakan persilangan dua purata bergerak eksponensial dengan tetapan parameter yang berbeza sebagai isyarat beli dan jual. Apabila EMA jangka pendek melintasi di atas EMA jangka panjang, isyarat beli dihasilkan. Apabila EMA jangka pendek melintasi di bawah EMA jangka panjang, isyarat jual dihasilkan.

Logika Strategi

Logik teras strategi ini adalah berdasarkan teori EMA. purata bergerak eksponen boleh secara berkesan merata turun naik harga dan menentukan arah trend harga. EMA pantas bertindak balas dengan cepat terhadap perubahan harga manakala EMA perlahan menyediakan rujukan untuk arah trend harga. Apabila EMA pantas melintasi di atas EMA perlahan, ia menunjukkan bahawa harga telah mula meningkat dan isyarat beli dihasilkan. Apabila EMA pantas melintasi di bawah EMA perlahan, ia menunjukkan bahawa harga telah mula jatuh dan isyarat jual dihasilkan.

Secara khusus, strategi ini mula-mula menentukan dua purata bergerak eksponensial: fib_level dan fib_price. fib_level ditetapkan oleh input pengguna, dan fib_price dikira berdasarkan harga tertinggi dan terendah dari 100 bar yang paling baru. Apabila harga penutupan melintasi di atas atau di bawah fib_price, isyarat beli dan jual dihasilkan, masing-masing. Pada masa yang sama, stop loss ditetapkan pada harga tertinggi dan terendah dari 10 bar yang paling baru.

Analisis Kelebihan

  • Menggunakan sistem EMA berganda untuk menentukan arah trend harga dan mengelakkan isyarat yang salah
  • Strategi yang boleh disesuaikan dengan parameter yang ditakrifkan pengguna
  • Menetapkan stop loss adalah bermanfaat untuk kawalan risiko

Analisis Risiko

  • Lag EMA mungkin terlepas titik pembalikan harga
  • Pembebasan EMA yang kerap meningkatkan kos urus niaga dan kerugian slippage
  • Tetapan stop loss yang tidak betul boleh menyebabkan stop loss yang lebih awal atau kerugian yang berlebihan

Risiko boleh dikurangkan dengan mengoptimumkan parameter EMA, menggunakan sistem EMA berganda, atau menggabungkan dengan penunjuk lain untuk pengesahan isyarat.

Arahan pengoptimuman

Strategi ini boleh dioptimumkan dari aspek berikut:

  1. Mengoptimumkan parameter tempoh EMA. Uji kombinasi tempoh yang berbeza untuk mencari parameter terbaik.

  2. Tambah Volume dan penapis lain. Menghasilkan isyarat beli apabila Volume meningkat dan isyarat jual apabila Volume jatuh untuk mengelakkan isyarat yang salah semasa lonjakan harga yang tajam.

  3. Menggunakan algoritma pembelajaran mesin untuk mengoptimumkan parameter secara automatik berdasarkan data sejarah.

  4. Tambahkan mekanisme hentian untuk meletakkan hentian kerugian. Pindah ke barisan hentian kerugian dengan peningkatan keuntungan untuk mengelakkan hentian awal.

Ringkasan

Strategi crossover purata bergerak eksponen adalah strategi perdagangan kuantitatif yang mudah digunakan secara keseluruhan. Ia memanfaatkan kekuatan EMA untuk menentukan trend harga dan menetapkan berhenti untuk mengawal risiko. Strategi ini mudah difahami, fleksibel dalam parameter, dan boleh digunakan untuk perdagangan kuantitatif di seluruh produk yang berbeza. Pengoptimuman lanjut dalam penyesuaian parameter, penapis tambahan, dan berhenti menyusul boleh membawa kepada prestasi strategi yang lebih baik.


/*backtest
start: 2023-12-08 00:00:00
end: 2024-01-07 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Fibonacci Strategy", overlay=true)

// Define Fibonacci 0.5 level
fib_level = input(0.5, title="Fibonacci Level")

// Calculate Fibonacci 0.5 level price
fib_price = ta.lowest(low, 100) + (ta.highest(high, 100) - ta.lowest(low, 100)) * fib_level

// Define entry and exit conditions
long_condition = ta.crossover(close, fib_price)
short_condition = ta.crossunder(close, fib_price)

// Set exit points (using previous high or low)
long_exit = ta.highest(high, 10)
short_exit = ta.lowest(low, 10)

// Plot Fibonacci 0.5 level
plot(fib_price, "Fib 0.5", color=color.blue, linewidth=1, style=plot.style_circles)

// Initialize variables
var inLong = false
var inShort = false

// Set trading signals
if (long_condition)
    if not inLong
        strategy.entry("Buy", strategy.long)
        inLong := true
    strategy.exit("Exit", "Buy", limit=long_exit)

if (short_condition)
    if not inShort
        strategy.entry("Sell", strategy.short)
        inShort := true
    strategy.exit("Exit", "Sell", limit=short_exit)

if (ta.crossover(close, long_exit) or ta.crossunder(close, short_exit))
    inLong := false
    inShort := false


Lebih lanjut