Chiến lược dấu vết dừng mất mát động

Tác giả:ChaoZhang, Ngày: 2023-11-21 15:22:44
Tags:

img

Tổng quan

Chiến lược dấu vết dừng lỗ động tính toán phạm vi trung bình thực sự (ATR) của cổ phiếu như một điểm chuẩn, kết hợp với các hệ số ATR được thiết lập bởi người dùng để thiết lập động các đường dừng lỗ và các đường mòn để đạt được mục đích của dấu vết dừng lỗ. Khi giá cổ phiếu vượt qua đường mòn, một vị trí dài được thiết lập bằng cách sử dụng một chiến lược theo dõi xu hướng truyền thống; khi giá cổ phiếu giảm xuống dưới đường dừng lỗ, một vị trí ngắn được thiết lập bằng cách sử dụng một chiến lược đảo ngược để kiếm lợi nhuận thông qua giao dịch hai chiều.

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

Chiến lược này chủ yếu sử dụng chỉ số kỹ thuật ATR để tính toán phạm vi trung bình thực sự của giá cổ phiếu, và kết hợp các hệ số ATR được nhập bởi người dùng làm điểm chuẩn cho mua cổ phiếu và bán dừng lỗ. Cụ thể, chiến lược đầu tiên tính giá trị ATR của cổ phiếu trong 120 ngày qua, sau đó nhân với hệ số ATR bán được thiết lập bởi người dùng để có được giá tham khảo bán dừng lỗ, tức là đường dừng lỗ; nhân với hệ số ATR mua để có được giá tham khảo mua, tức là đường mòn. Khi giá cao nhất ngày hôm nay vượt qua đường mòn, một vị trí dài được thiết lập bằng cách sử dụng chiến lược theo dõi xu hướng; khi giá thấp nhất ngày hôm nay giảm xuống dưới đường lỗ và giữ một vị trí dừng dài, một vị trí ngắn được thiết lập bằng cách sử dụng chiến lược đảo ngược.

Chỉ số ATR có thể phản ánh tốt hơn phạm vi biến động trung bình thực sự của một cổ phiếu. Sử dụng chỉ số ATR để thiết lập các đường stop loss trail có thể giúp tránh thiệt hại do biến động cổ phiếu lớn đến một mức độ nào đó.

Phân tích lợi thế

  • Sử dụng các chỉ số ATR để tính phạm vi biến động giá cổ phiếu, vị trí đường dẫn dừng lỗ là hợp lý;
  • Đường dừng lỗ và đường dẫn thay đổi năng động, với một số khả năng theo dõi xu hướng;
  • Đi dài và ngắn cùng một lúc, giao dịch hai chiều, nhiều không gian lợi nhuận hơn;
  • Thích hợp cho các cổ phiếu biến động cao, các chỉ số ATR giúp kiểm soát rủi ro.

Phân tích rủi ro

  • Các chỉ số ATR phản ứng không đầy đủ với các trường hợp khẩn cấp, không thể tránh hoàn toàn rủi ro;
  • Trailing buy-in và bán dừng lỗ chỉ dựa trên việc phá vỡ đường ATR, có một số sự tuân thủ mù quáng, giao dịch quá mức có thể xảy ra;
  • Sự hợp lý của các hệ số ATR được nhập bởi người dùng ảnh hưởng trực tiếp đến hiệu quả chiến lược, cài đặt không đúng có thể gây ra tổn thất;
  • Khi biến động cổ phiếu giảm, đường mòn dừng lỗ thường xuyên có thể làm tăng chi phí giao dịch.

Tối ưu hóa

  • Kết hợp các chỉ số khác để xác định thời gian giao dịch, tránh theo dõi mù;
  • Thiết lập các quy tắc định kích thước vị trí và các quy tắc kim tự tháp để kiểm soát rủi ro;
  • Thêm bộ lọc khối lượng giao dịch hoặc độ biến động để tránh giao dịch quá mức;
  • Điều chỉnh động các thông số ATR để tối ưu hóa hiệu ứng đường mòn dừng mất mát.

Tóm lại

Tóm lại, đây là một chiến lược stop loss trail điển hình. Ý tưởng cốt lõi là thiết lập các đường stop loss và đường trail dựa trên các chỉ số ATR để theo dõi xu hướng. Lợi thế của chiến lược này là giao dịch hai chiều được kích hoạt và các vị trí linh hoạt; Các chỉ số ATR giúp kiểm soát rủi ro, làm cho nó phù hợp với các cổ phiếu biến động cao. Tuy nhiên, có một số rủi ro theo dõi mù do các quy tắc giao dịch khá đơn giản; cài đặt tham số không đúng cũng ảnh hưởng đến hiệu quả chiến lược.


/*backtest
start: 2022-11-14 00:00:00
end: 2023-11-20 00:00:00
period: 1d
basePeriod: 1h
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/
// © phobo3s

//@version=4
strategy("ATR Stop Buy Strategy",shorttitle="ATR-ST",initial_capital=1000, overlay = true, default_qty_type = strategy.percent_of_equity, pyramiding = 5, default_qty_value = 20, commission_type = strategy.commission.cash_per_order, commission_value = 1, calc_on_every_tick = true)

daysBack = input(defval=120, title="Days Back", type=input.integer)
sellCoeff = input(defval=1.5, title="Selling Coefficent For ATR", type=input.float, minval= 0.01, step=0.1)
buyCoeff = input(defval=1.2, title = "Buying Coefficent For ATR", type=input.float, minval= 0.01, step=0.1)

fromDate = timenow - (daysBack*24*60*60*1000)
toDate = timenow 

ATR = atr(14)
stopLossPoint = ATR * sellCoeff
buyPoint = ATR * buyCoeff

StoplossLine =  close[1] - stopLossPoint[1]
BuyLine = close[1] + buyPoint[1]

if (high > BuyLine and time >= fromDate and time <= toDate )
    strategy.entry("GG", strategy.long, comment="Gir")
if (low < StoplossLine and strategy.position_avg_price < close and time >= fromDate and time <= toDate )
    strategy.entry("GG", strategy.short, comment="Çık")

//longFlags = close < StoplossLine
//shortFlags = close > BuyLine
//plotshape(shortFlags, style=shape.triangledown, location=location.abovebar, color=color.red)
//plotshape(longFlags, style=shape.triangleup, location=location.belowbar, color=color.blue)
plot(StoplossLine)
plot(BuyLine)

Thêm nữa