Chiến lược giao dịch theo xu hướng trung bình động


Ngày tạo: 2024-01-05 13:48:07 sửa đổi lần cuối: 2024-01-05 13:48:07
sao chép: 0 Số nhấp chuột: 673
1
tập trung vào
1621
Người theo dõi

Chiến lược giao dịch theo xu hướng trung bình động

Tổng quan

Chiến lược này là một chiến lược giao dịch dựa trên xu hướng theo dõi trung bình di chuyển. Nó sử dụng trung bình di chuyển của giá cao nhất và giá thấp nhất được đặt theo các tham số khác nhau để đánh giá xu hướng thị trường và tạo ra tín hiệu giao dịch tương ứng tại điểm biến xu hướng.

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

Chiến lược này sử dụng trung bình di chuyển đơn giản của giá cao nhất và giá thấp nhất với các tham số khác nhau để đánh giá xu hướng thị trường. Cụ thể, nó tạo ra hai nhóm trung bình di chuyển theo dõi:

  1. Hệ thống trung bình di chuyển theo dõi lên bao gồm h1 và l1. h1 là trung bình di chuyển đơn giản với giá cao nhất, thể hiện xu hướng thị trường trên đường; l1 là đường đi của h1 trừ đi giá trị ATR.

  2. Hệ thống trung bình di chuyển theo dõi xuống bao gồm h2 và l2. h2 là trung bình di chuyển đơn giản với giá thấp nhất, thể hiện xu hướng thị trường dưới đường; l2 là đường trên được tạo thành từ h2 cộng với giá trị ATR. Khi giá vượt qua h2, nó tạo ra tín hiệu lỗ trống; khi giá vượt qua l2, nó tạo ra tín hiệu lỗ trống.

Sử dụng hệ thống hai đường dẫn có thể xác định chính xác hơn các điểm thay đổi xu hướng, lọc một số giao dịch ồn. Đồng thời, giá trị ATR được sử dụng để thiết lập mức dừng lỗ và dừng, kiểm soát tỷ lệ lợi nhuận rủi ro cho mỗi đơn.

Phân tích lợi thế

Chiến lược này có một số ưu điểm:

  1. Sử dụng bộ lọc tiếng ồn của hệ thống hai đường ray, nhận diện các điểm chuyển hướng chính xác hơn.
  2. ATR theo dõi động biến động, có thể kiểm soát hiệu quả lỗ dừng đơn.
  3. Chiến lược logic đơn giản, rõ ràng, dễ hiểu và thích hợp cho người mới học.
  4. Có thể điều chỉnh các tham số linh hoạt để thích ứng với các môi trường thị trường khác nhau.

Phân tích rủi ro

Chiến lược này cũng có một số rủi ro:

  1. Các dấu hiệu của đợt phá vỡ hai đường ray có thể bị trì trệ, không thể nắm bắt đầy đủ cơ hội của giai đoạn bắt đầu của xu hướng.
  2. Theo dõi trung bình di chuyển có khả năng nhận dạng xu hướng đường cong yếu hơn.
  3. Không tính đến ảnh hưởng của phí giao dịch. Chi phí giao dịch có thể cao hơn khi giao dịch tần số cao.

Phản ứng:

  1. Tương tự như vậy, một số trường hợp có thể xảy ra trong một số trường hợp khác.
  2. Kết hợp với các chỉ số khác như MACD để xác định loại xu hướng, tránh giao dịch tần số cao trong vùng chấn động.
  3. Điều chỉnh quy mô vị trí, giảm tần suất giao dịch.

Hướng tối ưu hóa

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

  1. Sử dụng thuật toán học máy để tự động tối ưu hóa các tham số để thích ứng với môi trường thị trường.
  2. Kết hợp với chỉ số khối lượng giao dịch để tránh phá vỡ giả.
  3. Thêm quy tắc điều chỉnh vị trí để kích thước vị trí được gắn liền với cường độ của xu hướng.
  4. Tối ưu hóa hệ thống dừng lỗ bằng cách sử dụng trailer stop.

Tóm tắt

Chiến lược này nói chung là một chiến lược theo dõi xu hướng đơn giản và thực tế, ý tưởng cốt lõi là nhận diện xu hướng đảo ngược và hạn chế tổn thất đơn lẻ thông qua lọc hai đường ray và ATR động. Có một giá trị thực tế nhất định, đồng thời có không gian tối ưu hóa lớn. Có thể đạt được hiệu quả tốt hơn thông qua điều chỉnh tham số, kết hợp với các chỉ số khác.

Mã nguồn chiến lược
/*backtest
start: 2023-12-05 00:00:00
end: 2024-01-04 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("I Like Winners And Love Loosers!", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100)

highest_length = input(200, type=input.integer, minval=1, title="Highest Length")
highest_average = input(10, type=input.integer, minval=1, title="Highest Average Length")

lowest_length = input(200, type=input.integer, minval=1, title="Lowest Length")
lowest_average = input(10, type=input.integer, minval=1, title="Lowest Average Length")

atr_length = input(14, type=input.integer, minval=1, title="ATR Length")
atr_multiplier = input(2, type=input.integer, minval=1, title="ATR Multiplier")
a = atr(atr_length) * atr_multiplier

h1 = sma(highest(high, highest_length), highest_average)
l1 = h1 - a

h2 = sma(lowest(low, lowest_length), lowest_average)
l2 = h2 + a

buy1_signal = crossover(close, h1)
sell1_signal = crossunder(close, l1)
strategy.entry("Buy", strategy.long, when=buy1_signal)
strategy.close("Buy", when=sell1_signal)

buy2_signal = crossunder(close, h2)
sell2_signal = crossover(close, l2)
strategy.entry("Sell", strategy.short, when=buy2_signal)
strategy.close("Sell", when=sell2_signal)

y1 = plot(h1, title="H1", color=color.green, transp=50, linewidth=2)
y2 = plot(l1, title="L1", color=color.red, transp=50, linewidth=2)
y3 = plot(h2, title="H2", color=color.green, transp=50, linewidth=2)
y4 = plot(l2, title="L2", color=color.red, transp=50, linewidth=2)

fill(y1,y2,color=color.green)
fill(y3,y4,color=color.red)