Algoritma Double Moving Average Golden Cross


Tanggal Pembuatan: 2024-01-23 11:18:57 Akhirnya memodifikasi: 2024-01-23 11:18:57
menyalin: 0 Jumlah klik: 569
1
fokus pada
1617
Pengikut

Algoritma Double Moving Average Golden Cross

Ringkasan

Algoritma crossover emas dua garis rata menentukan waktu jual beli dengan menghitung persimpangan garis cepat dan garis lambat. Di mana garis cepat menggunakan rata-rata bergerak indeks 8 hari, garis lambat menggunakan rata-rata bergerak indeks harga terendah dalam 8 hari terakhir.

Prinsip Strategi

Prinsip inti dari strategi ini adalah: garis cepat mewakili tren perubahan harga baru-baru ini, garis lambat mewakili tingkat harga yang lebih rendah baru-baru ini. Ketika garis cepat melewati garis lambat, berarti harga mulai naik, melebihi harga yang lebih rendah baru-baru ini, sehingga menghasilkan sinyal beli. Ketika garis cepat melewati garis lambat, berarti harga mulai turun, di bawah harga yang lebih rendah baru-baru ini, sehingga menghasilkan sinyal jual.

Secara khusus, strategi ini dilakukan dengan menghitung indeks bergerak rata-rata 8 hari sebagai garis cepat, menghitung indeks bergerak rata-rata 8 hari terakhir harga terendah sebagai garis lambat. Kemudian menghitung harga dengan garis cepat, dan menilai tren perubahan perbedaan. Ketika perbedaan mulai berubah menjadi positif, berarti harga mulai naik; Ketika perbedaan mulai berubah menjadi negatif, berarti harga mulai turun.

Analisis Keunggulan

Keuntungan terbesar dari algoritma crossover emas dua garis rata adalah bahwa strategi ini sederhana dan jelas, mudah dimengerti dan diimplementasikan. Metode ini merupakan metode yang lebih lama dan umum digunakan dalam analisis teknis.

Selain itu, strategi ini menambahkan mekanisme stop loss. Ketika harga naik lebih dari 20%, stop loss untuk posisi ini akan ditetapkan 1,2 kali lipat dari harga masuk. Ini dapat mengunci sebagian besar keuntungan dan menghindari kerugian.

Analisis risiko

Strategi ini hanya didasarkan pada hubungan antara harga dan rata-rata bergerak untuk menentukan waktu perdagangan. Jika harga mengalami fluktuasi yang tidak biasa dan rata-rata bergerak tidak dapat bereaksi tepat waktu, mungkin akan menghasilkan sinyal perdagangan yang salah.

Selain itu, pengaturan stop loss 1.2 kali lipat dari harga masuk juga mungkin terlalu konservatif, tidak dapat menahan seluruh pasar. Jika pasar terus naik, pengaturan stop loss mungkin akan berhenti terlalu dini, tidak dapat memperoleh keuntungan yang lebih besar. Untuk ini perlu menguji berbagai parameter untuk menemukan posisi stop loss yang lebih sesuai.

Arah optimasi

Strategi ini masih memiliki ruang untuk pengoptimalan lebih lanjut. Pertama, Anda dapat menguji parameter yang berbeda, mengoptimalkan parameter siklus rata-rata bergerak, dan menemukan kombinasi parameter terbaik untuk menghasilkan kualitas sinyal terbaik. Kedua, Anda dapat menambahkan indikator volatilitas, dll, untuk menghindari sinyal yang salah selama periode getaran harga. Ketiga, Anda dapat menggunakan metode pembelajaran mesin untuk mengoptimalkan posisi stop loss secara otomatis.

Meringkaskan

Algorithm crossover emas dua garis sejajar secara keseluruhan adalah strategi perdagangan kuantitatif yang sangat praktis. Ini menggunakan metode analisis teknis yang matang dari crossover sejajar untuk menghasilkan sinyal perdagangan, sambil melakukan optimasi parameter dan aturan yang lebih baik.

Kode Sumber Strategi
/*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)