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

Tác giả:ChaoZhang, Ngày: 2024-01-25 12:50:12
Tags:

img

Tổng quan

Chiến lược dừng lỗ sau thông minh là một chiến lược tự động điều chỉnh điểm dừng lỗ dựa trên sự thay đổi giá. Nó kết hợp logic của chỉ số SAR và điều chỉnh đường dừng lỗ sau khi giá đạt đến điểm cao hoặc thấp mới để đạt được kiểm soát giảm tối đa.

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

Lý thuyết cốt lõi của chiến lược này là tự động điều chỉnh đường dừng lỗ dựa trên chỉ số SAR. Cụ thể, nó xác định bốn biến:

  • EP: Điểm cực
  • SAR: Điểm dừng lỗ hiện tại
  • AF: Step Factor, được sử dụng để điều khiển cường độ điều chỉnh của đường dừng mất mát
  • Uptrend Flag: Để đánh giá xem hiện tại nó là một xu hướng tăng hay giảm

Trong một xu hướng tăng, đường dừng lỗ sẽ tiếp tục di chuyển lên để theo dõi giá tăng. Khi giá biến thành xu hướng giảm, đường dừng lỗ vẫn không thay đổi cho đến xu hướng tăng tiếp theo.

Độ lớn điều chỉnh của đường stop loss được điều khiển bởi Step Factor AF. AF sẽ tăng khi một điểm stop loss mới được thiết lập thành công, do đó mở rộng độ lớn điều chỉnh tiếp theo.

Ưu điểm

Ưu điểm lớn nhất của chiến lược này là nó có thể điều chỉnh điểm dừng lỗ một cách thông minh theo biến động của thị trường, trong khi đảm bảo không gian lợi nhuận đủ và giảm thiểu mức rút tối đa càng nhiều càng tốt.

Cụ thể, có những lợi thế chính:

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

Phân tích rủi ro

Ngoài ra còn có một số rủi ro cần lưu ý cho chiến lược này:

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

Hướng dẫn tối ưu hóa

Chiến lược cũng có thể được tối ưu hóa trong các khía cạnh sau:

  1. Kết hợp với các chỉ số khác: Chế độ điều chỉnh đường dừng lỗ tạm dừng khi các chỉ số chu kỳ chính phát ra tín hiệu để tránh dừng lỗ sớm trước khi đảo ngược xu hướng
  2. Thêm Parameter Self-Adaptive Module: Tự động tối ưu hóa các tham số dựa trên dữ liệu lịch sử bằng cách sử dụng thuật toán học máy
  3. Stop Loss đa cấp: Thiết lập nhiều đường stop loss để theo dõi các cường độ khác nhau của biến động thị trường

Kết luận

Chiến lược dừng lỗ theo dõi thông minh điều chỉnh các vị trí đường dừng lỗ trong thời gian thực bằng cách mô phỏng logic hoạt động của chỉ số SAR. Trong khi bảo vệ lợi nhuận, nó cũng giảm thiểu khả năng bỏ lỡ cơ hội càng nhiều càng tốt. Nó tối đa hóa giá trị vốn có của chức năng dừng lỗ.

So với các chiến lược dừng lỗ cố định truyền thống, chiến lược này có thể thích nghi tốt hơn với những thay đổi của thị trường và linh hoạt hơn. Thông qua các cài đặt tham số tùy chỉnh, người dùng có thể chọn các chế độ dừng lỗ phù hợp với sở thích rủi ro của riêng họ.

Tất nhiên, cũng có một số không gian tối ưu hóa tham số cho chiến lược này, và hiệu ứng cải thiện có thể đạt được bằng cách kết hợp các chỉ số khá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")

Thêm nữa