Trend Mengikut Strategi Purata Bergerak

Penulis:ChaoZhang, Tarikh: 2024-02-29 14:00:35
Tag:

img

Ringkasan

Strategi ini mengira garis purata bergerak saluran dan menubuhkan kedudukan panjang atau pendek apabila harga memecahkan garis saluran untuk mengikuti trend harga saham.

Prinsip Strategi

Strategi ini mula-mula mengira purata tinggi 20 hari sebagai rel atas saluran, purata rendah 20 hari sebagai rel bawah saluran, dan mengira garis tengah saluran. Garis tengah saluran mewakili trend harga purata baru-baru ini. Apabila harga menembusi garis tengah saluran ke atas, kedudukan panjang ditubuhkan. Apabila harga menembusi garis tengah saluran ke bawah, kedudukan pendek ditubuhkan. Ikuti trend harga sehingga harga jatuh kembali ke sisi bertentangan julat saluran, tutup kedudukan.

Analisis Kelebihan

  • Gunakan saluran untuk mengesan trend harga, mengelakkan dana terkunci di pasaran yang berbeza;
  • Rel saluran membantu menentukan titik masuk dan keluar, menjadikannya mudah untuk mengawal kemasukan;
  • Julat saluran menapis beberapa bunyi bising dan meningkatkan kebarangkalian keuntungan;
  • Parameter saluran boleh diselaraskan untuk menyesuaikan kepekaan strategi;

Analisis Risiko

  • Penembusan garis tengah yang ketara boleh diikuti dengan ujian tarik balik garis tengah, yang mengakibatkan terperangkap;
  • Saham berayun tidak sesuai untuk strategi ini dan boleh membawa kepada perdagangan frekuensi tinggi;
  • Tetapan parameter yang tidak betul juga boleh menjejaskan prestasi strategi;

Arahan pengoptimuman

  • Mengoptimumkan parameter kitaran saluran untuk menguji kesan parameter yang berbeza;
  • Tambah strategi mengambil keuntungan dan menghentikan kerugian untuk mengawal kerugian tunggal dan keseluruhan;
  • Menggabungkan penunjuk lain sebagai penilaian tambahan untuk mengelakkan isyarat yang salah;
  • Mengambil kedudukan dalam kumpulan untuk mengurangkan kebarangkalian terperangkap semasa ujian tarik balik;

Ringkasan

Secara umum, strategi ini agak mudah dan mudah. Ia menilai trend harga saham melalui saluran harga asas dan tergolong dalam jenis trend berikut. Kelebihannya adalah operasi yang mudah, penggunaan penuh peluang pelaburan yang dibawa oleh trend harga, dan mengelakkan kunci dana. Kelemahannya adalah bahawa tetapan parameter yang tidak betul boleh mempengaruhi prestasi dan terdapat risiko ujian mundur tertentu. Melalui pengoptimuman yang munasabah, kestabilan strategi dapat ditingkatkan dan prestasi perdagangan sebenar dapat ditingkatkan.


/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
//future strategy
//strategy(title = "stub", default_qty_type = strategy.fixed, default_qty_value = 1,  overlay = true, commission_type=strategy.commission.cash_per_contract,commission_value=2)
//stock strategy
strategy(title = "dc", default_qty_type = strategy.percent_of_equity, default_qty_value = 20,  overlay = true, commission_type=strategy.commission.cash_per_contract,commission_value=.005)
//forex strategy
//strategy(title = "stub", default_qty_type = strategy.percent_of_equity, default_qty_value = 20,  overlay = true)
//crypto strategy
//strategy(title = "stub", default_qty_type = strategy.percent_of_equity, default_qty_value = 20,  overlay = true, commission_type=strategy.commission.percent,commission_value=.25,default_qty_value=20)


testStartYear = input(2000, "Backtest Start Year")
testStartMonth = input(1, "Backtest Start Month")
testStartDay = input(1, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0)

testEndYear = input(2019, "Backtest Start Year")
testEndMonth = input(3)
testEndDay = input(31, "Backtest Start Day")
testPeriodEnd = timestamp(testStartYear,testStartMonth,testStartDay,0,0)


testPeriod() =>
    true
    //time >= testPeriodStart  ? true : false

dcPeriod = 20

dcUpper = highest(close, dcPeriod)[1]
dcLower = lowest(close, dcPeriod)[1]
dcAverage = (dcUpper + dcLower) / 2

plot(dcLower, style=line, linewidth=3, color=red, offset=1)
plot(dcUpper, style=line, linewidth=3, color=aqua, offset=1)

plot(dcAverage, color=black, style=line, linewidth=3, title="Mid-Line Average")

strategy.entry("simpleBuy", strategy.long, when=close > dcAverage)
strategy.close("simpleBuy",when=close < dcLower)
    
strategy.entry("simpleSell", strategy.short,when=close < dcAverage)
strategy.close("simpleSell",when=close > dcAverage)
    



Lebih lanjut