Chiến lược giao dịch lợi nhuận theo dõi động

Tác giả:ChaoZhang, Ngày: 2024-02-27 14:43:17
Tags:

img

Tổng quan

Bài viết này chủ yếu giới thiệu một chiến lược giao dịch định lượng được gọi là Dynamic Trailing Take Profit Trading Strategy. Chiến lược này thiết lập một đường thu lợi nhuận năng động dựa trên chỉ số ATR để nhận ra lợi nhuận nhanh chóng trong vòng 1-2 nến sau một sự chuyển động giá thuận lợi đột ngột, tránh mất mát khi giá quay lại.

Nguyên tắc

Logic giao dịch của chiến lược này rất đơn giản và rõ ràng.

  1. Sử dụng sự chéo chéo giữa SMA 14 giai đoạn và SMA 28 giai đoạn làm tín hiệu cho dài và ngắn. Khi SMA 14 giai đoạn vượt trên SMA 28 giai đoạn, đi dài. Khi SMA 14 giai đoạn xuống dưới SMA 28 giai đoạn, đi ngắn.

  2. Tính toán chỉ số ATR và nhân nó bằng một nhân để có được vị trí lợi nhuận động. Ví dụ, đặt chiều dài ATR là 7, nhân là 1,5, sau đó chiều rộng của kênh lợi nhuận động là 1,5 lần ATR 7 giai đoạn.

  3. Khi hướng vị trí dài, cộng giá cao và chiều rộng kênh lợi nhuận động để có được đường thu lợi nhuận dài. Khi hướng vị trí ngắn, trừ chiều rộng kênh lợi nhuận động từ giá thấp để có được đường thu lợi nhuận ngắn.

  4. Một khi giá vượt quá đường lợi nhuận động này, lấy lợi nhuận để thoát ngay lập tức.

Thông qua các bước trên, chiến lược này đạt được hiệu quả đơn giản nhưng hiệu quả của việc theo dõi lợi nhuận và lấy lợi nhuận nhanh chóng. Kênh ATR cung cấp khả năng điều chỉnh năng động cho đường lấy lợi nhuận, trong khi điều kiện 1 bar mới được thêm vào đảm bảo rằng đường lấy lợi nhuận chỉ được kích hoạt trong điều kiện thị trường thuận lợi đột ngột. Điều này có thể làm giảm hiệu quả việc thoát sớm do lấy lợi nhuận.

Ưu điểm

Chiến lược giao dịch lợi nhuận theo dõi động có những lợi thế sau:

  1. Ý tưởng đơn giản và rõ ràng, dễ hiểu và thực hiện, phù hợp cho người mới bắt đầu học.

  2. ATR năng động có thể tự động theo dõi lợi nhuận và tránh để lại lợi nhuận trên bàn.

  3. Thêm 1 bar điều kiện cao / thấp ngăn chặn lợi nhuận được kích hoạt trên các động thái nhỏ hơn.

  4. Chiều dài ATR và nhân có thể được điều chỉnh để điều chỉnh mức độ thu lợi nhuận.

  5. Có thể thoát nhanh để nắm bắt các chuyển động giá thuận lợi.

  6. Rất có thể mở rộng, dễ thực hiện các chiến lược dừng lỗ / lấy lợi nhuận khác dựa trên khuôn khổ này.

Phân tích rủi ro

Ngoài ra còn có một số rủi ro với chiến lược này:

  1. Sự mở rộng đột ngột của ATR có thể gây ra việc thoát khỏi lợi nhuận sớm.

  2. Không thể lọc hiệu quả tiếng ồn thị trường, dễ bị tín hiệu sai.

  3. Chỉ dựa vào giao thoa SMA để ra quyết định, không hiệu quả đối với các tình huống thị trường phức tạp.

  4. Không có cơ chế dừng lỗ để hạn chế thiệt hại hiệu quả.

  5. Các thông số mặc định có thể không phù hợp với tất cả các sản phẩm, cần tối ưu hóa.

Để giảm rủi ro trên, chúng ta có thể tối ưu hóa từ các khía cạnh sau:

  1. Thêm các quy tắc lọc dựa trên các chỉ số khác để loại bỏ các tín hiệu sai.

  2. Thêm các chiến lược dừng lỗ để kiểm soát chặt chẽ lỗ cho mỗi giao dịch.

  3. Tối ưu hóa các thông số bằng cách sử dụng Phân tích Tiếp tục.

  4. Tối ưu hóa các thông số riêng biệt cho các sản phẩm khác nhau.

  5. Tăng các mô hình máy học để đưa ra quyết định thông minh hơn.

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

