Strategi mengikut arah aliran berdasarkan pindah silang purata bergerak


Tarikh penciptaan: 2024-01-31 15:17:31 Akhirnya diubah suai: 2024-01-31 15:17:31
Salin: 1 Bilangan klik: 597
1
fokus pada
1617
Pengikut

Strategi mengikut arah aliran berdasarkan pindah silang purata bergerak

Gambaran keseluruhan

Strategi ini menghasilkan isyarat beli apabila rata-rata yang lebih pendek melintasi rata-rata yang lebih panjang dari bawah; menghasilkan isyarat jual apabila rata-rata yang lebih pendek melintasi rata-rata yang lebih panjang dari atas ke bawah.

Prinsip Strategi

Strategi ini menilai pergerakan pasaran dengan membandingkan hubungan antara dua garis rata yang berbeza. Khususnya, jenis dan panjang dua garis rata ditetapkan melalui parameter input. Garis rata pertama yang lebih panjang mewakili trend jangka panjang; Garis rata kedua yang lebih pendek mewakili trend jangka pendek semasa.

Apabila garis purata jangka pendek dari bawah melintasi garis purata jangka panjang, ia mewakili kecenderungan jangka pendek menjadi kuat, dan harga masuk ke arah kenaikan, dan oleh itu menghantar isyarat beli di titik persilangan ini. Sebaliknya, apabila garis purata jangka pendek melintasi garis purata jangka panjang dari atas, ia mewakili kecenderungan jangka pendek menjadi lemah, dan harga masuk ke arah penurunan, dan oleh itu menghantar isyarat jual di titik persilangan ini.

Berdagang mengikut trend pasaran melalui penilaian silang linear seperti ini.

Kelebihan Strategik

  • Trend utama untuk menggunakan penilaian silang rata-rata, merupakan penunjuk teknikal klasik dan praktikal
  • Sokongan untuk pelbagai jenis kombinasi garis rata, fleksibiliti yang tinggi
  • Logik strategi mudah difahami, mudah difahami, sesuai untuk pengaturcaraan perdagangan kuantitatif
  • Fleksibiliti parameter yang boleh dikonfigurasi untuk persekitaran pasaran yang berbeza

Analisis risiko

  • Garis rata mempunyai ketinggalan, pergerakan harga mungkin telah berlaku atau hampir ke titik pembalikan ketika isyarat silang dikeluarkan, dengan risiko tertentu untuk memberi isyarat ketinggalan
  • Penghakiman trend boleh menjadi salah dan menyebabkan kerugian yang tidak perlu
  • Parameter rata-rata linear yang diperlukan untuk konfigurasi yang munasabah, parameter yang berbeza boleh menyebabkan hasil yang sangat berbeza

Penyelesaian risiko:

  • Memperolehi jangka masa rata-rata yang lebih pendek untuk meningkatkan kepekaan terhadap perubahan pasaran
  • Periksa bersama-sama dengan petunjuk lain untuk mengelakkan salah faham
  • Kaedah pengoptimuman parameter: penjelajahan, pembelajaran mesin, algoritma genetik dan sebagainya
  • Mengendalikan saiz kedudukan dan titik henti

Arah pengoptimuman strategi

  • Menambah penapis untuk pelbagai penunjuk, menggabungkan pelbagai penilaian penunjuk, dan meningkatkan ketepatan keputusan
  • Secara automatik menyesuaikan parameter garisan purata mengikut keadaan pasaran
  • Menggabungkan algoritma pembelajaran mesin untuk mencari parameter keunggulan secara automatik
  • Optimumkan strategi henti kerugian

ringkaskan

Strategi ini adalah berdasarkan kepada pemikiran klasik mengenai trend utama penilaian persilangan garis rata, aplikasi fleksibel melalui kombinasi garis rata yang berbeza. Logik strategi mudah, mudah dilaksanakan, sesuai untuk perdagangan automatik. Secara keseluruhan, strategi ini mempunyai beberapa kegunaan, tetapi terdapat ruang untuk beberapa penambahbaikan dan pengoptimuman.

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

//@version=3
//study(title="MA Crossover Strategy", overlay = true)
strategy("MA Crossover Strategy", overlay=true)
src = input(close, title="Source")

price = request.security(syminfo.tickerid, timeframe.period, src)
ma1 = input(25, title="1st MA Length")
type1 = input("HMA", "1st MA Type", options=["SMA", "EMA", "HMA", "VWMA"])

ma2 = input(7, title="2nd MA Length")
type2 = input("HMA", "2nd MA Type", options=["SMA", "EMA", "HMA", "VWMA"])

f_hma(_src, _length)=>
    _return = wma((2*wma(_src, _length/2))-wma(_src, _length), round(sqrt(_length)))

price1 = if (type1 == "SMA")
    sma(price, ma1)
else
    if (type1 == "EMA")
        ema(price, ma1)
    else
        if (type1 == "VWMA")
            vwma(price, ma1)
        else
            f_hma(price, ma1)
    
price2 = if (type2 == "SMA")
    sma(price, ma2)
else
    if (type2 == "EMA")
        ema(price, ma2)
    else
        if (type2 == "VWMA")
            vwma(price, ma2)
        else
            f_hma(price, ma2)


//plot(series=price, style=line,  title="Price", color=black, linewidth=1, transp=0)
plot(series=price1, style=line,  title="1st MA", color=blue, linewidth=2, transp=0)
plot(series=price2, style=line, title="2nd MA", color=green, linewidth=2, transp=0)


longCondition = crossover(price1, price2)
if (longCondition)
    strategy.entry("Long", strategy.long)

shortCondition = crossunder(price1, price2)
if (shortCondition)
    strategy.entry("Short", strategy.short)