- Persegi
- MA, SMA, MA Slope, Trailing Stop Loss, Masuk semula
MA, SMA, MA Slope, Trailing Stop Loss, Masuk semula
Penulis:
ChaoZhang, Tarikh: 2024-06-07 16:41:53
Tag:
MASMAMA
Ringkasan
Strategi ini membuat keputusan dagangan berdasarkan kemiringan purata bergerak (MA) dan kedudukan relatif harga kepada MA. Apabila kemiringan MA lebih besar daripada ambang kemiringan minimum dan harga di atas MA, strategi ini memulakan kedudukan panjang. Di samping itu, strategi ini menggunakan Stop Loss Trailing untuk menguruskan risiko dan membolehkan masuk semula di bawah keadaan tertentu. Strategi ini bertujuan untuk menangkap peluang dalam trend menaik sambil mengoptimumkan pulangan dan risiko melalui mekanisme stop-loss dan masuk semula yang dinamik.
Prinsip Strategi
- Mengira purata bergerak mudah (SMA) dalam tempoh tertentu sebagai penunjuk trend utama.
- Mengira kemiringan SMA dalam saiz tetingkap yang ditentukan untuk menentukan kekuatan trend semasa.
- Apabila kemiringan SMA lebih besar daripada ambang kemiringan minimum dan harga di atas SMA, anggap pasaran berada dalam trend menaik dan memulakan kedudukan panjang.
- Setelah kedudukan dibuka, strategi menggunakan mekanisme Stop Loss Trailing untuk menyesuaikan tahap stop-loss secara dinamik berdasarkan harga semasa dan peratusan yang ditentukan.
- Jika harga mencapai tahap stop-loss, strategi menutup kedudukan dan menandakan kejadian kejadian stop-loss.
- Selepas peristiwa stop-loss berlaku, jika harga kembali di bawah SMA dengan peratusan tertentu, strategi memasuki semula pasaran.
- Jika harga melintasi di bawah SMA, strategi secara langsung menutup kedudukan.
Analisis Kelebihan
- Mengikuti Trend: Dengan menggunakan cerun SMA dan kedudukan relatif harga kepada SMA, strategi ini membantu menangkap keuntungan dalam trend menaik.
- Stop Loss Dinamik: Mekanisme Trailing Stop Loss secara dinamik menyesuaikan tahap stop-loss berdasarkan perubahan harga, memberikan perlindungan yang lebih baik untuk keuntungan dan mengehadkan kerugian.
- Masuk semula: Selepas peristiwa stop-loss berlaku, strategi memasuki semula pasaran apabila harga kembali di bawah SMA dengan peratusan tertentu, yang membolehkan peluang rebound yang berpotensi.
- Parameter Fleksibel: Strategi ini menawarkan pelbagai parameter yang boleh diselaraskan, seperti tempoh SMA, ambang kemiringan minimum, peratusan stop-loss, dan lain-lain, yang boleh dioptimumkan berdasarkan keadaan pasaran yang berbeza.
Analisis Risiko
- Sensitiviti Parameter: Prestasi strategi mungkin sensitif terhadap tetapan parameter, dan pilihan parameter yang tidak betul boleh membawa kepada hasil yang kurang optimum.
- Pengiktirafan Trend: Strategi ini terutamanya bergantung pada cerun SMA dan kedudukan harga relatif kepada SMA untuk mengenal pasti trend, yang boleh menghasilkan isyarat palsu dalam keadaan pasaran tertentu.
- Kekerapan Stop-Loss: Mekanisme Trailing Stop Loss boleh menyebabkan stop-loss yang kerap, terutamanya semasa keadaan pasaran yang sangat tidak menentu, yang memberi kesan kepada prestasi keseluruhan strategi.
- Risiko Masuk Kembali: Mekanisme kemasukan semula kadangkala boleh menyebabkan strategi memasuki semula pasaran selepas penurunan lagi, memperkuat kerugian.
Arahan pengoptimuman
- Pengesahan Trend: Untuk meningkatkan ketepatan pengiktirafan trend, pertimbangkan untuk memasukkan penunjuk teknikal tambahan atau corak tindakan harga di samping cerun SMA dan kedudukan harga.
- Pengoptimuman Stop-Loss: Jelajahi kaedah stop-loss alternatif, seperti stop-loss berdasarkan turun naik atau sokongan / rintangan, untuk menyesuaikan diri dengan keadaan pasaran yang berbeza.
- Keadaan kemasukan semula: Memperbetulkan keadaan kemasukan semula dengan mempertimbangkan faktor-faktor seperti besar dan tempoh penyesuaian harga untuk menapis isyarat kemasukan semula yang tidak baik.
- Pengukuran Posisi: Memperkenalkan mekanisme pengukuran kedudukan untuk menyesuaikan saiz setiap perdagangan berdasarkan turun naik pasaran atau penunjuk risiko lain, membantu mengawal pendedahan risiko keseluruhan.
Ringkasan
Strategi ini menentukan trend berdasarkan kemiringan purata bergerak dan kedudukan relatif harga terhadap purata bergerak. Ia menggunakan Trailing Stop Loss dan mekanisme kemasukan semula bersyarat untuk menguruskan perdagangan. Kekuatan strategi terletak pada keupayaan mengikuti trend, perlindungan stop-loss dinamik, dan menangkap peluang kemasukan semula. Walau bagaimanapun, strategi ini juga mempunyai kelemahan yang berpotensi, seperti sensitiviti parameter, kesilapan pengenalan trend, kekerapan stop-loss, dan risiko kemasukan semula. Arahan pengoptimuman termasuk penyempurnaan pengiktirafan trend, kaedah berhenti-kerugian, keadaan kemasukan semula, dan saiz kedudukan.
/*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 lanjut