Chiến lược dừng lỗ theo tỷ lệ phần trăm

Tác giả:ChaoZhang, Ngày: 2024-01-08 17:12:46
Tags:

img

Tổng quan

Chiến lược dừng lỗ theo dõi tỷ lệ phần trăm là một chiến lược thiết lập và điều chỉnh lệnh dừng lỗ dựa trên tỷ lệ phần trăm của giá công cụ. Nó có thể điều chỉnh lệnh dừng lỗ theo giá nhập khẩu sau khi giá đạt đến một mức lợi nhuận nhất định để nhận ra mức dừng lỗ.

Chiến lược logic

Chiến lược này thiết lập tỷ lệ phần trăm cho lệnh dừng lỗ theo sau bằng các tham số đầu vào, chẳng hạn như 3%. Sau khi mở một vị trí, nó tính toán giá dừng lỗ theo sau theo thời gian thực. Phương pháp tính toán là:

  1. Khi giá vượt quá giá nhập cảnh* ((1 + tỷ lệ dừng lỗ), giá dừng lỗ được điều chỉnh theo giá nhập cảnh để đạt được mức cân bằng.

  2. Khi giá thấp hơn mức trên, giá dừng lỗ là giá đầu vào* ((1-phần trăm dừng lỗ).

Điều này có thể nhận ra mức dừng lỗ khi giá đạt đến một mức lợi nhuận nhất định, tránh mất tất cả lợi nhuận bằng thua lỗ, trong khi ngăn chặn mức dừng lỗ quá mạnh bị đánh bại bởi biến động giá bình thường.

Chiến lược này cũng vẽ ra giá dừng lỗ cuối cùng để xác nhận, và chỉ đặt để đi dài. Nó đi dài trên thập tự vàng và đóng vị trí trên thập tự chết. Sau khi đi dài, nó đặt lệnh dừng lỗ cuối cùng để nhận ra logic dừng lỗ.

Phân tích lợi thế

Ưu điểm lớn nhất của chiến lược này là nó có thể nhận ra mức dừng lỗ sau khi kiếm được lợi nhuận thông qua việc dừng lỗ sau, bất kể thị trường sau đó đi như thế nào, ít nhất chính có thể được giữ để tránh lỗ. Điều này rất quan trọng đối với nhiều nhà đầu tư.

Ngoài ra, mức dừng lỗ của chiến lược này tương đối nhẹ. Phạm vi dừng lỗ sau không quá lớn, có thể ngăn chặn bị dừng bởi biến động giá bình thường so với mức dừng lỗ cố định. Nó linh hoạt và thông minh hơn.

Phân tích rủi ro

Rủi ro chính của chiến lược này là nếu tỷ lệ stoploss được đặt không đúng cách. Nếu đặt quá nhỏ, sẽ rất khó để nhận ra lỗ stop break-even. Nếu đặt quá lớn, sẽ dễ dàng bị dừng bởi biến động giá bình thường. Vì vậy, tỷ lệ stoploss thích hợp cần kiểm tra và đánh giá cẩn thận.

Một rủi ro khác là trong các thị trường bất thường, giá có thể đột ngột có khoảng cách lớn. Trong trường hợp này, giá dừng lỗ có thể không thể cập nhật kịp thời, dẫn đến dừng lỗ không hợp lệ. Nhưng xác suất tương đối nhỏ.

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

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

  1. Thêm các quy tắc thoát như death cross, giá vượt qua SMA vv để làm cho chiến lược toàn diện hơn.

  2. Thêm cơ chế điều chỉnh năng động của tỷ lệ dừng lỗ, để tự động tối ưu hóa phạm vi dừng lỗ trong môi trường thị trường khác nhau.

  3. Thêm các chiến lược thoát khỏi các vị trí thoát ra sau khi giá chạy một phạm vi nhất định để khóa lợi nhuận.

  4. Nghiên cứu sự khác biệt của các tham số tỷ lệ giảm dừng trên các công cụ khác nhau, thiết lập cơ chế tối ưu hóa tự điều chỉnh tham số.

Kết luận

Chiến lược dừng lỗ theo dõi tỷ lệ phần trăm là rất thực tế nói chung, có thể thực hiện hiệu quả mức dừng lỗ sau khi kiếm được lợi nhuận để tránh lỗ. Chiến lược này có nhiều chỗ để tối ưu hóa và đáng nghiên cứu thêm để cải thiện hiệu quả. Nói chung, chiến lược này phù hợp với các nhà đầu tư theo đuổi lợi nhuận đầu tư ổn định.


/*backtest
start: 2023-12-08 00:00:00
end: 2024-01-07 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © osmaras
// based on https://kodify.net/tradingview/orders/percentage-trail/

//@version=5
strategy("Break even stop loss (% of instrument price)", overlay=true)

// Configure trail stop level with input options (optional)
longTrailPerc = input.float(defval=3.0,step=0.1,title="Trail Long Loss (%)")* 0.01 
longCondition = ta.crossover(ta.sma(close, 14), ta.sma(close, 28))

// Determine trail stop loss prices
longStopPrice = 0.0
lastEntryPrice = strategy.opentrades.entry_price(strategy.opentrades - 1)
longStopPrice := if (strategy.position_size > 0 and close > (lastEntryPrice * (1 + longTrailPerc)))
    stopValue = lastEntryPrice
    math.max(stopValue, longStopPrice[1])
else
    longStopPrice := if (strategy.position_size > 0)
        stopValue = lastEntryPrice * (1 - longTrailPerc)
        math.max(stopValue, longStopPrice[1])
    else
        0

// Plot stop loss values for confirmation
plot(series=(strategy.position_size > 0) ? longStopPrice : na,
     color=color.fuchsia, style=plot.style_cross,
     linewidth=2, title="Long Trail Stop")

// set strategy only long
strategy.risk.allow_entry_in(strategy.direction.long)

// Submit entry orders
if (longCondition)
    strategy.entry("Long", strategy.long)

shortCondition = ta.crossunder(ta.sma(close, 14), ta.sma(close, 28))
if (shortCondition)
    strategy.close("Long")


// Submit exit orders for trail stop loss price
if (strategy.position_size > 0)
    strategy.exit(id="Stop Loss", stop=longStopPrice)



Thêm nữa