Strategi ini menggunakan operasi persilangan antara nilai gelincir Parabolic SAR dan lilin untuk mencapai penjejakan momentum dan menghentikan kerugian untuk perdagangan ayunan. Strategi ini akan menubuhkan kedudukan panjang dan pendek apabila harga meningkat dan jatuh. Ia akan menutup kedudukan ini untuk menghentikan kerugian apabila harga terbalik.
Inti strategi ini bergantung kepada penunjuk Parabolic SAR untuk menentukan sama ada harga semasa berada dalam trend menaik atau menurun. Apabila penunjuk Parabolic SAR berada di bawah candlestick, ini bermaksud bahawa harga sedang meningkat. Dalam kes ini, strategi akan memeriksa pada akhir setiap candlestick sama ada nilai Parabolic SAR melintasi di atas paras rendah candlestick. Jika tidak, ini bermakna trend menaik akan berterusan dan strategi akan menubuhkan kedudukan panjang. Jika Parabolic SAR melintasi di atas paras rendah, ini bermakna trend menaik membalikkan arah menurun, dan strategi akan menutup kedudukan panjang untuk menghentikan kerugian.
Sebaliknya, apabila Parabolic SAR berada di atas candlestick, ia bermakna harga sedang jatuh. Dalam kes ini, strategi akan memeriksa pada akhir setiap candlestick sama ada Parabolic SAR melintasi di bawah tinggi candlestick. Jika tidak, ia akan menubuhkan kedudukan pendek. Jika Parabolic SAR melintasi tinggi, ia bermakna trend menurun berbalik ke atas, dan strategi akan menutup kedudukan pendek untuk menghentikan kerugian.
Melalui logik ini, strategi boleh menubuhkan kedudukan di sepanjang trend harga dan merealisasikan stop loss pada kali pertama apabila trend berbalik, mengunci keuntungan. Sementara itu, Parabolic SAR sebagai penunjuk momentum dapat menentukan dengan lebih tepat sama ada trend berbalik, menjadikan stop loss lebih tepat.
Kaedah untuk meningkatkan ketahanan termasuk: mengoptimumkan titik kehilangan berhenti untuk menjadikannya cukup ketat; menggabungkan penunjuk lain untuk pengesahan; menyesuaikan parameter untuk menyesuaikan diri dengan persekitaran yang berubah; memilih set parameter optimum untuk produk yang berbeza, dan lain-lain.
Secara umum, strategi swing Parabolic SAR ini adalah strategi perdagangan jangka pendek yang agak berkesan. Ia memanfaatkan Parabolic SAR untuk menentukan arah trend dan perubahan momentum, bersama dengan kaedah perdagangan swing, untuk berulang kali menubuhkan kedudukan panjang dan pendek semasa aliran naik dan turun. Mekanisme stop loss yang ketat juga memberi strategi ini keupayaan kawalan risiko yang baik. Tetapi sebagai strategi satu petunjuk, ketidakberkesanan Parabolic SAR akan mempunyai kesan yang signifikan. Jadi ini adalah strategi dengan beberapa kekuatan dan potensi, tetapi juga mempunyai beberapa risiko. Ia memerlukan backtest, pengoptimuman dan peningkatan untuk menjana pulangan berlebihan yang stabil dalam perdagangan langsung.
/*backtest start: 2023-12-14 00:00:00 end: 2023-12-21 00:00:00 period: 30m basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("Parabolic SAR Strategy", overlay=true) start = input(0.05) increment = input(0.075) maximum = input(1) fromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31) fromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12) fromYear = input(defval = 2000, title = "From Year", minval = 1970) //monday and session // To Date Inputs toDay = input(defval = 31, title = "To Day", minval = 1, maxval = 31) toMonth = input(defval = 12, title = "To Month", minval = 1, maxval = 12) toYear = input(defval = 2020, title = "To Year", minval = 1970) startDate = timestamp(fromYear, fromMonth, fromDay, 00, 00) finishDate = timestamp(toYear, toMonth, toDay, 00, 00) time_cond = true var bool uptrend = na var float EP = na var float SAR = na var float AF = start var float nextBarSAR = na if bar_index > 0 firstTrendBar = false SAR := nextBarSAR if bar_index == 1 float prevSAR = na float prevEP = na lowPrev = low[1] highPrev = high[1] closeCur = close closePrev = close[1] if closeCur > closePrev uptrend := true EP := high prevSAR := lowPrev prevEP := high else uptrend := false EP := low prevSAR := highPrev prevEP := low firstTrendBar := true SAR := prevSAR + start * (prevEP - prevSAR) if uptrend if SAR > low firstTrendBar := true uptrend := false SAR := max(EP, high) EP := low AF := start else if SAR < high firstTrendBar := true uptrend := true SAR := min(EP, low) EP := high AF := start if not firstTrendBar if uptrend if high > EP EP := high AF := min(AF + increment, maximum) else if low < EP EP := low AF := min(AF + increment, maximum) if uptrend SAR := min(SAR, low[1]) if bar_index > 1 SAR := min(SAR, low[2]) else SAR := max(SAR, high[1]) if bar_index > 1 SAR := max(SAR, high[2]) nextBarSAR := SAR + AF * (EP - SAR) if barstate.isconfirmed and time_cond if uptrend strategy.entry("ParSE", strategy.short, stop=nextBarSAR, comment="ParSE") strategy.cancel("ParLE") else strategy.entry("ParLE", strategy.long, stop=nextBarSAR, comment="ParLE") strategy.cancel("ParSE") plot(SAR, style=plot.style_cross, linewidth=3, color=color.orange) plot(nextBarSAR, style=plot.style_cross, linewidth=3, color=color.aqua) //plot(strategy.equity, title="equity", color=color.red, linewidth=2, style=plot.style_areabr)