Chiến lược giao dịch định lượng Gold Cross Dead Cross

Tác giả:ChaoZhang, Ngày: 2024-02-02 14:46:11
Tags:

img

Tổng quan

Chiến lược này tính toán đường chéo trung bình di chuyển đơn giản 30 ngày (MA30) và đường chéo trung bình di chuyển đơn giản 200 ngày (MA200) của XAUUSD (vàng) để thực hiện giao dịch mua chéo vàng và bán chéo vàng định lượng.

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 vượt qua trên MA200, một tín hiệu mua được tạo ra. Khi MA30 vượt qua dưới MA200, một tín hiệu bán được tạo ra.

Cụ thể, chiến lược sử dụng thư viện ta để tính toán MA30 và MA200. Các hàm ta.crossover và ta.crossunder sau đó đánh giá liệu chúng có giao thoa. Khi giao thoa tăng lên (cross vàng) xảy ra, giá trị longCondition được đặt thành true để mua. Khi giao thoa giảm xuống (dead cross) xảy ra, giá trị shortCondition được đặt thành true để bán.

Đối với việc thực hiện lệnh, giá dừng lỗ và lấy lợi nhuận mỗi mức 40.000 điểm được thiết lập cho các giao dịch dài và ngắn. Điều này tương ứng với sự thay đổi giá 4.000 điểm trong XAUUSD. Khi giá kích hoạt lệnh dừng lỗ hoặc lấy lợi nhuận, lệnh sẽ tự động đóng các vị trí.

Ngoài ra, một cơ chế phòng ngừa rủi ro được thiết lập trong chiến lược. Nếu vị trí hiện tại là dài, một tín hiệu chéo chết tiếp theo sẽ trực tiếp làm phẳng vị trí và đảo ngược nó. Nếu vị trí hiện tại là ngắn, một tín hiệu chéo vàng tiếp theo cũng sẽ trực tiếp làm phẳng và đảo ngược vị trí. Điều này tránh mất mát lớn trong quá trình đảo ngược xu hướng.

Ưu điểm

Đây là một xu hướng rất đơn giản và trực quan sau chiến lược. Nó có những lợi thế sau:

  1. Các quy tắc rõ ràng và dễ thực hiện.
  2. Áp dụng cho nhiều khung thời gian cho giao dịch trong ngày và dài hạn.
  3. Phù hợp với chu kỳ thị trường và nắm bắt sự đảo ngược xu hướng.
  4. Thiết lập cơ chế thoát tự động với dừng lỗ / lợi nhuận để kiểm soát lỗ giao dịch duy nhất.
  5. Thiết lập bảo hiểm để tránh tổn thất từ sự đảo ngược xu hướng.

Phân tích rủi ro

Có một số rủi ro cho chiến lược này:

  1. Các chỉ số MA chậm lại và có thể bỏ lỡ bước vào tốt nhất cho sự đảo ngược xu hướng ngắn hạn.
  2. Thiết lập stop loss không đúng có thể chấm dứt giao dịch sớm.
  3. Quá nhiều tín hiệu ngược làm tăng giao dịch không cần thiết.
  4. Chiến lược có yêu cầu vốn để chịu được các khoản rút vốn.

Những rủi ro này có thể được quản lý bằng cách tối ưu hóa tham số, điều chỉnh mức dừng lỗ, lọc tín hiệu ngược vv.

Tối ưu hóa

Chiến lược có thể được tối ưu hóa theo nhiều cách:

  1. Tối ưu hóa các thông số MA bằng cách sử dụng EMA hoặc đường trung bình động cân nhắc.
  2. Thêm các bộ lọc khác như khối lượng, chỉ số biến động vv.
  3. Cho phép cơ chế phòng ngừa chỉ trên các tín hiệu quan trọng.
  4. Thiết lập kích thước vị trí để hiệu quả vốn tốt hơn.
  5. Tối ưu hóa năng động dừng / lợi nhuận bằng cách sử dụng thuật toán học máy.

Điều chỉnh tham số, thêm bộ lọc, kích thước vị trí vv có thể cải thiện thêm sự ổn định chiến lược.

Kết luận

Đây là một chiến lược chéo trung bình động đơn giản và thực tế. Nó phù hợp với chu kỳ thị trường, kiểm soát rủi ro thông qua các cơ chế phòng ngừa rủi ro và thoát lỗ/lợi nhuận tự động. Dễ hiểu và thực hiện, áp dụng cho nhiều sản phẩm và khung thời gian. Tăng cường thêm có thể cải thiện hồ sơ rủi ro/lợi nhuận.


/*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")

Thêm nữa