Strategi mengikuti tren berdasarkan sistem rata-rata pergerakan SMA


Tanggal Pembuatan: 2024-02-23 12:29:51 Akhirnya memodifikasi: 2024-02-23 12:29:51
menyalin: 0 Jumlah klik: 613
1
fokus pada
1617
Pengikut

Strategi mengikuti tren berdasarkan sistem rata-rata pergerakan SMA

Ringkasan

Strategi ini diberi nama strategi trend tracking yang didasarkan pada sistem SMA rata-rata, dan ide utamanya adalah untuk membangun sinyal perdagangan dengan menggunakan SMA rata-rata dengan panjang parameter yang berbeda, untuk masuk pada titik-titik terobosan, sekaligus mengkombinasikan risiko pengendalian mekanisme stop loss.

Prinsip Strategi

Strategi ini menggunakan dua garis rata-rata SMA, yaitu SMA1 dan SMA2. Di antaranya, SMA1 panjangnya 1, dan SMA2 panjangnya 3. Dengan menghitung dua garis rata-rata SMA, strategi ini menghasilkan sinyal beli saat melewati SMA1 di SMA2 dan menghasilkan sinyal jual saat melewati SMA1 di bawah SMA2, sehingga menangkap tren harga.

Secara khusus, strategi ini menilai hubungan terobosan rata-rata SMA melalui fungsi ta.crossover dan ta.crossunder, sehingga menghasilkan variabel longCondition dan shortCondition bull. Ketika longCondition benar, menghasilkan sinyal beli; Ketika shortCondition benar, menghasilkan sinyal jual. Strategi ini akan melakukan entry pada titik sinyal, sekaligus memperbarui variabel profit Accumulated dan lastTradeProfit untuk melacak akumulasi keuntungan.

Untuk pengendalian risiko, strategi juga menetapkan mekanisme stop loss berdasarkan jumlah poin tetap. Mulai dari titik masuk, jika harga mencapai titik stop loss yang ditetapkan, maka akan memicu penutupan stop loss.

Keunggulan Strategis

Keuntungan terbesar dari strategi ini adalah memanfaatkan fitur pelacakan tren dari garis rata-rata SMA untuk menangkap perubahan tren harga secara efektif. Dibandingkan dengan strategi garis rata tunggal, strategi garis rata ganda dapat menggunakan hubungan silang antara garis rata untuk menentukan arah tren, sehingga menghasilkan sinyal perdagangan. Selain itu, strategi ini dilengkapi dengan mekanisme stop loss yang dapat secara efektif mengendalikan kerugian tunggal.

Analisis risiko

Risiko utama dari strategi ini adalah bahwa strategi rata-rata mudah menghasilkan sinyal palsu. Ketika harga bergoyang, rata-rata SMA mungkin sering berselisih, menyebabkan sinyal perdagangan yang tidak perlu. Pada saat ini, jika tidak ada efek stop loss, mungkin akan menghasilkan kerugian yang lebih besar.

Arah optimasi

Strategi ini dapat dioptimalkan dalam beberapa hal:

  1. Menyesuaikan parameter SMA untuk mencari kombinasi panjang garis rata-rata yang optimal. Parameter optimal dapat diperoleh dengan melakukan pengukuran ulang.

  2. Tambahkan kondisi penyaringan, atur kondisi harga yang terobosan di dekat titik persimpangan rata-rata untuk menghindari sinyal palsu.

  3. Berbagai jenis stop loss dapat diuji, seperti stop loss bergerak, stop loss menempel, dan lain sebagainya.

  4. Meningkatkan kontrol Posisi Ukuran dan mengoptimalkan efisiensi penggunaan dana.

Meringkaskan

Strategi ini secara keseluruhan adalah strategi pelacakan tren yang khas. Ini menggunakan hubungan putus SMA rata-rata untuk menentukan arah tren harga, untuk masuk pada titik perubahan tren. Selain itu, strategi ini dilengkapi dengan fungsi stop loss tetap untuk mengendalikan risiko.

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

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © cesarpieres72

//@version=5
strategy("Estrategia SMA y Ganancias Acumuladas con Stop Loss", shorttitle="SMA_Ganancias", overlay=true)

// Definir las variables de las medias móviles
sma1_length = input(1, title="SMA 1 Longitud")
sma2_length = input(3, title="SMA 2 Longitud")

// Calcular las medias móviles
sma1 = ta.sma(close, sma1_length)
sma2 = ta.sma(close, sma2_length)

// Condiciones para las señales de compra y venta
longCondition = ta.crossover(sma1, sma2)
shortCondition = ta.crossunder(sma1, sma2)

// Acumular las ganancias
var float profitAccumulated = 0.0
var float lastTradeProfit = na

if (longCondition)
    strategy.entry("Buy", strategy.long)
    lastTradeProfit := strategy.netprofit - (profitAccumulated + lastTradeProfit)
    profitAccumulated := strategy.netprofit

if (shortCondition)
    strategy.entry("Sell", strategy.short)
    lastTradeProfit := strategy.netprofit - (profitAccumulated + lastTradeProfit)
    profitAccumulated := strategy.netprofit

// Mostrar las señales en el gráfico
plot(sma1, color=color.blue, title="SMA 1")
plot(sma2, color=color.red, title="SMA 2")

// Añadir stop loss
stopLossPips = input(5000, title="Stop Loss (en pips)")
stopLossPrice = strategy.position_avg_price * (1 - stopLossPips * syminfo.mintick)
strategy.exit("SL", "Buy", stop=stopLossPrice)