Dựa trên phân tích rủi ro, các hướng tối ưu hóa chủ yếu bao gồm:

  1. Thêm bộ lọc tín hiệu: Thêm các quy tắc lọc dựa trên các chỉ số như MACD, Bollinger Band vv sau tín hiệu để tránh tiếng ồn.

  2. Thêm đường dừng lỗ: Thêm đường dừng lỗ dựa trên ATR hoặc dừng lại theo dõi để kiểm soát mỗi lỗ giao dịch.

  3. Tối ưu hóa tham số: Tối ưu hóa các tham số như ATR Length, ATR Multiplier sử dụng máy học.

  4. Điều chỉnh rủi ro: Điều chỉnh kích thước vị trí, các tham số rủi ro dựa trên các sản phẩm khác nhau.

  5. Mô hình tổng hợpKết hợp chiến lược này với máy học, mạng thần kinh để cải thiện độ chính xác.

  6. Can thiệp bằng tay: Cho phép thay thế bằng tay mức lợi nhuận / dừng lỗ tại những thời điểm quan trọng.

Với tối ưu hóa theo các hướng trên, lợi nhuận và sự ổn định của chiến lược có thể được cải thiện đáng kể.

Kết luận

Tóm lại, Dynamic Trailing Take Profit Trading Strategy là một chiến lược lợi nhuận rất thực tế và hiệu quả. Nó có một ý tưởng rõ ràng và dễ hiểu. Thông qua lợi nhuận động, nó có thể tự động theo dõi lợi nhuận và thoát nhanh trong thời gian xu hướng mạnh. Trong khi đó, chiến lược này cũng có một số rủi ro. Nó có thể được cải thiện bằng cách thêm các bộ lọc tín hiệu, dừng lỗ, tối ưu hóa các tham số vv để thích nghi với môi trường thị trường phức tạp hơn. Nhìn chung, chiến lược này cung cấp một khuôn khổ rất tốt xứng đáng với nghiên cứu và ứng dụng thêm.


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

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Peter_O

//@version=5
strategy("TrailingTakeProfit example", overlay=true, margin_long=100, margin_short=100, default_qty_value = 1, initial_capital = 100)

longCondition = ta.crossover(ta.sma(close, 14), ta.sma(close, 28))
shortCondition = ta.crossunder(ta.sma(close, 14), ta.sma(close, 28))

if longCondition
    strategy.entry("Long", strategy.long, comment="long", alert_message="long")
if shortCondition
    strategy.entry("Short", strategy.short, comment="short", alert_message="short")

atr_length=input.int(7, title="ATR Length")
atr_multiplier = input.float(1.5, title="ATR Multiplier")
atr_multiplied = atr_multiplier * ta.atr(atr_length)
ttp_top_bracket = strategy.position_size>0 ? high[1]+atr_multiplied : na
ttp_bottom_bracket = strategy.position_size<0 ? low[1]-atr_multiplied : na

plot(ttp_top_bracket, title="ttp_top_bracket", color=color.lime, style=plot.style_linebr, offset=1)
plot(ttp_bottom_bracket, title="ttp_bottom_bracket", color=color.red, style=plot.style_linebr, offset=1)

strategy.exit("closelong", from_entry="Long", limit=ttp_top_bracket, alert_message = "closelong")
strategy.exit("closeshort", from_entry="Short", limit=ttp_bottom_bracket, alert_message = "closeshort")

// var table alertsDisplayTable = table.new(position.top_right, 1, 5, color.black)
// if barstate.islastconfirmedhistory
//     table.cell(alertsDisplayTable, 0, 0, "TradingConnector-compatible alerts sent", text_color=color.white)
//     table.cell(alertsDisplayTable, 0, 1, "at Long Entry: long", text_color=color.white)
//     table.cell(alertsDisplayTable, 0, 2, "at Short Entry: short", text_color=color.white)
//     table.cell(alertsDisplayTable, 0, 3, "at Long Exit: closelong", text_color=color.white)
//     table.cell(alertsDisplayTable, 0, 4, "at Short Exit: closeshort", text_color=color.white)


Thêm nữa