- Persegi
- MA, SMA, MA Slope, Trailing Stop Loss, Re-Entry
MA, SMA, MA Slope, Trailing Stop Loss, Re-Entry
Penulis:
ChaoZhang, Tanggal: 2024-06-07 16:41:53
Tag:
MASMAMA
Gambaran umum
Strategi ini membuat keputusan perdagangan berdasarkan kemiringan rata-rata bergerak (MA) dan posisi relatif harga terhadap MA. Ketika kemiringan MA lebih besar dari ambang kemiringan minimum dan harga di atas MA, strategi ini memulai posisi panjang. Selain itu, strategi ini menggunakan Trailing Stop Loss untuk mengelola risiko dan memungkinkan re-entry dalam kondisi tertentu. Strategi ini bertujuan untuk menangkap peluang dalam tren naik sambil mengoptimalkan pengembalian dan risiko melalui mekanisme stop-loss dan re-entry dinamis.
Prinsip Strategi
- Menghitung Simple Moving Average (SMA) selama periode tertentu sebagai indikator tren utama.
- Menghitung kemiringan SMA dalam ukuran jendela yang ditentukan untuk menentukan kekuatan tren saat ini.
- Ketika kemiringan SMA lebih besar dari ambang kemiringan minimum dan harga di atas SMA, anggap pasar berada dalam tren naik dan memulai posisi panjang.
- Setelah posisi dibuka, strategi menggunakan mekanisme Trailing Stop Loss untuk menyesuaikan secara dinamis tingkat stop-loss berdasarkan harga saat ini dan persentase yang ditentukan.
- Jika harga mencapai level stop-loss, strategi menutup posisi dan menandai terjadinya peristiwa stop-loss.
- Setelah kejadian stop-loss terjadi, jika harga kembali di bawah SMA dengan persentase tertentu, strategi memasuki kembali pasar.
- Jika harga melintasi di bawah SMA, strategi secara langsung menutup posisi.
Analisis Keuntungan
- Trend Following: Dengan menggunakan kemiringan SMA dan posisi relatif harga terhadap SMA, strategi membantu menangkap keuntungan dalam tren naik.
- Stop Loss Dinamis: Mekanisme Trailing Stop Loss secara dinamis menyesuaikan tingkat stop loss berdasarkan perubahan harga, memberikan perlindungan yang lebih baik untuk keuntungan dan membatasi kerugian.
- Re-entry: Setelah terjadi peristiwa stop-loss, strategi memasuki kembali pasar ketika harga kembali di bawah SMA dengan persentase tertentu, memungkinkan potensi peluang rebound.
- Parameter Fleksibel: Strategi ini menawarkan beberapa parameter yang dapat disesuaikan, seperti periode SMA, ambang kemiringan minimum, persentase stop-loss trailing, dll., yang dapat dioptimalkan berdasarkan kondisi pasar yang berbeda.
Analisis Risiko
- Sensitivitas Parameter: Kinerja strategi mungkin sensitif terhadap pengaturan parameter, dan pilihan parameter yang tidak tepat dapat menyebabkan hasil yang tidak optimal.
- Pengakuan Tren: Strategi ini terutama bergantung pada kemiringan SMA dan posisi relatif harga terhadap SMA untuk mengidentifikasi tren, yang dapat menghasilkan sinyal palsu dalam kondisi pasar tertentu.
- Frekuensi Stop-Loss: Mekanisme Trailing Stop Loss dapat menghasilkan stop-loss yang sering, terutama selama kondisi pasar yang sangat volatile, yang berdampak pada kinerja keseluruhan strategi.
- Risiko Re-entry: Mekanisme re-entry kadang-kadang dapat menyebabkan strategi memasuki kembali pasar setelah penurunan lebih lanjut, memperkuat kerugian.
Arahan Optimasi
- Konfirmasi tren: Untuk meningkatkan akurasi pengenalan tren, pertimbangkan untuk memasukkan indikator teknis tambahan atau pola aksi harga di samping kemiringan SMA dan posisi harga.
- Optimasi Stop-Loss: Jelajahi metode stop-loss alternatif, seperti stop-loss berbasis volatilitas atau berbasis support/resistance, untuk lebih beradaptasi dengan kondisi pasar yang berbeda.
- Kondisi Re-entry: Memperbaiki kondisi re-entry dengan mempertimbangkan faktor-faktor seperti besarnya dan durasi retracement harga untuk menyaring sinyal re-entry yang tidak menguntungkan.
- Ukuran Posisi: Memperkenalkan mekanisme ukuran posisi untuk menyesuaikan ukuran setiap perdagangan berdasarkan volatilitas pasar atau indikator risiko lainnya, membantu mengendalikan eksposur risiko secara keseluruhan.
Ringkasan
Strategi ini menentukan tren berdasarkan kemiringan rata-rata bergerak dan posisi relatif harga terhadap rata-rata bergerak. Ini menggunakan Trailing Stop Loss dan mekanisme re-entry bersyarat untuk mengelola perdagangan. Kekuatan strategi terletak pada kemampuan mengikuti tren, perlindungan stop-loss dinamis, dan menangkap peluang re-entry. Namun, strategi ini juga memiliki potensi kelemahan, seperti sensitivitas parameter, kesalahan pengenalan tren, frekuensi stop-loss, dan risiko re-entry. Arahan optimalisasi termasuk penyempurnaan pengenalan tren, metode stop-loss, kondisi re-entry, dan ukuran posisi.
/*backtest
start: 2024-05-01 00:00:00
end: 2024-05-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("MA Incline Strategy with Trailing Stop-Loss and Conditional Re-Entry", overlay=true, calc_on_every_tick=true)
// Input parameters
windowSize = input.int(10, title="Window Size")
maLength = input.int(150, title="Moving Average Length")
minSlope = input.float(0.001, title="Minimum Slope")
trailingStopPercentage = input.float(2.8, title="Trailing Stop Percentage (%)") / 100
reEntryPercentage = input.float(4.2, title="Re-Entry Percentage Above MA (%)") / 100
// Calculate the moving average
ma = ta.sma(close, maLength)
// Calculate the slope of the moving average over the window size
previousMa = ta.sma(close[windowSize], maLength)
slopeMa = (ma - previousMa) / windowSize
// Check conditions
isAboveMinSlope = slopeMa > minSlope
isAboveMa = close > ma
// Variables to track stop loss and re-entry condition
var bool stopLossOccurred = false
var float trailStopPrice = na
// Buy condition
buyCondition = isAboveMinSlope and isAboveMa and ((not stopLossOccurred) or (stopLossOccurred and low < ma * (1 + reEntryPercentage)))
// Execute strategy
if (buyCondition and strategy.opentrades == 0)
if (stopLossOccurred and close < ma * (1 + reEntryPercentage))
strategy.entry("Long", strategy.long)
stopLossOccurred := false
else if (not stopLossOccurred)
strategy.entry("Long", strategy.long)
// Trailing stop-loss
if (strategy.opentrades == 1)
// Calculate the trailing stop price
trailStopPrice := close * (1 - trailingStopPercentage)
// Use the built-in strategy.exit function with the trailing stop
strategy.exit("Trail Stop", "Long", stop=close * (1 - trailingStopPercentage))
// Exit condition
sellCondition = ta.crossunder(close, ma)
if (sellCondition and strategy.opentrades == 1)
strategy.close("Long")
// Check if stop loss occurred
if (strategy.closedtrades > 0)
lastExitPrice = strategy.closedtrades.exit_price(strategy.closedtrades - 1)
if (not na(trailStopPrice) and lastExitPrice <= trailStopPrice)
stopLossOccurred := true
// Reset stop loss flag if the price crosses below the MA
if (ta.crossunder(close, ma))
stopLossOccurred := false
Berkaitan
Lebih banyak