Strategi mengikuti tren berdasarkan terobosan regresi rata-rata bergerak


Tanggal Pembuatan: 2024-02-23 14:46:37 Akhirnya memodifikasi: 2024-02-23 14:46:37
menyalin: 0 Jumlah klik: 651
1
fokus pada
1617
Pengikut

Strategi mengikuti tren berdasarkan terobosan regresi rata-rata bergerak

Ringkasan

Strategi ini menggunakan rata-rata bergerak dan standar deviasi saluran untuk menilai pergerakan pasar dan menghasilkan sinyal perdagangan ketika harga melewati standar deviasi saluran.

Prinsip Strategi

Strategi ini pertama-tama menghitung SMA pada N hari (default 50 hari) dan kemudian berdasarkan SMA menghitung standar deviasi StdDev untuk harga periode tersebut. Dengan SMA sebagai sumbu tengah, masing-masing di atas dan di bawah dengan StdDev dua kali lipat untuk membangun saluran standar deviasi di atas dan bawah.

Setelah masuk ke pasar, strategi akan mengatur stop loss position. Secara khusus, setelah melakukan over, stop loss line adalah harga penutupan saat masuk ke pasar ((100 - stop loss persentase); setelah shorting, stop loss line adalah harga penutupan saat masuk ke pasar ((100 + stop loss persentase)

Analisis Keunggulan

Strategi ini memiliki keuntungan sebagai berikut:

  1. Menggunakan saluran standar deviasi dapat secara dinamis melacak pergerakan pasar.
  2. Kekuatan pengendalian mundur yang kuat. Menggunakan stop loss bergerak dapat secara efektif mengontrol kerugian tunggal.
  3. Implementasi sederhana. Menghindari banyak pengoptimalan parameter, sangat mudah untuk diterapkan.

Analisis risiko

Strategi ini juga memiliki beberapa risiko:

  1. Trend Reversal Risk. Strategi trend tracking adalah strategi yang mudah untuk keluar dari kerugian dan kemudian membalikkannya.
  2. Risiko sensitif parameter. Pilihan parameter yang memiliki periode rata-rata bergerak dan perkalian deviasi standar memiliki dampak yang lebih besar terhadap kinerja strategi.
  3. Stop loss yang terlalu radikal dapat menyebabkan kerugian tambahan. Pengaturan stop loss yang tidak tepat dapat menyebabkan kerugian tambahan.

Solusi untuk menghadapi risiko adalah sebagai berikut:

  1. Menghindari False Breakthrough dengan menggunakan indikator volatilitas.
  2. Optimalkan parameter untuk mencari kombinasi parameter optimal.
  3. Adapun langkah-langkah yang harus dilakukan adalah dengan melakukan penyesuaian terhadap mekanisme stop loss agar tidak terlalu radikal.

Arah optimasi

Strategi ini masih memiliki ruang untuk dioptimalkan lebih jauh:

  1. Verifikasi menggunakan garis rata-rata dari beberapa periode waktu, hindari kurva yang terlalu sensitif.

  2. Menggabungkan dengan indikator lain seperti MACD untuk menilai tren dan deviasi.

  3. Memperkenalkan algoritma pembelajaran mesin dengan parameter optimasi dinamis.

Meringkaskan

Strategi Average Line Regression Breakthrough secara keseluruhan adalah strategi perdagangan kuantitatif yang sangat praktis. Ini memiliki keuntungan untuk melacak tren, mengontrol pengunduran diri, dan mencapai kebutuhan yang sederhana dan sesuai untuk perdagangan kuantitatif. Selain itu, perlu diperhatikan beberapa pilihan parameter dan masalah pengaturan stop loss, yang dikombinasikan dengan analisis multi-aksis waktu dan optimasi parameter, untuk mendapatkan kinerja strategi yang lebih baik.

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