Chiến lược dừng lỗ theo dõi động

Tác giả:ChaoZhang, Ngày: 2024-01-31 15:05:30
Tags:

img

Tổng quan

Chiến lược này dựa trên một cơ chế dừng lỗ theo dõi năng động để thiết lập các đường dừng lỗ cho các vị trí dài và ngắn dựa trên giá cao nhất và thấp nhất của một cổ phiếu. Khi giá đạt đến đường dừng lỗ, nó sẽ đóng vị trí hiện tại và mở một vị trí mới theo hướng ngược lại. Chiến lược đơn giản và hiệu quả trong việc kiểm soát rủi ro giao dịch duy nhất.

Nguyên tắc

Các bước chính của chiến lược này là:

  1. Các thông số đầu vào: chọn đi dài hoặc ngắn, đặt chiều dài cho giai đoạn, trượt dừng kéo theo
  2. Tính toán giá cao nhất và thấp nhất: lấy giá cao nhất và thấp nhất dựa trên chiều dài đầu vào
  3. Tính toán các đường dừng lỗ sau: cho giá dài, thấp nhất trừ trượt; cho giá ngắn, cao nhất cộng với trượt
  4. Các vị trí mở và đóng: khi giá đạt đến đường dừng lỗ, đóng vị trí theo hướng hiện tại và mở vị trí theo hướng ngược lại

Điều trên là logic cơ bản của chiến lược. Khi giá di chuyển, đường dừng lỗ luôn được cập nhật để theo dõi năng động. Bằng cách theo dõi dừng lỗ, nó có thể kiểm soát hiệu quả lỗ trên mỗi giao dịch.

Phân tích lợi thế

Những lợi thế chính của chiến lược này:

  1. Logic đơn giản và sạch sẽ, dễ hiểu và thực hiện
  2. Kiểm soát lệnh dừng lỗ theo dõi động
  3. Dễ dàng lựa chọn dài hoặc ngắn, thích nghi với môi trường thị trường khác nhau
  4. Tùy chỉnh thời gian và trượt để tối ưu hóa

Tóm lại, thông qua các cơ chế dừng lỗ kéo dài đơn giản, chiến lược này có thể quản lý hiệu quả các vị trí và là một chiến lược quản lý rủi ro điển hình.

Phân tích rủi ro

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

  1. Sự biến động giá có thể kích hoạt dừng lỗ thường xuyên, dẫn đến giao dịch quá mức
  2. Cài đặt khoảng thời gian không chính xác có thể gây ra các đường dừng lỗ không phù hợp
  3. Cài đặt trượt quá mức có thể dẫn đến stop loss lỏng lẻo, không thể dừng lỗ kịp thời

Những rủi ro này có thể được tối ưu hóa bằng cách điều chỉnh thời gian, giảm trượt một cách hợp lý để tạo ra các đường dừng lỗ hợp lý hơn.

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

Chiến lược có thể được nâng cấp từ các khía cạnh sau:

  1. Thêm tối ưu hóa cho điều chỉnh đường stop loss động, tránh các đường stop loss chặt chẽ hoặc lỏng lẻo không đúng
  2. Thêm các điều kiện vị trí mở để tránh mở các vị trí vào thời điểm không phù hợp
  3. Bao gồm các chỉ số xu hướng để theo xu hướng với tiềm năng lợi nhuận cao hơn
  4. Thêm kích cỡ vị trí để điều chỉnh động các vị trí dựa trên mức độ rủi ro

Kết luận

Chiến lược giao dịch thực hiện quản lý vị trí năng động thông qua các phương pháp dừng lỗ sau đơn giản. Nó dễ hiểu và thực hiện, và có thể kiểm soát hiệu quả lỗ giao dịch duy nhất. Chúng tôi đã phân tích những lợi thế, rủi ro tiềm năng và hướng tối ưu hóa trong tương lai. Kết luận, đây là một chiến lược quản lý rủi ro rất điển hình và thực tế.


/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//Noro
//2019

//@version=4
strategy(title = "Noro's Trailing-Stop Strategy", shorttitle = "Trailing", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0)

//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(false, defval = false, title = "Short")
length = input(20, minval = 1)
shift = input(0.0, minval = 0, title = "Trailing Stop")
background = input(false)

//Levels
max = highest(high, length)
min = lowest(low, length)

//Trailing
size = strategy.position_size
longtrailing = 0.0
shorttrailing = 0.0
longtrailing := size <= 0 ? min - ((min / 100) * shift) : max(min - ((min / 100) * shift), longtrailing[1])
shorttrailing := size >= 0 ? max + ((max / 100) * shift) : min(max + ((max / 100) * shift), shorttrailing[1])
trailing = size <= 0 ? shorttrailing : longtrailing
col = size == size[1] ? size > 0 ? color.red : color.lime : na
plot(trailing, color = col, linewidth = 2, transp = 0)

//Background
bgcol = background ? size > 0 ? color.lime : color.red : na
bgcolor(bgcol, transp = 80)

if trailing > 0 and size <= 0
    strategy.entry("Long", strategy.long, needlong ? na : 0, stop = trailing)
if trailing > 0 and size >= 0
    strategy.entry("Short", strategy.short, needshort ? na : 0, stop = trailing)

Thêm nữa