Berdasarkan strategi pindah silang purata bergerak berganda


Tarikh penciptaan: 2024-02-05 10:34:57 Akhirnya diubah suai: 2024-02-05 10:34:57
Salin: 0 Bilangan klik: 602
1
fokus pada
1617
Pengikut

Berdasarkan strategi pindah silang purata bergerak berganda

Gambaran keseluruhan

Strategi persilangan dua garis rata adalah strategi perdagangan kuantitatif yang agak mudah. Ia dilakukan dengan mengira harga tutup rata-rata 7 garis K dan harga tutup rata-rata 20 garis K yang paling baru, yang lebih banyak apabila rata-rata jangka pendek melintasi rata-rata jangka panjang dari bawah, dan kosong apabila rata-rata jangka pendek melintasi rata-rata jangka panjang dari atas ke bawah.

Prinsip Strategi

Logik teras strategi ini adalah dengan mengira purata harga penutupan 7 garis K terkini (tidak termasuk garis K semasa) sebagai purata jangka pendek, dan purata harga penutupan 20 garis K terkini (tidak termasuk 7 garis K terkini) sebagai purata jangka panjang. Apabila purata jangka pendek dari bawah melintasi garis purata jangka panjang, pasaran menunjukkan kenaikan dan penurunan; apabila purata jangka pendek dari atas melintasi garis purata jangka panjang, pasaran menunjukkan penurunan dan penurunan.

Setelah melakukan banyak isyarat, buka lebih banyak kedudukan mengikut jumlah keseluruhan dana akaun; setelah isyarat kosong, lakukan lebih banyak kedudukan dengan jumlah banyak kedudukan dan buka kosong dengan jumlah itu. Setiap kedudukan selepas membuka akan memegang 20-25 garis K, pada masa ini jika berlaku kerugian akan menghentikan separuh kedudukan, jika terdapat keuntungan yang mencukupi akan menghentikan separuh kedudukan.

Analisis kelebihan strategi

Ini adalah strategi yang sangat mudah untuk menyilangkan dua garis yang sama, dan kelebihan utama adalah:

  1. Ia adalah idea yang mudah, mudah difahami dan boleh dilaksanakan.
  2. Mengira titik-titik perubahan dalam trend pertengahan pasaran dengan mengira persilangan antara garis rata-rata kitaran yang berbeza, yang merupakan petunjuk teknikal yang digunakan secara meluas dalam banyak strategi kuantitatif;
  3. Ia boleh menyaring kebisingan yang berlaku secara tidak sengaja di pasaran dan menangkap trend pertengahan.
  4. Strategi ini sangat sesuai untuk perdagangan garis panjang dan sederhana, dengan 20-25 garis K untuk setiap kedudukan, untuk mendapatkan kadar keuntungan yang lebih baik;
  5. Strategi ini mempunyai mekanisme stop loss dan stop loss untuk mengawal risiko dan mengunci keuntungan.

Analisis risiko

Ini adalah strategi trend-following yang lebih mudah, tetapi ia juga mempunyai risiko yang berpotensi:

  1. Apabila pasaran memasuki kawasan yang bergolak, garis purata jangka pendek dan garis purata jangka panjang mungkin mengalami beberapa kali persilangan yang menyebabkan isyarat palsu dan perdagangan berlebihan;
  2. kemungkinan tercetus oleh kejatuhan harga yang besar dalam jangka pendek semasa memegang kedudukan;
  3. Tidak dapat menentukan dengan tepat di mana trend sebenar pasaran akan berbalik, dan isyarat perdagangan mungkin terlewat.

Menghadapi risiko di atas, anda boleh mengoptimumkan dengan:

  1. Menambah syarat penapisan untuk melihat sama ada harga telah menembusi tahap sokongan atau rintangan kritikal untuk menapis isyarat palsu semasa persimpangan garis rata-rata;
  2. Menyesuaikan kitaran pegangan dan mengurangkan purata tempoh pegangan bagi setiap kedudukan untuk mengawal kerugian;
  3. Menambah penilaian indikator teknikal lain, seperti indikator kuantitatif, indikator turun naik dan lain-lain untuk menentukan titik perubahan sebenar pasaran.

Arah pengoptimuman strategi

Ini adalah strategi yang lebih mudah untuk menyilangkan dua persamaan linear, yang boleh dioptimumkan secara mendalam dari beberapa aspek:

  1. Mengoptimumkan parameter garis purata, menguji kombinasi garis purata jangka pendek dan jangka panjang yang berbeza untuk mencari parameter yang optimum;

  2. Menambah penapis lain seperti penapis tenaga, penapis kadar turun naik dan lain-lain untuk mengelakkan isyarat yang salah dalam pasaran yang bergolak;

  3. Mengoptimumkan strategi penghentian kerugian, menguji perkadaran penghentian kerugian yang berbeza, dan menentukan parameter yang optimum;

  4. Uji kitaran pasaran yang berbeza untuk mengoptimumkan jangka masa pegangan dan menentukan kitaran mana yang paling berkesan;

  5. Menambah algoritma pembelajaran mesin untuk terus mengoptimumkan parameter strategi melalui ujian terbalik, menjadikan strategi lebih stabil.

ringkaskan

Strategi ini adalah strategi yang lebih sederhana dua persilangan garis rata untuk menentukan titik peralihan trend jangka menengah dengan mengira persilangan garis rata dalam kitaran yang berbeza. Strategi ini sangat praktikal dan mudah untuk dikendalikan. Tetapi strategi ini juga mempunyai beberapa batasan, masalah utamanya adalah ketidakupayaan untuk menentukan titik peralihan pasaran yang sebenarnya.

Kod sumber strategi
/*backtest
start: 2024-01-05 00:00:00
end: 2024-02-04 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © nrathi2211

//@version=5
strategy("Closing Prices", overlay=true)

//variables
closingB7 = ta.highest(close, 7)[7]
closingB14 = ta.highest(close, 7)[20]
highB14 = ta.highest(low, 50)[7]
capital = 50000

//functions
qty_find(float price) => capital / int(price)

profit_take() =>
    profit = strategy.opentrades.profit(strategy.opentrades - 1)
    profit*.95 

if(closingB7 < closingB14)
    if(ta.crossover(close, closingB7))
        strategy.entry("long_buy", strategy.long, qty_find(close))

    current_profit = strategy.opentrades.profit(strategy.opentrades - 1)
    if(current_profit < 0)
        strategy.close("Exit long_buy SL", "long_buy", qty_percent = 50)
    
    else if(current_profit < profit_take())
        strategy.close("Exit long_buy TP", "long_buy", qty_percent = 50)
    
    if(ta.crossunder(close, closingB7))
        strategy.exit("long_sell", from_entry = "long_buy", stop = closingB7)

plot(closingB7, "cl", color.green, 2)
//plot(closingB14, "cl", color.red, 2)
plot(highB14, "cl", color.purple, 2)