Strategi Purata Bergerak Ganda

Penulis:ChaoZhang, Tarikh: 2023-11-17 17:00:32
Tag:

img

Ringkasan

Strategi ini menggunakan kaedah crossover purata bergerak berganda momentum untuk melaksanakan perdagangan berisiko rendah. Ia menggunakan dua purata bergerak dari tempoh yang berbeza, garis cepat dan garis perlahan, untuk menentukan isyarat masuk dan keluar berdasarkan persilangan mereka. Matlamat strategi ini adalah untuk menangkap perubahan trend dan menjana keuntungan jangka panjang semasa trend utama.

Logika Strategi

Strategi ini menghasilkan isyarat dagangan berdasarkan persilangan antara garis WMA yang pantas dan garis WMA yang perlahan. Tempoh garis pantas adalah separuh daripada tempoh garis perlahan. Isyarat beli dihasilkan apabila garis pantas melintasi di atas garis perlahan dari bawah. Isyarat jual dihasilkan apabila garis pantas melintasi di bawah garis perlahan dari atas. Untuk menapis isyarat palsu, ia juga menggabungkan penunjuk momentum berdasarkan perbezaan antara dua purata bergerak. Isyarat perdagangan hanya dihasilkan apabila persilangan MA berlaku serentak dengan penunjuk momentum memenuhi keperluan bentuk.

Khususnya, logik utama termasuk:

  1. Menentukan input harga dan parameter: mendapatkan data harga OHLC; menentukan parameter HullMA tempoh z, data harga p.

  2. Mengira MA dua: mengira MA n2ma tempoh 2, MA nma tempoh z.

  3. Mengira perbezaan MA: mengira perbezaan antara dua perbezaan MA.

  4. Mengira penunjuk momentum: mengira purata bergerak perbezaan - n1, n2, n3 dengan tempoh sqn.

  5. Menentukan persilangan: tandakan n1 di atas n2 sebagai hijau, jika tidak merah.

  6. Bentuk plot: plot n1 dan n2.

  7. Mengenali isyarat: menjana isyarat apabila n1, n2, n3 sejajar ke arah yang sama.

  8. Masuk dan keluar: pergi panjang apabila garis pantas di atas garis perlahan dan penunjuk momentum bersetuju; pergi pendek apabila garis pantas di bawah garis perlahan dan penunjuk momentum bersetuju.

Kelebihan

Menggabungkan silang MA berganda dan penunjuk momentum, strategi ini dapat menapis isyarat palsu dengan berkesan dan hanya menjana perdagangan pada permulaan perubahan trend, dengan itu menghasilkan prestasi strategi yang baik.

  1. MA crossover mengesan perubahan dalam trend, mendapat keuntungan daripada trend.

  2. Indikator momentum menapis isyarat palsu, mengelakkan ditipu oleh turun naik jangka pendek.

  3. Hanya perdagangan pada perubahan trend utama mengurangkan kekerapan perdagangan yang tidak perlu.

  4. Pengoptimuman parameter sesuai dengan ciri-ciri produk yang berbeza.

  5. Membolehkan tahap piramida memanjangkan kitaran keuntungan.

Risiko

Terdapat juga beberapa risiko yang perlu diketahui:

  1. Crossover MA berganda mempunyai kelewatan dalam mengesan perubahan trend, berpotensi kehilangan masa terbaik.

  2. Tetapan parameter yang tidak betul pada penunjuk momentum boleh menghasilkan isyarat yang buruk.

  3. Terdapat ketidakseimbangan antara tempoh penahan yang panjang dan pendek.

  4. Strategi ini tidak mempunyai mekanisme untuk menangani keadaan pasaran yang bergelombang dengan baik.

  5. Terdapat risiko pengoptimuman berlebihan, yang memerlukan pengoptimuman parameter secara beransur-ansur.

Beberapa penyelesaian:

  1. Pertimbangkan untuk menambah penunjuk utama lain untuk mengesan perubahan harga lebih awal.

  2. Mengoptimumkan parameter petunjuk momentum untuk mencari kombinasi terbaik.

  3. Tambah penunjuk turun naik kepada tempoh penyimpanan kawalan.

  4. Batasi saiz kedudukan untuk mengurangkan kerugian tunggal.

  5. Ujian untuk ketahanan parameter untuk mengelakkan pengoptimuman berlebihan.

