Chiến lược này dựa trên các tín hiệu chéo vàng và chéo chết liên tiếp của chỉ số MACD để giao dịch. Khi các tín hiệu chéo vàng liên tiếp xuất hiện, nó mở một vị trí dài; khi các tín hiệu chéo chết liên tiếp xuất hiện, nó mở một vị trí ngắn. Đồng thời, chiến lược cho phép người dùng đặt mức lợi nhuận và dừng lỗ để kiểm soát rủi ro. Ngoài ra, chiến lược cung cấp tùy chọn để chọn phạm vi thời gian backtest, cho phép người dùng đánh giá hiệu suất của chiến lược trong một khoảng thời gian nhất định.
Cốt lõi của chiến lược này là sử dụng các tín hiệu chéo vàng và dấu hiệu chéo chết của chỉ số MACD để xác định các điểm chuyển đổi của xu hướng thị trường. Chỉ số MACD bao gồm một trung bình di chuyển nhanh (EMA) và một trung bình di chuyển chậm (EMA). Khi EMA nhanh vượt qua EMA chậm, nó tạo thành một dấu hiệu chéo vàng hoặc dấu hiệu chéo chết. Các tín hiệu chéo vàng liên tiếp cho thấy thị trường có thể bước vào xu hướng tăng, tại thời điểm đó một vị trí dài được mở; các tín hiệu chéo chết liên tiếp cho thấy thị trường có thể bước vào xu hướng giảm, tại thời điểm đó một vị trí ngắn được mở. Bằng cách nắm bắt các điểm chuyển đổi xu hướng này, chiến lược cố gắng kiếm lợi nhuận từ xu hướng thị trường.
Chiến lược này giao dịch dựa trên các tín hiệu chéo vàng và chéo chết MACD liên tiếp, cố gắng nắm bắt các bước ngoặt trong xu hướng thị trường. Nó đơn giản và dễ hiểu, có thể theo dõi các xu hướng chính và cung cấp khả năng kiểm soát rủi ro và kiểm tra hậu quả linh hoạt. Tuy nhiên, hiệu suất của chiến lược có thể bị ảnh hưởng bởi các yếu tố như lựa chọn tham số, tiếng ồn thị trường và trễ xu hướng. Để cải thiện hơn nữa, người ta có thể xem xét kết hợp nó với các chỉ số khác, tối ưu hóa các tham số, giới thiệu lợi nhuận và dừng lỗ năng động và quản lý vị trí. Nhìn chung, chiến lược cung cấp một khuôn khổ cơ bản cho giao dịch xu hướng, nhưng trong ứng dụng thực tế, nó cần được đánh giá cẩn thận và điều chỉnh để phù hợp với điều kiện thị trường cụ thể và sở thích rủi ro cá nhân.
/*backtest start: 2024-03-01 00:00:00 end: 2024-03-31 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("连续MACD交叉和回测范围") //策略初始化時間設置 useDateFilter = input.bool(true, title="启用时间回测范围", group="回测范围") backtestStartDate = input(timestamp("1 Jan 2023"), title="开始时间", group="回测范围") backtestEndDate = input(timestamp("1 Jan 2024"), title="结束时间", group="回测范围") inTradeWindow = true // 定义MACD指标参数 fastLength = input.int(12, "快速EMA周期") slowLength = input.int(26, "慢速EMA周期") signalSmoothing = input.int(9, "信号线平滑周期") long_win = input.float(defval = 0.01,title = "多单止盈设置", tooltip = "0.01代表1%" ) long_lose= input.float(0.01,"多单止损设置") short_win = input.float(0.01,"空单止盈设置") short_lose = input.float(0.01,"空单止损设置") // 计算MACD值 [macdLine, signalLine, _] = ta.macd(close, fastLength, slowLength, signalSmoothing) // 定义金叉和死叉的条件 crossUp = ta.crossover(macdLine, signalLine) crossDown = ta.crossunder(macdLine, signalLine) // 使用历史状态记录上一次交叉情况 var lastCrossUp = false var lastCrossDown = false // 更新历史状态 if crossUp lastCrossUp := true else if crossDown lastCrossUp := false if crossDown lastCrossDown := true else if crossUp lastCrossDown := false // 交易执行逻辑:检查是否存在连续的金叉或死叉 if lastCrossUp and crossUp and inTradeWindow strategy.entry("买入开多", strategy.long) strategy.exit("买入止盈止损", "买入开多", limit=close * (1 + long_win), stop=close * (1 - long_lose)) if lastCrossDown and crossDown and inTradeWindow strategy.entry("卖出开空", strategy.short) strategy.exit("卖出止盈止损", "卖出开空", limit=close * (1 - short_win), stop=close * (1 + short_lose)) // 显示MACD线和信号线 plot(macdLine, "MACD线", color=color.blue) plot(signalLine, "信号线", color=color.orange)