Chiến lược này dựa trên các chỉ số hệ thống chuyển hướng đường parabola, kết hợp với cửa sổ thời gian để kiểm tra lại, để đạt được hiệu quả theo dõi động lực. Chiến lược này chủ yếu áp dụng cho các giống có xu hướng mạnh, bằng cách điều chỉnh động điểm dừng để đạt được điểm dừng theo dõi xu hướng.
Chiến lược này sử dụng hệ thống chuyển hướng đường parabola ((Parabolic SAR) làm chỉ số kỹ thuật chính. Parabolic SAR có thể cung cấp tín hiệu đảo ngược rất chính xác.
Chiến lược đặt ba tham số của Parabolic SAR, bao gồm giá trị ban đầu, giá trị bước và giá trị tối đa. Sau đó tính giá trị của Parabolic SAR. Chiến lược sử dụng Parabolic SAR làm điểm dừng động.
Bằng cách này, chiến lược có thể theo dõi xu hướng khi giá cổ phiếu đang trong trạng thái xu hướng; khi giá cổ phiếu bắt đầu đảo ngược, dừng lại nhanh chóng, hoàn thành một chu kỳ giao dịch.
Chiến lược này tận dụng tối đa tính năng dừng lỗ hiệu quả mà chỉ số Parabolic SAR cung cấp, đạt được hiệu quả của việc theo dõi động lực dừng lỗ. So với điểm dừng cố định, chiến lược này có thể được điều chỉnh động, tự động theo dõi xu hướng để dừng lỗ, tránh vị trí bị dừng quá sớm. Đồng thời, rủi ro của chiến lược cũng không thể bị bỏ qua, cần nhiều khía cạnh để tối ưu hóa và phong phú, để chiến lược duy trì hiệu suất ổn định trong các thị trường khác nhau.
/*backtest
start: 2023-09-26 00:00:00
end: 2023-10-26 00:00:00
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
// === by @Aldovitch ===
// PSAR Strategy
// Based on Parabolic SAR Strategy provided by TradingView
// added a Time Window for Backtests
//
strategy("Parabolic SAR Strategy w/ Time Window", shorttitle="PSAR Strategy w/ TW", overlay=true)
// === INPUT INDEXES PARAMETERS ===
start = input(0.02)
increment = input(0.02)
maximum = input(0.2)
// === INPUT BACKTEST RANGE ===
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 = 2018, title = "From Year", minval = 2016)
ToDay = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToMonth = input(defval = 12, title = "To Month", minval = 1, maxval = 12)
ToYear = input(defval = 9999, title = "To Year", minval = 2017)
// === CONTROL & APPEARENCE ===
timeStart = timestamp(FromYear, FromMonth, FromDay, 00, 00) // backtest start window
timeFinish = timestamp(ToYear, ToMonth, ToDay, 23, 59) // backtest finish window
// === FUNCTIONS ===
window() => true // create function "within window of time"
// === COMPUTING INDEXES ===
psar = sar(start, increment, maximum)
if (psar > high)
strategy.entry("ParLE", strategy.long, stop=psar, comment="ParLE", when=window())
else
strategy.cancel("ParLE")
if (psar < low)
strategy.entry("ParSE", strategy.short, stop=psar, comment="ParSE", when=window())
else
strategy.cancel("ParSE")
//plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)