Đây là một chiến lược giao dịch vàng trên khung thời gian M5 dựa trên sự kết hợp của các chỉ số kỹ thuật Parabolic SAR, CCI và EMA.
Parabolic SAR được sử dụng để xác định hướng xu hướng và điểm đảo ngược tiềm năng của vàng. Khi các chấm SAR bắt đầu giảm dưới giá, nó chỉ ra xu hướng tăng; khi các chấm SAR bắt đầu tăng trên giá, nó chỉ ra xu hướng giảm.
CCI chỉ ra các điều kiện mua quá mức / bán quá mức của thị trường. CCI trên 100 cho thấy xu hướng tăng mạnh trong khi CCI dưới -100 cho thấy xu hướng giảm mạnh.
EMA crossover báo hiệu các điểm chuyển đổi ngắn hạn của giá. xu hướng tăng được đề xuất khi đường nhanh đang tăng và xu hướng giảm được đề xuất khi nó đang giảm.
Quy tắc tham gia: Đi dài khi SAR vượt qua EMA 5 phút theo hướng tăng và CCI lớn hơn 100; Đi ngắn khi SAR vượt qua EMA 5 phút theo hướng giảm và CCI nhỏ hơn -100.
Quy tắc thoát: Lấy lợi nhuận tại giá nhập + 7 dấu chấm, Đặt dừng lỗ tại đường EMA 1 phút.
Sử dụng 3 chỉ số để xác định xu hướng và mức hỗ trợ / kháng cự chính, cải thiện lợi nhuận.
CCI lọc hiệu quả các sự phá vỡ sai. SAR đảo ngược kết hợp với hướng xu hướng tránh các mục nhập không cần thiết trong quá trình hợp nhất.
EMA crossover với SAR cung cấp các mục nhập có rủi ro thấp trong thời gian rút ngắn.
Các thông số tối ưu phù hợp với hàng hóa dễ bay hơi như vàng và tài khoản nhỏ.
Chủ yếu dựa trên các chỉ số kỹ thuật có thể thất bại trong các sự kiện thiên nga đen.
Hàng hóa dễ bay hơi, EMA dừng lỗ dễ bị ảnh hưởng bởi các đỉnh dẫn đến tổn thất lớn.
Các tín hiệu sai tiềm năng từ CCI và SAR dẫn đến tổn thất không cần thiết.
Các lỗi hệ thống trong các động thái biến động có thể ngăn chặn việc thực hiện dừng lỗ hiệu quả.
Kiểm tra các kết hợp tham số khác nhau để tối ưu hóa CCI cho các đặc điểm của vàng.
Tích hợp nhiều chỉ số hơn như mô hình nến, Bollinger Bands để cải thiện độ bền.
Sử dụng máy học để tối ưu hóa động các thông số SAR thích nghi với thị trường thay đổi.
Kiểm tra các cơ chế dừng mất mát khác nhau, ví dụ như dừng lại để giảm khả năng bị trúng.
Tối ưu hóa các mô hình kích thước vị trí, ví dụ: định dạng vị trí phân số, động để kiểm soát số tiền lỗ giao dịch duy nhất.
Nhìn chung, một chiến lược giao dịch vàng ổn định kết hợp nhiều chỉ số để xác định xu hướng, mức hỗ trợ / kháng cự chính và khu vực mua quá mức / bán quá mức cho các mục có rủi ro thấp trong thời gian khôi phục. Các tham số tối ưu hóa cho phép giao dịch tài khoản nhỏ tận dụng sự biến động cao của vàng. Có rủi ro có thể được giải quyết thông qua quản lý rủi ro thích hợp. Có tiềm năng đáng kể để cải thiện thêm sự ổn định và lợi nhuận thông qua nâng cao.
/*backtest start: 2022-11-30 00:00:00 end: 2023-12-06 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("Parabolic SAR and CCI Strategy with EMA Exit", overlay=true) // Parameters length = input(50, title="EMA Length") length_21 = input(21, title="EMA Length 21") acc = input(0.02, title="Acceleration Factor") max_acc = input(0.2, title="Max Acceleration Factor") takeProfitPoints = input(7, title="Take Profit Points") // Variables var float ep = 0.0 var float sar = 0.0 var float af = acc // Calculating 5-minute EMA based on 1-minute data var float sum_close = na var float ema_5min = na if (bar_index % 5 == 0) sum_close := 0.0 for i = 0 to 4 sum_close := sum_close + close[i] ema_5min := ema(sum_close / 5, length_21) // Calculating 1-minute EMA ema1 = ema(close, length) cci = cci(close, 45) // Custom Parabolic SAR Calculation trendUp = close > ema1 trendDown = close < ema1 var float prev_sar = na prev_sar := na(sar[1]) ? low[1] : sar[1] if trendUp ep := high > ep ? high : ep af := min(af + acc, max_acc) sar := min(prev_sar, prev_sar + af * (ep - prev_sar)) if trendDown ep := low < ep ? low : ep af := min(af + acc, max_acc) sar := max(prev_sar, prev_sar + af * (ep - prev_sar)) // Entry Conditions longCondition = sar > ema1 and ema1 > ema_5min and cci > 100 shortCondition = sar < ema1 and ema1 < ema_5min and cci < -100 // Exit Conditions longTakeProfit = strategy.position_avg_price + takeProfitPoints * syminfo.mintick longStopLoss = ema1 shortTakeProfit = strategy.position_avg_price - takeProfitPoints * syminfo.mintick shortStopLoss = ema1 // Plotting Entry Points plotshape(longCondition, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small) plotshape(shortCondition, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small) // Strategy Execution if longCondition strategy.entry("Long", strategy.long) if shortCondition strategy.entry("Short", strategy.short) if strategy.position_size > 0 strategy.exit("Take Profit/Stop Loss", "Long", limit=longTakeProfit, stop=longStopLoss) if strategy.position_size < 0 strategy.exit("Take Profit/Stop Loss", "Short", limit=shortTakeProfit, stop=shortStopLoss)