Strategi Penembusan Rata-rata

Penulis:ChaoZhang, Tanggal: 2024-02-23 14:46:37
Tag:

img

Gambaran umum

Strategi penembusan garis rata-rata adalah strategi perdagangan kuantitatif khas yang melacak tren. Strategi ini menggunakan rata-rata bergerak dan band deviasi standar mereka untuk menilai tren pasar dan menghasilkan sinyal perdagangan ketika harga menembus band deviasi standar.

Prinsip Strategi

Strategi ini pertama-tama menghitung SMA bergerak sederhana N-hari (default 50 hari), dan kemudian menghitung deviasi standar StdDev dari harga berdasarkan SMA untuk siklus ini. Dengan SMA sebagai sumbu pusat dan rel atas dan bawah sebagai 2 kali StdDev, saluran deviasi standar dibangun. Ketika harga naik di atas rel atas, pergi pendek; ketika harga turun di bawah rel bawah, pergi panjang.

Setelah memasuki pasar, strategi akan menetapkan stop loss dan take profit point. Secara khusus, setelah pergi panjang, garis stop loss adalah harga penutupan pada saat masuk (100 - persentase stop loss); setelah pergi pendek, garis take profit adalah harga penutupan pada saat masuk (100 + persentase take profit).

Analisis Keuntungan

Strategi ini memiliki keuntungan berikut:

  1. Kemampuan pelacakan tren yang kuat. Menggunakan saluran penyimpangan standar dapat secara dinamis melacak fluktuasi pasar.

  2. Kemampuan pengendalian penarikan yang kuat. Menggunakan stop loss mobile dapat secara efektif mengendalikan kerugian tunggal.

  3. Implementasi sederhana. Menghemat banyak optimasi parameter dan sangat mudah diterapkan.

Analisis Risiko

Strategi ini juga memiliki beberapa risiko:

  1. Risiko pembalikan tren. Strategi pelacakan tren cenderung mengalami kerugian dan kemudian pembalikan.

  2. Risiko sensitivitas parameter: Pilihan parameter seperti periode rata-rata bergerak dan pengganda standar deviasi akan memiliki dampak yang lebih besar pada kinerja strategi.

  3. Stop loss terlalu agresif untuk menyebabkan kerugian tambahan. pengaturan stop loss point yang tidak benar dapat menyebabkan kerugian tambahan.

Solusi untuk risiko yang sesuai adalah sebagai berikut:

  1. Menggabungkan indikator volatilitas untuk menghindari kegagalan palsu.

  2. Mengoptimalkan parameter untuk menemukan kombinasi parameter yang optimal.

  3. Sesuaikan mekanisme stop loss untuk mencegah agresi yang berlebihan.

Arahan Optimasi

Masih ada ruang untuk optimalisasi strategi lebih lanjut:

  1. Gunakan beberapa rata-rata bergerak jangka waktu untuk verifikasi untuk menghindari kurva yang terlalu sensitif.

  2. Masukkan indikator lain seperti MACD untuk menilai tren dan divergensi.

  3. Memperkenalkan algoritma pembelajaran mesin untuk mengoptimalkan parameter secara dinamis.

Ringkasan

Secara keseluruhan, strategi terobosan regresi rata-rata bergerak adalah strategi perdagangan kuantitatif yang sangat praktis. Ini memiliki keuntungan melacak tren dan mengendalikan penarikan, implementasi sederhana, dan memenuhi kebutuhan perdagangan kuantitatif. Pada saat yang sama, perhatian juga harus diberikan pada masalah seperti pemilihan parameter dan pengaturan stop loss. Dengan analisis multi-axis waktu dan optimasi parameter, kinerja strategi yang lebih baik dapat diperoleh.


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

//@version=5
strategy("Standard Deviation Bands with Buy/Sell Signals", overlay=true)

// Input for the number of standard deviations
deviationMultiplier = input.float(2.0, title="Standard Deviation Multiplier")

// Input for the length of the moving average
maLength = input.int(50, title="Moving Average Length")

// Input for the stop loss percentage
stopLossPercentage = input.float(12, title="Stop Loss Percentage")

// Calculate the moving average
sma = ta.sma(close, maLength)

// Calculate the standard deviation of the price
priceDeviation = ta.stdev(close, maLength)

// Calculate the upper and lower bands
upperBand = sma + (priceDeviation * deviationMultiplier)
lowerBand = sma - (priceDeviation * deviationMultiplier)

// Plot the bands
plot(upperBand, color=color.green, title="Upper Band")
plot(lowerBand, color=color.red, title="Lower Band")

// Plot the moving average
plot(sma, color=color.blue, title="SMA", linewidth=2)

// Buy Signal
buyCondition = ta.crossover(close, lowerBand)
sellCondition = ta.crossunder(close, upperBand)

// Calculate stop loss level
stopLossLevelBuy = close * (1 - stopLossPercentage / 100)
stopLossLevelSell = close * (1 + stopLossPercentage / 100)

// Create Buy and Sell Alerts
alertcondition(buyCondition, title="Buy Signal", message="Buy Signal - Price Crossed Below Lower Band")
alertcondition(sellCondition, title="Sell Signal", message="Sell Signal - Price Crossed Above Upper Band")

// Plot Buy and Sell Arrows on the chart
plotshape(buyCondition, style=shape.triangleup, location=location.belowbar, color=color.green, title="Buy Signal Arrow")
plotshape(sellCondition, style=shape.triangledown, location=location.abovebar, color=color.red, title="Sell Signal Arrow")

// Exit Long and Short Positions
var float stopLossBuy = na
var float stopLossSell = na

if ta.crossover(close, sma)
    stopLossBuy := stopLossLevelBuy
if ta.crossunder(close, sma)
    stopLossSell := stopLossLevelSell

strategy.entry("Buy", strategy.long, when = buyCondition)
strategy.exit("Stop Loss/Take Profit Buy", from_entry = "Buy", stop = stopLossBuy)
strategy.entry("Sell", strategy.short, when = sellCondition)
strategy.exit("Stop Loss/Take Profit Sell", from_entry = "Sell", stop = stopLossSell)


Lebih banyak