
Strategi garis pendek silang dua rata adalah strategi perdagangan garis pendek yang mudah dan berkesan. Strategi ini menggunakan tanda silang harga dan rata-rata bergerak sebagai isyarat membeli dan menjual untuk menangkap pergerakan harga dalam garis pendek.
Strategi crossover dua garis rata menggunakan purata bergerak dari dua tempoh yang berbeza, satu garis MA yang lebih pendek dan satu garis MA yang lebih lama. Ia menghasilkan isyarat beli apabila garis MA pendek menembusi garis MA panjang dari arah bawah; ia menghasilkan isyarat jual apabila garis MA pendek jatuh dari arah atas dan menembusi garis MA panjang.
Strategi ini mula-mula menentukan panjang masa MA yang ditentukan oleh variabel length dengan panjang 50, kemudian menentukan harga sebagai harga penutupan, mengira garis MA panjang, dan menyimpannya ke dalam ma. Kemudian menentukan bcond untuk menentukan sama ada harga lebih tinggi daripada nilai ma, jika bcount ditambah 1, maka ia akan menjadi nol. Jika bcond secara berturut-turut mencetuskan ConfirmBars ((Default 2)), maka ia akan menghasilkan isyarat beli. Sebaliknya, apabila harga lebih rendah daripada ma, ia akan menghasilkan isyarat jual dengan logik yang sama.
Untuk menapis sebahagian daripada isyarat tidak sah, strategi menambah tiga syarat penapisan clc, clc0 dan clc1. Ketiga-tiga syarat ini menentukan hubungan antara saiz harga penutupan kitaran semasa dengan saiz harga penutupan kitaran sebelumnya, dan hubungan antara saiz harga penutupan kitaran semasa dengan harga pembukaan, yang membolehkan menghasilkan isyarat jika dipenuhi pada masa yang sama.
Akhirnya, apabila harga kembali jatuh ke atas atau kembali menembusi bawah, masing-masing menebus kedudukan over atau kosong yang sesuai.
Untuk mengurangkan risiko, anda boleh mempertimbangkan untuk menyesuaikan parameter garis purata mengikut pergerakan kadar turun naik pasaran; anda juga boleh menggunakan hentian bebas atau peratusan hentian, yang membolehkan titik hentian disesuaikan secara fleksibel.
Strategi ini boleh dioptimumkan dalam beberapa aspek:
Mengoptimumkan parameter sistem garis rata, seperti menyesuaikan panjang garis rata secara dinamik mengikut indikator seperti kadar turun naik pasaran.
Menambah syarat penapisan tambahan, seperti peningkatan jumlah lalu lintas, untuk meningkatkan kualiti isyarat.
Mengoptimumkan strategi henti kerugian, menggunakan hentian terapung atau peratusan hentian untuk mengurangkan kebarangkalian hentian yang terlalu awal.
Digabungkan dengan petunjuk lain, seperti MACD, RSI, dan lain-lain, membuat pengesahan pelbagai faktor untuk meningkatkan keberkesanan isyarat.
Menambah strategi pengurusan risiko automatik, seperti menyesuaikan saiz kedudukan secara dinamik dan mengawal kerugian tunggal.
Menambah kaedah pembelajaran mesin untuk membuat model penilaian isyarat yang lebih tepat untuk isyarat membeli dan menjual.
Strategi garis pendek silang dua hala secara keseluruhannya adalah strategi perdagangan garis pendek yang sangat praktikal, dengan kelebihan operasi yang mudah dan mudah dilaksanakan. Tetapi perlu berhati-hati untuk mengawal isyarat palsu di pasaran yang bergolak, dan melakukan penambahbaikan seperti pengoptimuman parameter dinamik, agar strategi ini dapat digunakan secara maksimal.
/*backtest
start: 2023-09-29 00:00:00
end: 2023-10-29 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("MovingAvg Cross", overlay=true)
length = input(50)
confirmBars = input(2)
price = close
ma = sma(price, length)
bcond = price > ma
bcount = 0
bcount := bcond ? nz(bcount[1]) + 1 : 0
clc=close[0]>close[1]
clc0=close[0]>open[0]
clc1=close[1]>open[1]
if clc and clc0 and clc1 and (bcount == confirmBars)
strategy.entry("buy", strategy.long)
scond = price < ma
scount = 0
scount := scond ? nz(scount[1]) + 1 : 0
csc=close[0]<close[1]
csc0=close[0]<open[0]
csc1=close[1]<open[1]
if csc and csc0 and csc1 and (scount == confirmBars)
strategy.entry("sell", strategy.short)
strategy.close("buy", when=scond)
strategy.close("sell",when=bcond)
plot(ma, color=color.red)
//plot(strategy.equity, title="equity", color=color.red, linewidth=2, style=plot.style_areabr)