Chiến lược dừng lỗ thông minh


Ngày tạo: 2024-01-25 12:50:12 sửa đổi lần cuối: 2024-01-25 12:50:12
sao chép: 3 Số nhấp chuột: 725
1
tập trung vào
1617
Người theo dõi

Chiến lược dừng lỗ thông minh

Tổng quan

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.

Nguyên tắc chiến lược

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:

  • EP: Điểm cực đoan
  • SAR: Điểm dừng hiện tại
  • AF: Nhân bước dài, được sử dụng để kiểm soát độ lớn của điều chỉnh đường dừng
  • Biểu tượng xu hướng tăng: đánh giá xu hướng tăng hay giảm

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.

Lợi thế chiến lược

Ư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:

  1. Giảm tối đa rút lui: Điều chỉnh thông minh đường dừng lỗ, có thể rút ra trước khi thị trường đảo ngược, tối đa bảo vệ lợi nhuận đã đạt được
  2. Bắt xu hướng: Đường dừng sẽ điều chỉnh theo mức cao mới hoặc thấp mới, tự động theo dõi xu hướng giá
  3. Các tham số có thể tùy chỉnh: Người dùng có thể tùy chỉnh độ dài bước AF và giá trị bắt đầu, điều chỉnh độ nhạy của điều chỉnh dừng lỗ theo sở thích rủi ro của riêng mình

Phân tích rủi ro

Chiến lược này cũng có một số rủi ro cần lưu ý:

  1. Quá nhạy cảm: Nếu bước AF được điều chỉnh quá lớn hoặc giá trị bắt đầu quá nhỏ, đường dừng sẽ quá nhạy cảm, có thể được kích hoạt bởi các kích thích tiếng ồn thị trường ngắn hạn
  2. Lỡ bỏ cơ hội: Việc dừng lỗ được kích hoạt quá sớm cũng có thể dẫn đến cơ hội lợi nhuận sau khi lỗ tiếp tục tăng
  3. Chọn tham số: Thiết lập tham số không đúng cũng ảnh hưởng đến hiệu quả của chiến lược, cần điều chỉnh tham số cho các thị trường khác nhau

Hướng tối ưu hóa

Chiến lược này cũng có thể được tối ưu hóa theo các hướng sau:

  1. Kết hợp với các chỉ số khác: có thể tạm dừng điều chỉnh đường lỗ khi các chỉ số chu kỳ lớn phát ra tín hiệu, tránh dừng lỗ quá sớm trước khi xu hướng đảo ngược
  2. Tăng mô-đun thích ứng tham số: có thể tự động tối ưu tham số dựa trên dữ liệu lịch sử thông qua thuật toán học máy
  3. Nhiều mức dừng: Có thể thiết lập nhiều đường dừng để theo dõi các biến động khác nhau

Tóm tắt

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.

Mã nguồn chiến lược
/*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")