Arahan Penambahbaikan

Strategi ini boleh ditingkatkan dalam aspek berikut:

  1. Uji pelbagai jenis MA untuk mencari parameter optimum untuk setiap produk.

  2. Tambah penunjuk lain seperti MACD, Bollinger Bands untuk menentukan perubahan trend.

  3. Mengoptimumkan masa kemasukan untuk menentukan titik perubahan dengan tepat.

  4. Mengoptimumkan pintu keluar menggunakan penangguhan untuk mengunci keuntungan.

  5. Melakukan pengoptimuman parameter mengikut ciri produk.

  6. Gunakan pembelajaran mesin untuk mencari kombinasi parameter yang optimum.

  7. Membina mekanisme saiz kedudukan dinamik untuk mengawal risiko.

  8. Tambah metrik kuantitatif seperti nisbah Sharpe, faktor keuntungan untuk penilaian strategi.

  9. Menilai prestasi pada data sejarah menggunakan enjin backtesting.

Ringkasan

Ringkasnya, strategi MA berganda momentum ini mengenal pasti titik pembalikan trend utama menggunakan persimpangan MA dan momentum, yang membolehkan perdagangan berisiko rendah. Ia mempunyai kelebihan seperti keuntungan yang stabil dan pelaksanaan yang mudah, tetapi juga masalah untuk diperbaiki seperti pengoptimuman parameter dan kawalan risiko. Kami dapat memperbaiki bidang seperti masa masuk / keluar, ukuran kedudukan dinamik untuk menyesuaikan diri dengan keadaan pasaran. Pengesahan dan penilaian yang luas adalah penting untuk memastikan prestasi strategi yang kukuh. Secara keseluruhan, strategi ini menyediakan pendekatan sederhana namun berkesan untuk perdagangan kuantitatif, tetapi memerlukan pengoptimuman dan pengesahan berterusan untuk menjana pulangan pelaburan yang konsisten.


/*backtest
start: 2022-11-10 00:00:00
end: 2023-11-16 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
//OCTOPUS Indicator Strategy
strategy("FAVEL corp. Indicator Strategy", shorttitle="FAVEL corp. Monarch", overlay=true, default_qty_type=strategy.percent_of_equity, max_bars_back=420, default_qty_value=20, calc_on_order_fills= true, calc_on_every_tick=true, pyramiding=0)
z=input(defval=60,title="HullMA cross")
p=input(ohlc4,title="Price data")
n2ma=2*wma(p,round(z/2))
nma=wma(p,z)
diff=n2ma-nma
sqn=round(sqrt(z))
n2ma1=2*wma(p[1],round(z/2))
nma1=wma(p[1],z)
diff1=n2ma1-nma1
sqn1=round(sqrt(z))
n2ma2=2*wma(p[2],round(z/2))
nma2=wma(p[2],z)
diff2=n2ma2-nma2
sqn2=round(sqrt(z))
n1=wma(diff,sqn)
n2=wma(diff1,sqn)
n3=wma(diff2,sqn)
c=n1>n2?green:red
n1e=plot(n1, color=c, linewidth=1, offset=2)
n2e=plot(n2, color=c, linewidth=1, offset=2)
fill(n1e, n2e, color=c, transp=75)
plot(cross(n1, n2) ? n1 : na, style = circles,color=c, linewidth = 4)
closelong = p<p[1] and n1<n3
if (closelong)
    strategy.close("BUY")
closeshort = p>p[1] and n1>n3
if (closeshort)
    strategy.close("SELL")
longCondition = strategy.opentrades<1 and n1>n2 and p>p[1] and n1>n3
if (longCondition)
    strategy.entry("BUY",strategy.long)
shortCondition = strategy.opentrades<1 and n1<n2 and p<p[1] and n1<n3
if (shortCondition)
    strategy.entry("SELL",strategy.short)

Lebih lanjut