Chiến lược số lượng đường chéo vàng động đôi là một chiến lược giao dịch định lượng dựa trên các chỉ số kỹ thuật. Nó xác định xu hướng thị trường bằng cách tính toán hai đường chéo động của các giai đoạn khác nhau và cho phép giao dịch rủi ro thấp. Khi đường chéo động ngắn hơn vượt qua đường chéo động dài hơn, một tín hiệu đường chéo vàng được tạo ra để đi dài. Khi đường chéo ngắn hơn vượt xuống dưới đường chéo dài hơn, một tín hiệu đường chéo chết được tạo ra để đi ngắn. Chiến lược này cũng kết hợp các chỉ số kênh giá để tránh phá vỡ sai.
Chiến lược định lượng Golden Cross dựa trên lý thuyết trung bình động. Trung bình động có thể lọc hiệu quả tiếng ồn của thị trường và chỉ ra hướng xu hướng dài hạn. Khi trung bình động ngắn hơn vượt qua trên trung bình động dài hơn, nó chỉ ra sự đảo ngược trên thị trường và là tín hiệu mua. Khi trung bình động ngắn hơn vượt qua dưới trung bình động dài hơn, nó chỉ ra sự đảo ngược xuống và là tín hiệu bán. Chiến lược này đặt ra hai nhóm trung bình động - đầu tiên là trung bình động 2 ngày và 3 ngày, và thứ hai là trung bình động 420 ngày. Một tín hiệu mua 2 ngày được tạo ra khi trung bình mua vượt qua trên trung bình động 3 ngày, và một tín hiệu bán được tạo ra khi nó vượt qua dưới.
Logic chính của mã chiến lược là:
Các nguyên tắc cụ thể là:
Nó nắm bắt các cơ hội đảo ngược xu hướng sau các điều chỉnh ngắn hạn bằng cách xác định các điểm chuyển đổi với hai đường băng trung bình động và thiết lập các bộ lọc tham số để tránh các giao dịch sai lầm.
Chiến lược định lượng Golden Cross Double Moving Average có những lợi thế sau:
Chiến lược định lượng Golden Cross Double Moving Average cũng có những rủi ro sau:
Các phương pháp sau đây có thể được sử dụng để giảm rủi ro:
Chiến lược định lượng Golden Cross Dual Moving Average cũng có thể được tối ưu hóa trong các khía cạnh sau:
Tối ưu hóa tham số: Điều chỉnh các thông số chỉ số trung bình và kênh để chọn sự kết hợp thông số tối ưu.
Lựa chọn thời gian: Chọn các thông số trung bình động phù hợp nhất dựa trên các đặc điểm sản phẩm khác nhau.
Tối ưu hóa chiến lược dừng lỗ: Thiết lập dừng động, dừng kéo theo vv để tránh dừng rút lại.
Tối ưu hóa giao dịch theo hướng: Kết hợp các chỉ số xu hướng và áp dụng các hoạt động theo xu hướng để ngăn chặn giao dịch chống xu hướng.
Sự kết hợp học máy: Sử dụng LSTM, RNN và các mô hình học sâu khác để hỗ trợ đánh giá chất lượng tín hiệu và xác định thời gian nhập.
Chiến lược định lượng Golden Cross định lượng giá ngắn hạn thông qua nguyên tắc đơn giản của chuyển trung bình chéo. Thiết lập các chỉ số kênh lọc hiệu quả các tín hiệu sai. Chiến lược có logic đơn giản và dễ thực hiện. Điều chỉnh tham số linh hoạt có thể với hiệu suất tương đối tốt được xác nhận trong giao dịch trực tiếp. Đây là một chiến lược định lượng được khuyến cáo có thể được nâng cấp thông qua tối ưu hóa tham số, tối ưu hóa dừng lỗ, học máy và nhiều hơn nữa để đạt được hiệu suất tốt hơn. Chiến lược này phù hợp với giao dịch thuật toán trên các sản phẩm như tiền điện tử và cổ phiếu.
/*backtest start: 2023-12-24 00:00:00 end: 2023-12-25 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 // Indicator420 by SeaSide420 strategy("Indicator420 strategy", overlay=true) q=input(title="HullMA",defval=420) z=input(title="HullMA cross",defval=3) a=input(title="VWMA",defval=14) rvwma=vwma(close,round(a)) rvwma2=vwma(close,round(a*2)) rvwma3=vwma(close,round(a*3)) n2ma=2*wma(close,round(z/2)) nma=wma(close,z) diff=n2ma-nma sqn=round(sqrt(z)) n2ma1=2*wma(close[1],round(z/2)) nma1=wma(close[1],z) diff1=n2ma1-nma1 sqn1=round(sqrt(z)) n2ma2=2*wma(close[2],round(q/2)) nma2=wma(close[2],q) diff2=n2ma2-nma2 sqn2=round(sqrt(q)) n1=wma(diff,sqn) n2=wma(diff1,sqn) n3=wma(diff2,sqn) b=n1>n2?red:lime c=n1>n2?green:red d=n3>rvwma3?red:green e=rvwma2>rvwma3?green:red f=n1>n2?red:green //plot(rvwma3, color=e, linewidth=1) plot(cross(rvwma, rvwma2) ? rvwma : na, style = line,color=e, linewidth = 1) plot(cross(n1, n2) ? n1 : na, style = line,color=b, linewidth = 3) plot(cross(n1, n2) ? n1 : na, style = circles,color=c, linewidth = 4) closelong = n1<n2 if (closelong) strategy.close("Long") closeshort = n1>n2 if (closeshort) strategy.close("Short") longCondition = n1>n2 and strategy.opentrades<1 and n1<rvwma3 if (longCondition) strategy.entry("Long",strategy.long) shortCondition = n1<n2 and strategy.opentrades<1 and n1>rvwma3 if (shortCondition) strategy.entry("Short",strategy.short)