
Chiến lược dừng theo dõi dần dần bằng cách điều chỉnh động đường dừng, thực hiện sự kết hợp hữu cơ giữa kiểm soát rủi ro và chặn chặn. Nó sử dụng phạm vi biến động thực tế trung bình để tính toán đường dừng, có thể theo dõi hiệu quả xu hướng giá cổ phiếu, đồng thời bảo vệ lợi nhuận và giảm thiểu các lỗ dừng không cần thiết. Chiến lược này phù hợp với các cổ phiếu có xu hướng mạnh mẽ, có thể thu được lợi nhuận ổn định.
Chiến lược này sử dụng tính toán phạm vi biến động thực tế trung bình ((ATR) làm cơ sở cho dừng động. ATR có thể phản ánh hiệu quả sự biến động của cổ phiếu. Chiến lược đầu tiên nhập tham số chu kỳ ATR, điển hình là 10 ngày.
Cụ thể, chiến lược tính giá trị ATR của dòng K hiện tại, sau đó nhân các tham số chiết khấu nhân chiết khấu, để có được khoảng cách dừng. Nếu giá cổ phiếu cao hơn giá dừng, hãy mở nhiều vị trí; Nếu giá cổ phiếu thấp hơn giá dừng, hãy mở vị trí trống.
Chiến lược dừng theo dõi dần dần bằng cách điều chỉnh động khoảng cách dừng, đạt được sự cân bằng hiệu quả giữa kiểm soát rủi ro và chặn chặn. Chiến lược này hoạt động đơn giản, có thể tùy chỉnh cao, phù hợp với giao dịch tự động của robot. Tất nhiên, lựa chọn tham số hợp lý và kết hợp chỉ số vẫn cần trải nghiệm bằng tay.
/*backtest
start: 2023-10-17 00:00:00
end: 2023-10-24 00:00:00
period: 10m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Supertrend Strategy, by Ho.J.", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=15)
// 백테스팅 시작일과 종료일 입력
startYear = input(2020, title="Start Year")
startMonth = input(1, title="Start Month")
startDay = input(1, title="Start Day")
endYear = input(9999, title="End Year")
endMonth = input(12, title="End Month")
endDay = input(31, title="End Day")
// 백테스팅 시간 범위 확인
backtestingTimeBool = (year >= startYear and month >= startMonth and dayofmonth >= startDay) and (year <= endYear and month <= endMonth and dayofmonth <= endDay)
atrPeriod = input(10, "ATR Length")
factor = input.float(3.0, "Factor", step = 0.01)
[_, direction] = ta.supertrend(factor, atrPeriod)
var bool longCondition = false
var bool shortCondition = false
if backtestingTimeBool
prevDirection = direction[1]
if direction < 0
longCondition := false
shortCondition := true
else if direction > 0
longCondition := true
shortCondition := false
if longCondition
strategy.entry("My Long Entry Id", strategy.long)
if shortCondition
strategy.entry("My Short Entry Id", strategy.short)
plot(strategy.equity, title="equity", color=color.rgb(255, 255, 255), linewidth=2, style=plot.style_area)