Xu hướng theo chiến lược dựa trên hành động giá và khối lượng

Tác giả:ChaoZhang, Ngày: 2024-01-16 17:34:04
Tags:

img

Tổng quan

Chiến lược này chủ yếu sử dụng sự kết hợp giữa trung bình động đơn giản và khối lượng giao dịch để xác định hướng xu hướng thị trường. Nó cố gắng xác định các điểm vào và ra thích hợp khi xu hướng thị trường tương đối mạnh. Nó thuộc thể loại xu hướng sau các chiến lược định lượng.

Chiến lược logic

Chiến lược này sử dụng hai đường trung bình động đơn giản của các giai đoạn khác nhau để xác định xu hướng thị trường. Đường trung bình động ngắn hơn có thể nắm bắt xu hướng thay đổi giá nhanh hơn, trong khi thời gian dài hơn giúp lọc một số tiếng ồn. Một tín hiệu mua được tạo ra khi MA ngắn hơn vượt qua thời gian dài hơn một, cho thấy sự bắt đầu của xu hướng tăng. Một tín hiệu bán được tạo ra khi MA ngắn hơn vượt dưới MA dài hơn, cho thấy sự bắt đầu của xu hướng giảm.

Ngoài ra, chiến lược này cũng kết hợp chỉ số khối lượng giao dịch để xác nhận các tín hiệu xu hướng.

Khi nhập vào các vị trí, chiến lược cũng xem xét các mức hỗ trợ / kháng cự năng động để chọn các điểm nhập thích hợp. Nó chỉ mua khi giá trên mức hỗ trợ và chỉ bán khi giá dưới mức kháng cự. Điều này giúp giảm thiểu rủi ro của whipsaws ở các thị trường giới hạn phạm vi đến một mức độ nào đó.

Ưu điểm

Chiến lược có những lợi thế nổi bật sau:

  1. Các quy tắc tín hiệu đơn giản và rõ ràng, dễ hiểu và điều chỉnh các tham số, phù hợp với những người mới bắt đầu giao dịch lượng tử.

  2. Nó kết hợp hành động giá và phân tích khối lượng để xác định tốt hơn xu hướng thị trường và lọc các sự đột phá sai.

  3. Nó sử dụng các mức hỗ trợ / kháng cự năng động để chọn thời gian vào thuận lợi để giảm nguy cơ bị chém.

  4. Nó có dữ liệu backtest phong phú và các thông số đã trải qua nhiều lần tối ưu hóa, dẫn đến hiệu suất sống tương đối ổn định.

Rủi ro

Chiến lược này cũng có một số rủi ro tiềm ẩn, chủ yếu trong các khía cạnh sau:

  1. Là một xu hướng theo chiến lược, nó có thể chịu tổn thất liên tục trong các thị trường giới hạn phạm vi.

  2. Mức trung bình di chuyển đơn giản tự nó phản ứng chậm với sự thay đổi giá, không thể nắm bắt sự đảo ngược nhanh chóng một cách kịp thời.

  3. Có thể có một số sự chậm trễ trong việc xác định các mức hỗ trợ / kháng cự động, không thể tránh hoàn toàn rủi ro phá vỡ sai.

  4. Tối ưu hóa mang lại nguy cơ quá mức. Hiệu suất trực tiếp có thể lệch khỏi kết quả backtest ở một mức độ nào đó.

Những rủi ro trên có thể được giảm thiểu bằng cách:

  1. Cải thiện các quy tắc nhập/đi kết hợp các chỉ số xu hướng và đảo ngược.
  2. Tiếp tục tối ưu hóa các thông số thông qua máy học để làm cho chiến lược mạnh mẽ hơn.
  3. Đặt giá trị lỗ dừng để kiểm soát số tiền lỗ giao dịch đơn.

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

Vẫn còn nhiều chỗ để cải thiện chiến lược này:

  1. Hãy thử các loại trung bình động khác nhau, ví dụ như MA, KAMA theo cấp số nhân.

  2. Thực hiện phân tích đa chiều về khối lượng, ví dụ: khối lượng đỉnh, co lại.

  3. Khả năng điều chỉnh / cập nhật tham số tự động bằng cách sử dụng máy học.

  4. Thêm các chỉ số đảo ngược để cắt giảm lỗ và đảo ngược vị trí kịp thời trong các thị trường khác nhau.

  5. Bao gồm các dữ liệu cơ bản để xác định giá trị hợp lý của các cổ phiếu riêng lẻ.

  6. Thiết kế các bộ tham số cụ thể cho điểm chuẩn và quy trình làm việc backtest.

Kết luận

Tóm lại, đây là một mẫu chiến lược theo xu hướng điển hình với một số ứng dụng chung. Nó tổng hợp hành động giá, khối lượng và các chiều khác để lọc tiếng ồn một cách hiệu quả. Nhưng như một chiến lược theo xu hướng, nó vẫn mang những rủi ro có hệ thống và cần cải tiến và tối ưu hóa liên tục trước khi nó có thể được giao dịch trực tiếp đáng tin cậy.


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

//@version=4
strategy("PVSRA Strategy", overlay=true)

// Price Action
shortMaPeriod = input(50, "Short MA Period")
longMaPeriod = input(25, "Long MA Period")
shortMa = sma(close, shortMaPeriod)  // Simple Moving Average for short period
longMa = sma(close, longMaPeriod)    // Simple Moving Average for long period

// Volume Analysis
volMaPeriod = input(25, "Volume MA Period")
volMa = sma(volume, volMaPeriod)     // Simple Moving Average for volume

// Support and Resistance
support = lowest(low, 30)
resistance = highest(high, 30)

// Entry Conditions
longCondition = crossover(shortMa, longMa) and (volume > volMa) and (close > support)
shortCondition = crossunder(shortMa, longMa) and (volume > volMa) and (close < resistance)

// Plotting
plot(shortMa, color=color.blue, title="Short MA")
plot(longMa, color=color.red, title="Long MA")
plot(support, color=color.green, title="Dynamic Support")
plot(resistance, color=color.red, title="Dynamic Resistance")

// Entering and Exiting Positions
if (longCondition)
    strategy.entry("Long", strategy.long)
if (shortCondition)
    strategy.entry("Short", strategy.short)


Thêm nữa