
Chiến lược dừng lỗ theo dõi thông minh (Intelligent Trailing Stop Loss Strategy) là một chiến lược tự động điều chỉnh điểm dừng dựa trên sự thay đổi của giá. Nó kết hợp logic của chỉ số SAR, theo dõi và điều chỉnh đường dừng lỗ khi giá đạt đến mức cao hoặc thấp mới, để kiểm soát rút lui tối đa.
Lập luận cốt lõi của chiến lược này là tự động điều chỉnh đường dừng dựa trên chỉ số SAR. Cụ thể, nó xác định 4 biến:
Khi xu hướng tăng, đường dừng sẽ liên tục tăng lên, theo dõi giá tăng; khi giá chuyển sang giảm, đường dừng sẽ không thay đổi cho đến khi chuyển sang xu hướng tăng trở lại.
Độ rộng của điều chỉnh đường dừng được điều khiển bằng hệ số bước dài AF. AF sẽ tăng khi thiết lập điểm dừng mới thành công, do đó mở rộng độ rộng của điều chỉnh bước tiếp theo.
Ưu điểm lớn nhất của chiến lược này là có thể điều chỉnh điểm dừng lỗ thông minh theo biến động của thị trường, đồng thời đảm bảo đủ không gian lợi nhuận, cũng có thể giảm thiểu tối đa sự rút lui. Nó có thể nắm bắt xu hướng giá tốt hơn so với phương pháp dừng tĩnh truyền thống.
Trong đó, có một số ưu điểm:
Chiến lược này cũng có một số rủi ro cần lưu ý:
Chiến lược này cũng có thể được tối ưu hóa theo các hướng sau:
Chiến lược dừng lỗ theo dõi thông minh bằng cách mô phỏng logic hoạt động của chỉ số SAR, điều chỉnh vị trí đường dừng lỗ trong thời gian thực, giảm thiểu khả năng bị mất trong khi bảo vệ lợi nhuận. Nó tối đa hóa giá trị của chính chức năng dừng lỗ.
Chiến lược này có thể thích ứng tốt hơn với sự thay đổi của thị trường và linh hoạt hơn so với các chiến lược với điểm dừng cố định truyền thống. Bằng cách thiết lập các tham số tùy chỉnh, người dùng có thể chọn mô hình dừng phù hợp với họ theo sở thích rủi ro của họ.
Tất nhiên, chiến lược này cũng có một số không gian để tối ưu hóa các tham số và kết hợp với các chỉ số khác có thể đạt được hiệu quả cao hơn. Nhìn chung, nó đã tìm ra một điểm cân bằng thông minh hơn cho các nhà đầu tư giữa dừng lỗ và dừng lại.
/*backtest
start: 2024-01-17 00:00:00
end: 2024-01-24 00:00:00
period: 15m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("Lucid SAR Strategy", shorttitle="Lucid SAR Strategy", overlay=true)
// Full credit to Sawcruhteez, Lucid Investment Strategies LLC and Casey Bowman.
// This is a strategy version of the Lucid SAR indicator created by the above-mentioned parties.
// Original version of the indicator: https://www.tradingview.com/script/OkACQQgL-Lucid-SAR/
// Branded under the name "Lucid SAR"
// As agreed to with Lucid Investment Strategies LLC on July 9, 2019
// https://lucidinvestmentstrategies.com/
// Created by Casey Bowman on July 4, 2019
// MIT License
// Copyright (c) 2019 Casey Bowman
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
// The above copyright notice and this permission notice shall be included in all
// copies or substantial portions of the Software.
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
// SOFTWARE.
AF_initial = input(0.02)
AF_increment = input(0.02)
AF_maximum = input(0.2)
// start with uptrend
uptrend = true
newtrend = false
EP = high
SAR = low
AF = AF_initial
if not na(uptrend[1]) and not na(newtrend[1])
if uptrend[1]
EP := max(high, EP[1])
else
EP := min(low, EP[1])
if newtrend[1]
AF := AF_initial
else
if EP != EP[1]
AF := min(AF_maximum, AF[1] + AF_increment)
else
AF := AF[1]
SAR := SAR[1] + AF * (EP - SAR[1])
if uptrend[1]
if newtrend
SAR := max(high, EP[1])
EP := min(low, low[1])
else
SAR := min(SAR, low[1])
if not na(low[2])
SAR := min(SAR, low[2])
if SAR > low
uptrend := false
newtrend := true
SAR := max(high, EP[1])
EP := min(low, low[1])
else
uptrend := true
newtrend := false
else
if newtrend
SAR := min(low, EP[1])
EP := max(high, high[1])
else
SAR := max(SAR, high[1])
if not na(high[2])
SAR := max(SAR, high[2])
if SAR < high
uptrend := true
newtrend := true
SAR := min(low, EP[1])
EP := max(high, high[1])
else
uptrend := false
newtrend := false
plot(SAR, color = color.blue, style = plot.style_cross, linewidth = 2)
if (uptrend)
strategy.entry("PBSARLE", strategy.long, comment="PBSARLE")
if (newtrend)
strategy.entry("PBSARSE", strategy.short, comment="PBSARSE")