Chiến lược này nhằm mục đích sử dụng chức năng dừng kéo theo của Bitmex
Chiến lược chủ yếu sử dụng 3 chỉ số: giá cao nhất, giá thấp nhất và giá đóng cửa.longoffset
đối với khoảng cách dừng kéo dài vàshortoffset
cho khoảng cách dừng ngắn. khoảng cách dài mặc định là 228,5 điểm và khoảng cách ngắn là 243,5 điểm.
Sau đó, chiến lược sử dụng logic sau đây để điều chỉnh giá dừng kéo theotrailstop
:
Nếu giá thấp nhất của nến mới nhất thấp hơn giá dừng kéo dài của nến trước đó, và giá thấp nhất của nến trước đó cao hơn giá dừng kéo dài của 2 nến trước đó, thì giá dừng kéo dài của nến hiện tại = giá đóng + khoảng cách dừng kéo dài ngắn
Nếu giá cao nhất của nến mới nhất cao hơn giá dừng theo dõi của nến trước đó, và giá cao nhất của nến trước đó thấp hơn giá dừng theo dõi của 2 nến trước đó, thì giá dừng theo dõi của nến hiện tại = giá đóng - khoảng cách dừng kéo dài
Nếu giá cao nhất của nến mới nhất cao hơn giá dừng theo dõi của nến trước, thì giá dừng theo dõi nến hiện tại = max ((giá dừng theo dõi nến trước, giá cao nhất của nến mới nhất - khoảng cách dừng theo dõi dài)
Nếu giá thấp nhất của nến mới nhất thấp hơn giá dừng theo dõi của nến trước, thì giá dừng theo dõi nến hiện tại = min ((giá dừng theo dõi nến trước, giá thấp nhất nến mới nhất + khoảng cách dừng theo dõi ngắn)
Nếu không, giá dừng sau của nến hiện tại = giá đóng
Điều này điều chỉnh năng động giá dừng kéo theo dựa trên những thay đổi trong giá thị trường cao nhất và thấp nhất để đạt được dừng năng động.
Lợi thế lớn nhất của chiến lược này là việc thực hiện các điểm dừng theo dõi thực sự năng động và linh hoạt. So với giá dừng lỗ cố định, việc theo dõi năng động có thể điều chỉnh phạm vi dừng lỗ dựa trên biến động của thị trường, tránh tổn thất không cần thiết do khoảng cách dừng quá lớn, đồng thời tránh bị dừng bởi biến động giá bình thường khi khoảng cách quá nhỏ. Điều này làm giảm tổn thất không cần thiết đồng thời giảm khả năng dừng sớm.
Một lợi thế khác là khoảng cách dừng lỗ có thể được tùy chỉnh và tối ưu hóa. Người dùng có thể chọn phạm vi dừng lỗ phù hợp với bản thân theo đặc điểm của các sản phẩm và phong cách giao dịch khác nhau. Điều này cho phép chiến lược được áp dụng cho một loạt các kịch bản rộng hơn.
Cuối cùng, logic dừng lỗ của chiến lược này là đơn giản và rõ ràng, dễ hiểu, và dễ dàng phát triển hơn nữa và tích hợp vào các chiến lược khác.
Những rủi ro chính của chiến lược này là:
Các điểm dừng động chỉ có thể giảm lỗ trong điều kiện thị trường bình thường, nhưng không thể chịu được các sự kiện lớn hoặc điều kiện thị trường cực đoan.
Nếu khoảng cách dừng phía sau được đặt quá lớn, nó có thể dẫn đến tổn thất lớn hơn. Nếu đặt quá nhỏ, nó có thể dừng lại sớm. Cài đặt cần kiểm tra cẩn thận và tối ưu hóa dựa trên đặc điểm của sản phẩm.
Trong vài ngọn nến đầu tiên sau khi mở một vị trí, do cơ chế dừng lại, khoảng cách dừng lại có thể quá lớn, gây ra một số rủi ro bổ sung trong thời gian này.
Chiến lược này có thể được tối ưu hóa trong các khía cạnh sau:
Tối ưu hóa tham số cho các sản phẩm khác nhau: Chọn khoảng cách dừng kéo dài và ngắn hợp lý dựa trên biến động, phạm vi trong ngày và các số liệu khác cho các sản phẩm khác nhau.
Giảm rủi ro bổ sung trong nến đầu sau khi mở các vị trí: Hạn chế phạm vi điều chỉnh khoảng cách dừng lại trong vài nến đầu tiên để tránh khoảng cách quá lớn.
Kết hợp các chỉ số khối lượng giao dịch: Ví dụ, giảm khoảng cách dừng trong thời gian tăng khối lượng để tránh bị ngăn chặn bởi chênh lệch.
Kết hợp với các chiến lược nhập / ra khác: Chức năng chính của chiến lược này là dừng lỗ. Nó có thể được tích hợp với các chiến lược khác với các quy tắc nhập và ra.
Chiến lược này thực hiện stop loss theo dõi động dựa trên những thay đổi trong giá thị trường cao nhất và thấp nhất. Nó có thể giảm thiểu hiệu quả những tổn thất không cần thiết trong điều kiện thị trường bình thường, và giải quyết vấn đề khoảng cách cố định quá lớn hoặc quá nhỏ. Các hướng tối ưu hóa chính là kiểm tra các thông số phù hợp trên các sản phẩm khác nhau và kiểm soát rủi ro trong các nến đầu tiên sau khi mở các vị trí. Logic stop loss đơn giản và rõ ràng, dễ hiểu và tích hợp vào các chiến lược khác hoặc sử dụng độc lập như một công cụ stop loss.
/*backtest start: 2023-02-20 00:00:00 end: 2024-02-26 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 //By River strategy("BitMex Trailing Stop Strategy", overlay=true) longoffset = input(defval=228.5, title="Long Trailing Stop Size", type=float, minval=0.5, maxval=1000, step=0.5) shortoffset = input(defval=243.5, title="Short Trailing Stop Size ", type=float, minval=0.5, maxval=1000, step=0.5) hiprice = request.security(syminfo.tickerid, "1", high) loprice = request.security(syminfo.tickerid, "1", low) price = request.security(syminfo.tickerid, "1", close) trailstop = price trailstop := (loprice <= trailstop[1] and loprice[1] >= trailstop[2]) ? price + shortoffset : ((hiprice >= trailstop[1] and hiprice[1] <= trailstop[2]) ? price - longoffset : (hiprice > trailstop[1] ? max(hiprice - longoffset, trailstop[1]) : (loprice < trailstop[1] ? min(loprice + shortoffset, trailstop[1]) : price))) trailcol = trailstop > price ? red : green plot(trailstop, color=trailcol) longCondition = trailcol == green alertcondition(longCondition, "Long Stop alert", "BUY") if (longCondition) strategy.entry("Long", strategy.long) shortCondition = trailcol == red alertcondition(shortCondition, "Short alert", "SELL") if (shortCondition) strategy.entry("Short", strategy.short)