Đây là một chiến lược giao dịch đơn giản dựa trên sự chéo chéo giữa trung bình di chuyển nhanh và chậm. Nó sử dụng chéo vàng và chéo chết của trung bình di chuyển để tạo ra tín hiệu mua và bán. Khi trung bình di chuyển nhanh vượt qua trên trung bình di chuyển chậm, đi dài; khi trung bình di chuyển nhanh vượt qua dưới trung bình di chuyển chậm, đi ngắn. Mục tiêu là nắm bắt sự đảo ngược xu hướng bằng cách quan sát sự tương tác giữa các trung bình di chuyển của các giai đoạn khác nhau.
Chiến lược này chủ yếu dựa vào sự chéo chéo giữa một trung bình chuyển động biểu thức nhanh (EMA) và một trung bình chuyển động đơn giản chậm (SMA) để tạo ra các tín hiệu giao dịch. Trước tiên nó tính toán một EMA nhanh và một SMA chậm, với các khoảng thời gian được thiết lập lần lượt là 13 và 30. Sau đó, khi EMA nhanh vượt qua trên SMA chậm, một tín hiệu dài được tạo ra; khi EMA nhanh vượt qua dưới SMA chậm, một tín hiệu ngắn được kích hoạt.
Cụ thể, chiến lược tính toán EMA nhanh và SMA chậm bằng cách sử dụng maFast và maSlow. Sau đó, nó xác định các biến enterLong và exitLong để xác định các điểm nhập và thoát. Khi maFast> maSlow, tức là EMA nhanh vượt trên SMA chậm, nó đặt enterLong=true để kích hoạt một bước nhập dài; khi maSlow> maFast, tức là EMA nhanh vượt dưới SMA chậm, nó đặt exitLong=true để đóng các vị trí. Cuối cùng, chiến lược gửi lệnh thông qua strategy.entry khi các điều kiện được đáp ứng.
Do đó, khi đà tăng ngắn hạn áp đảo xu hướng dài hạn, EMA nhanh vượt qua trên SMA chậm, tạo ra tín hiệu mua; khi đà giảm ngắn hạn áp đảo xu hướng dài hạn, EMA nhanh vượt qua dưới SMA chậm, tạo ra tín hiệu bán. Bằng cách nắm bắt sự đảo ngược xu hướng trên các khung thời gian khác nhau, nó nhằm mục đích mua thấp và bán cao.
Chiến lược chéo trung bình động có những lợi thế sau:
Đơn giản và dễ hiểu. Đường trung bình động là các chỉ số thường được sử dụng và hiệu quả. Logic chéo là đơn giản. Điều này làm cho chiến lược dễ hiểu và thực hiện cho các nhà giao dịch.
Khả năng tùy chỉnh cao. Chiến lược cho phép các khoảng thời gian tùy chỉnh cho EMA nhanh và SMA chậm, có thể được điều chỉnh cho các thị trường khác nhau, cải thiện khả năng thích nghi.
Các tín hiệu giao dịch đáng tin cậy. Các đường trung bình động lọc tiếng ồn thị trường hiệu quả. Các đường chéo của chúng tạo ra các tín hiệu khá đáng tin cậy. Sự chéo chéo giữa các MA nhanh và chậm có thể nắm bắt các bước ngoặt trong xu hướng rộng hơn.
Có thể áp dụng trong các môi trường thị trường khác nhau. Chiến lược hoạt động cho xu hướng và thị trường giới hạn phạm vi. Các thông số có thể được điều chỉnh để phù hợp với các điều kiện khác nhau.
Dễ dàng kết hợp với các chỉ số khác. Chiến lược có thể được kết hợp linh hoạt với các chỉ số như RSI để tạo ra các hệ thống mạnh mẽ hơn.
Chiến lược này cũng có một số rủi ro:
Trong thời gian xu hướng không chắc chắn, MAs có thể giao nhau thường xuyên, gây ra chi phí giao dịch và trượt quá mức.
Thị trường hỗn loạn có thể gây ra bị mắc kẹt trong phạm vi. Trong các thị trường giới hạn phạm vi, MAs có thể tạo ra các tín hiệu chéo mơ hồ, dẫn đến các tín hiệu sai.
Khó khăn trong tối ưu hóa tham số. Thời gian MA ảnh hưởng đáng kể đến hiệu suất chiến lược và yêu cầu thử nghiệm rộng rãi.
Các tín hiệu bị chậm trễ. MA vốn có sự chậm trễ, do đó các tín hiệu chéo có xu hướng trễ và có thể bỏ lỡ các điểm nhập lý tưởng.
Thiếu quản lý rủi ro. Chiến lược này thiếu logic dừng lỗ và có thể gây ra các giao dịch thua lỗ lớn.
Một số cách để tối ưu hóa chiến lược chéo trung bình động:
Thêm các bộ lọc như RSI để giảm tín hiệu sai. Tránh dài khi RSI cao và tránh ngắn khi RSI thấp.
Bao gồm các MA bổ sung để xác nhận các tín hiệu, chẳng hạn như MA 50 ngày. Đi dài khi MA nhanh vượt qua MA trung bình và MA trung bình vượt qua MA dài trong xu hướng tăng.
Thực hiện các kỹ thuật dừng lỗ như SAR parabolic để kiểm soát rủi ro.
Tối ưu hóa các thông số bằng cách sử dụng các phương pháp như phân tích bước đi trước và học máy để cải thiện hiệu suất trên các thị trường thay đổi.
Sử dụng biểu đồ khung thời gian thấp hơn và mô hình nến để cải thiện chất lượng tín hiệu và tránh đảo ngược không kịp thời.
Tích hợp các chỉ số âm lượng để tránh đột phá sai.
Chiến lược giao dịch chuyển động trung bình là một chiến lược giao dịch định lượng đơn giản nhưng thực tế. Nó sử dụng EMA nhanh và đường chéo SMA chậm để tạo ra tín hiệu giao dịch. Chiến lược này dễ thực hiện và kết hợp với các chỉ số khác, nhưng cũng có những nhược điểm như giao dịch quá mức và whipsaws. Với các cải tiến thích hợp trong các thông số và quản lý rủi ro, chiến lược có thể trở nên mạnh mẽ hơn và có lợi nhuận hơn. Nhìn chung, phương pháp giao dịch chuyển động trung bình đáng để học và áp dụng cho các nhà giao dịch định lượng.
/*backtest start: 2023-08-26 00:00:00 end: 2023-09-12 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 strategy(title="Moving Average Cross EMA SMA", overlay=true, initial_capital=10000, currency='USD',default_qty_type=strategy.percent_of_equity,default_qty_value=100) // Based on strategy by lsills @ https://www.tradingview.com/script/oI8loEZ8-Moving-Average-Cross-Strategy/ // Strategy has several logic alternatives - comment out the undesired logic sections below, only 1 logic section can be active // === GENERAL INPUTS === // short Ema maFastSource = input(defval = close, title = "Fast EMA Source") maFastLength = input(defval = 13, title = "Fast EMA Period", minval = 1) // long Sma maSlowSource = input(defval = close, title = "Slow SMA Source") maSlowLength = input(defval = 30, title = "Slow SMA Period", minval = 1) // longer Sma maSlowerSource = input(defval = close, title = "Slower SMA Source") maSlowerLength = input(defval = 30, title = "Slower SMA Period", minval = 1) // === SERIES SETUP === /// a couple of ma's.. maFast = ema(maFastSource, maFastLength) maSlow = sma(maSlowSource, maSlowLength) maSlower = vwma(maSlowerSource, maSlowerLength) rsi = rsi(maSlowerSource, maSlowerLength) // === PLOTTING === fast = plot(maFast, title = "Fast MA", color = red, linewidth = 2, style = line, transp = 30) slow = plot(maSlow, title = "Slow MA", color = green, linewidth = 2, style = line, transp = 30) slower = plot(maSlower, title = "Slower MA", color = teal, linewidth = 2, style = line, transp = 30) // === LOGIC === Basic - simply switches from long to short and vice-versa with each fast-slow MA cross enterLong = maFast> maSlow exitLong = maSlow> maFast // === LOGIC === Complex 1 - switches from long to short and vice-versa with each fast-slow MA cross but additional conditions must be met //enterLong = variance(maFast,maSlowLength) < 0.6 and close[0] > maFast and crossover(maFast, maSlow) and 1.1* maSlow > maSlower and rsi>rsi[2] //exitLong = variance(maFast,maSlowLength) < 0.6 and close[0] < maSlow and crossover(maSlow, maFast) and maSlow/1.1 < maSlower and rsi<rsi[2] // === LOGIC === Complex 2- switches from long to short and vice-versa with each fast-slow MA cross but additional conditions must be met //enterLong = maFast> maSlow and 1.1* maSlow > maSlower and rsi>rsi[1] and close > close[3] //and close > close[2] //exitLong = maSlow> maFast and maSlow/1.1 < maSlower and rsi<rsi[1] and close < close[3] // and close < close[2] // Entry // strategy.entry(id="Long Entry", long=true, when=enterLong) strategy.entry(id="Short Entry", long=false, when=exitLong) // === FILL ==== fill(fast, slow, color = maFast > maSlow ? green : red)