
Chiến lược này là một chiến lược giao dịch Swing sử dụng điểm trượt đường Parabolic SAR và đường K để hoạt động chéo, thực hiện theo dõi động lực và dừng lỗ. Chiến lược này sẽ tạo ra các vị trí mua và bán trong tình huống giảm giá và giảm giá, đồng hóa các vị trí dừng lỗ khi giá đảo ngược.
Chiến lược này dựa chủ yếu vào chỉ số đường parabolic ((Parabolic SAR) để xác định hiện tại là xu hướng tăng hoặc xu hướng giảm. Khi chỉ số Parabolic SAR ở dưới đường K, cho thấy hiện tại đang ở trạng thái tăng giá, chiến lược sẽ kiểm tra xem giá trị Parabolic SAR có vượt qua mức giá thấp nhất của đường K hay không, nếu không vượt qua, chiến lược sẽ tạo ra nhiều vị trí; Nếu vượt qua mức giá thấp nhất của đường K trên Parabolic SAR, cho thấy xu hướng tăng trở lại xuống, chiến lược sẽ bị dừng nhiều vị trí. Ngược lại, khi chỉ số Parabolic SAR ở trên đường K, cho thấy hiện tại đang ở trạng thái giảm giá.
Với nguyên tắc hoạt động như vậy, chiến lược này có thể tạo vị trí theo thứ tự dưới xu hướng giá được xác nhận và dừng lỗ lần đầu tiên, do đó khóa lợi nhuận. Đồng thời, đường parabola, là một chỉ số động lực, có thể xác định chính xác hơn liệu xu hướng có đảo ngược hay không, điều này cũng làm cho dừng lỗ chính xác hơn.
Các phương pháp để tăng cường sức mạnh của chiến lược bao gồm: tối ưu hóa thiết lập điểm dừng để nó đủ nghiêm ngặt; kết hợp các phán đoán chỉ số khác để xác nhận; điều chỉnh các tham số chỉ số để phù hợp với sự thay đổi của môi trường thị trường; lựa chọn các cặp tham số tối ưu theo các giống khác nhau.
Chiến lược xoay ngang là một chiến lược hoạt động ngắn hiệu quả. Nó sử dụng các chỉ số đường ngang để đánh giá xu hướng xu hướng và sự thay đổi động lực của giá cả, kết hợp với phương thức giao dịch Swing, liên tục thiết lập các vị trí mua và bán trong giai đoạn tăng và giảm.
/*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)