
Algoritma persilangan emas dua hala untuk menentukan masa jual beli dengan mengira persilangan garis cepat dan lambat. Di mana garis cepat menggunakan purata bergerak indeks 8 hari, garis lambat menggunakan purata bergerak indeks harga terendah dalam 8 hari terakhir.
Prinsip utama strategi ini adalah: garis pantas mewakili trend perubahan harga baru-baru ini, garis perlahan mewakili tahap harga yang lebih rendah baru-baru ini. Apabila garis pantas melintasi garis perlahan, menunjukkan harga mula naik, melebihi harga yang lebih rendah baru-baru ini, dan dengan itu menghasilkan isyarat beli. Apabila garis pantas melintasi garis perlahan, menunjukkan harga mula turun, lebih rendah daripada harga yang lebih rendah baru-baru ini, dan dengan itu menghasilkan isyarat jual.
Khususnya, strategi ini menggunakan purata bergerak indeks 8 hari sebagai garis cepat dan purata bergerak indeks 8 hari terakhir sebagai garis perlahan. Kemudian, nilai perbezaan harga dengan garis cepat dikira dan trend perubahan nilai perbezaan dinilai. Apabila nilai perbezaan mula berubah menjadi positif, harga mula naik; apabila nilai perbezaan mula berubah menjadi negatif, harga mula turun.
Kelebihan terbesar algoritma silang emas dua garis rata adalah bahawa strategi mudah difahami, mudah difahami dan diimplementasikan. Cara yang lebih matang dan biasa digunakan dalam analisis teknikal adalah untuk menilai masa jual beli dengan cara melintasi garis rata yang cepat dan perlahan. Strategi ini menggunakan kaedah yang matang ini, tetapi juga telah diperbaiki, menggunakan kombinasi silang garis cepat dan lambat untuk menghasilkan isyarat perdagangan yang lebih dipercayai.
Selain itu, strategi ini mempunyai mekanisme hentian kerugian. Apabila harga naik lebih daripada 20%, ia akan menetapkan titik hentian kerugian untuk kedudukan sebanyak 1.2 kali harga masuk. Ini dapat mengunci sebahagian besar keuntungan dan mengelakkan kerugian.
Strategi ini hanya berdasarkan hubungan harga dan purata bergerak untuk menentukan masa perdagangan. Jika harga berlaku turun naik yang tidak normal dan purata bergerak tidak dapat bertindak balas tepat pada masanya, ia mungkin menghasilkan isyarat perdagangan yang salah.
Selain itu, mekanisme penutupan yang ditetapkan sebagai 1.2 kali harga masuk juga mungkin terlalu konservatif, tidak dapat memegang keseluruhan pasaran. Jika pasaran terus meningkat, penutupan yang ditetapkan mungkin akan berhenti terlalu awal, tidak dapat memperoleh keuntungan yang lebih besar. Untuk ini, perlu menguji parameter yang berbeza untuk mencari kedudukan penutupan yang lebih sesuai.
Strategi ini mempunyai ruang untuk pengoptimuman lebih lanjut. Pertama, anda boleh menguji parameter yang berbeza, mengoptimumkan parameter kitaran rata-rata bergerak, mencari kombinasi parameter terbaik untuk menghasilkan kualiti isyarat. Kedua, anda boleh memasukkan indikator kadar turun naik, dan sebagainya, untuk mengelakkan menghasilkan isyarat yang salah semasa pergerakan harga. Ketiga, anda boleh menggunakan kaedah pembelajaran mesin untuk mengoptimumkan secara automatik kedudukan berhenti.
Algoritma silang emas dua garis sejajar secara keseluruhannya adalah strategi perdagangan kuantitatif yang sangat praktikal. Ia menggunakan kaedah analisis teknikal yang matang untuk silang sejajar untuk menghasilkan isyarat perdagangan, sambil melakukan pengoptimuman parameter dan peraturan yang lebih baik. Isyarat strategi sederhana dan jelas, mudah difahami; menyaring sebahagian bunyi dengan berkesan, meningkatkan kualiti isyarat; dan menetapkan mekanisme kawalan risiko yang terhad.
/*backtest
start: 2023-01-16 00:00:00
end: 2024-01-22 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy(title = "Estratégia de Cruzamento das Linhas")
// Configuração da Média Móvel
emaPeriod = 8
ema= ema(close, emaPeriod)
ema1= ema(close[1], emaPeriod)
lowestEMA = lowest(ema, 8)
// Calcula a diferença entre o preço e a média móvel
diff = close - ema
diff1 = close[1] - ema1
diffLow = ema - lowestEMA
//Condições
diffZero = diff < 0
diffUnder = diff < diffLow
diffUm = diff > 0
Low0 = diffLow == 0
gain = strategy.position_avg_price*(1+0.2)
// Sinais de entrada
buy_signal = diffUnder and crossover(diff, diff1) and diffZero
sell_signal = diffUm and diffUnder and crossunder(diff, diff1)
// Executa as operações de compra/venda
if buy_signal
strategy.entry("Buy", strategy.long)
if sell_signal
strategy.exit("Buy", limit = gain)
// Plota as linhas
plot(0, title="Linha Zero", color=color.gray)
plot(diff, title="Diferença", color=color.blue, linewidth=2)
plot(diffLow, title="Diferença", color=color.red, linewidth=2)