Chiến lược giao dịch định lượng Golden Cross và Death Cross


Ngày tạo: 2024-02-02 14:46:11 sửa đổi lần cuối: 2024-02-02 14:46:11
sao chép: 1 Số nhấp chuột: 676
1
tập trung vào
1617
Người theo dõi

Chiến lược giao dịch định lượng Golden Cross và Death Cross

Tổng quan

Chiến lược này thực hiện giao dịch định lượng mua và bán cổ phiếu bằng cách tính toán XAUUSD ((vàng) với đường chéo giữa đường trung bình di chuyển đơn giản 30 ngày ((MA30) và đường trung bình di chuyển đơn giản 200 ngày ((MA200)). Chiến lược này đồng thời đặt giá dừng lỗ và giá dừng để tự động thanh toán.

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

Các chỉ số cốt lõi của chiến lược này là MA30 và MA200. Khi MA30 đi qua MA200, tạo ra tín hiệu mua; khi MA30 đi qua MA200, tạo ra tín hiệu bán. Sự giao thoa này được gọi là kim cương vàng và kim cương chết.

Cụ thể, chiến lược này sử dụng kho ta để tính MA30 và MA200. Sau đó, sử dụng hàm ta.crossover và ta.crossunder để đánh giá tình trạng giao chéo của chúng. Khi giao chéo lên (crossover) xảy ra, đặt giá trị longCondition là true để thực hiện giao dịch mua; khi giao chéo xuống (crossover) xảy ra, đặt giá trị shortCondition là true để thực hiện giao dịch bán.

Về thực hiện giao dịch, lệnh mua và bán được đặt ở mức giá dừng lỗ và dừng chân 40.000 điểm. Điều này tương đương với sự thay đổi giá 4.000 điểm trong XAUUSD. Các lệnh sẽ tự động thanh toán khi giá kích hoạt dừng lỗ hoặc dừng chân.

Ngoài ra, chiến lược cũng thiết lập một cơ chế bảo hiểm. Nếu hiện đang nắm giữ nhiều vị thế đầu, sau đó có tín hiệu ngã, sẽ chuyển vị thế thẳng thừng; Nếu hiện đang nắm giữ vị thế đầu trống, sau đó có tín hiệu ngã vàng, cũng sẽ chuyển vị thế thẳng thừng. Điều này có thể tránh chịu tổn thất lớn khi xu hướng đảo ngược.

Lợi thế chiến lược

Đây là một chiến lược theo dõi xu hướng rất đơn giản và trực quan.

  1. Các quy tắc rõ ràng và dễ thực hiện.
  2. Có thể sử dụng nhiều chu kỳ thời gian, phù hợp cho hoạt động trong ngày và đường dây dài.
  3. Theo chu kỳ thị trường, có thể bắt được xu hướng đảo ngược.
  4. Thiết lập hệ thống tự động dừng lỗ để kiểm soát tổn thất đơn lẻ.
  5. Thiết lập các cơ chế bảo hiểm để tránh những tổn thất do sự thay đổi xu hướng.

Phân tích rủi ro

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

  1. Chỉ số MA bị tụt hậu, có thể bỏ lỡ thời điểm đầu vào tốt nhất để đảo ngược xu hướng ngắn hạn.
  2. Giá dừng lỗ được thiết lập không hợp lý và có thể bị dừng lỗ sớm.
  3. Có một số người nói rằng các tín hiệu ngược đã gây nhiễu quá nhiều, làm tăng số lượng giao dịch vô nghĩa.
  4. Chiến lược này cũng có một số yêu cầu về quy mô giao dịch, bao gồm cả việc rút tiền.

Để kiểm soát những rủi ro này, các tham số có thể được tối ưu hóa, điều chỉnh độ dừng, lọc tín hiệu đảo ngược, v.v.

Tối ưu hóa chiến lược

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

  1. Tối ưu hóa tham số MA, thay vào đó sử dụng EMA hoặc trung bình di chuyển trọng lượng.
  2. Thêm các bộ lọc cho các chỉ số khác, chẳng hạn như khối lượng giao dịch, chỉ số rung động, v.v.
  3. Cơ chế bảo hộ chỉ được kích hoạt khi có tín hiệu rõ ràng.
  4. Có thể thiết lập quản lý kích thước vị trí để tối ưu hóa hiệu quả sử dụng vốn.
  5. Có thể kết hợp các thuật toán học máy để tối ưu hóa động lệnh dừng lỗ.

Sự ổn định của chiến lược có thể được nâng cao hơn nữa bằng cách điều chỉnh tham số, thêm bộ lọc, quản lý vị trí.

Tóm tắt

Chiến lược này là một chiến lược chéo trung bình di chuyển đơn giản và thực tế. Nó hoạt động theo chu kỳ thị trường, kiểm soát rủi ro bằng cách thiết lập các lệnh dừng lỗ tự động và các cơ chế bảo hiểm. Chiến lược này dễ hiểu và thực hiện, có thể áp dụng cho nhiều loại giao dịch và thời gian.

Mã nguồn chiến lược
/*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"}]
*/

//@version=5
strategy("Estrategia de Cruce de Medias Móviles", overlay=true)

// Medias móviles
ma30 = ta.sma(close, 30)
ma60 = ta.sma(close, 60)
ma200 = ta.sma(close, 200)

// Cruce de medias móviles
crossoverUp = ta.crossover(ma30, ma200)
crossoverDown = ta.crossunder(ma30, ma200)

// Señales de compra y venta
longCondition = crossoverUp
shortCondition = crossoverDown

// Ejecución de órdenes
if (longCondition)
    strategy.entry("Buy", strategy.long)
    strategy.exit("Cover", "Buy", stop=close - 40.000, limit=close + 40.000)
if (shortCondition)
    strategy.entry("Sell", strategy.short)
    strategy.exit("Cover", "Sell", stop=close + 40.000, limit=close - 40.000)

// Plot de las medias móviles
plot(ma30, color=color.blue, title="MA 30")
plot(ma60, color=color.orange, title="MA 60")
plot(ma200, color=color.green, title="MA 200")

// Condiciones para cerrar la posición contraria
if (strategy.position_size > 0)
    if (crossoverDown)
        strategy.close("Buy")
if (strategy.position_size < 0)
    if (crossoverUp)
        strategy.close("Sell")