Chiến lược này là một chiến lược giao dịch đơn giản dựa trên sự giao thoa của đường trung bình di chuyển nhanh và đường trung bình di chuyển chậm. Nó sử dụng đường trung bình di chuyển để phát tín hiệu mua và bán.
Chiến lược này chủ yếu dựa trên sự giao thoa của đường trung bình di chuyển theo cấp số nhân nhanh (EMA) và đường trung bình di chuyển chậm (SMA) làm tín hiệu giao dịch. Đầu tiên, tính toán đường trung bình di chuyển nhanh (EMA) và đường trung bình di chuyển chậm (SMA).
Cụ thể, chiến lược tính toán EMA nhanh và EMA chậm thông qua các biến maFast và maSlow. Tiếp theo, nó xác định các biến enterLong và exitLong để xác định thời gian mua và bán. Khi maFast> maSlow, tức là EMA nhanh trên SMA chậm, đặt enterLong = true, phát ra nhiều tín hiệu; Khi maSlow> maFast, tức là EMA nhanh dưới SMA chậm, đặt exitLong =true, phát ra tín hiệu bằng phẳng.
Do đó, khi xu hướng tăng giá ngắn hạn mạnh hơn xu hướng dài hạn, EMA nhanh sẽ lên qua SMA chậm, tạo ra tín hiệu mua; khi xu hướng giảm ngắn hạn mạnh hơn xu hướng dài hạn, EMA nhanh sẽ xuống qua SMA chậm, tạo ra tín hiệu bán. Bằng cách nắm bắt sự biến đổi của xu hướng giá trong các giai đoạn khác nhau, có thể mua ở mức thấp tương đối và bán ở mức cao tương đối.
Chiến lược chéo trung bình di chuyển có những lợi thế sau:
Đơn giản, dễ sử dụng, dễ hiểu và thực hiện. Đường trung bình di chuyển là một chỉ số kỹ thuật phổ biến và hiệu quả, các nguyên tắc chéo của nó đơn giản và trực quan. Điều này làm cho chiến lược này dễ hiểu và áp dụng cho thương nhân.
Tính linh hoạt cao, có thể tùy chỉnh các tham số. Chiến lược cho phép tùy chỉnh số lần của EMA nhanh và SMA chậm, có thể điều chỉnh các tham số theo thị trường khác nhau, tăng khả năng thích ứng của chiến lược.
Tín hiệu giao dịch đáng tin cậy. Đường trung bình di chuyển có thể lọc tiếng ồn thị trường một cách hiệu quả, và chéo của nó có thể tạo ra tín hiệu giao dịch đáng tin cậy hơn.
Phương pháp này có thể được áp dụng cho thị trường xu hướng và thị trường hoà giải, điều chỉnh các tham số để thích ứng với các tình huống khác nhau.
Dễ dàng sử dụng với các chỉ số khác. Chiến lược chéo trung bình di chuyển có thể được kết hợp linh hoạt với các chỉ số kỹ thuật khác như RSI để tạo ra một chiến lược mạnh mẽ hơn.
Chiến lược này cũng có một số rủi ro:
Tạo ra nhiều tín hiệu ngẫu nhiên hơn. Khi xu hướng thị trường không rõ ràng, đường trung bình di chuyển có thể xảy ra nhiều lần, gây ra các tín hiệu mua bán thường xuyên, tăng chi phí giao dịch và mất điểm trượt.
Dễ bị mắc kẹt trong thị trường chấn động. Khi thị trường ở trong trạng thái chấn động, trung bình di chuyển có thể có nhiều tín hiệu chéo không chắc chắn hơn, dễ gây ra tín hiệu giao dịch giả.
Khó chọn tham số. Lựa chọn tham số chu kỳ trung bình di chuyển có ảnh hưởng lớn đến hiệu quả của chiến lược, cách chọn tham số tối ưu cần phải được thử nghiệm nhiều lần.
Tín hiệu tạo ra sự chậm trễ. Do đường trung bình di chuyển tự nó có tính chậm trễ, tín hiệu chéo của nó thường trễ hơn, có thể bỏ lỡ thời gian nhập cảnh tốt nhất.
Chiến lược dừng lỗ không hoàn hảo. Chiến lược này thiếu logic dừng lỗ, có thể tạo ra các đơn vị thua lỗ lớn hơn.
Chiến lược giao chéo trung bình di chuyển này cũng có thể được tối ưu hóa theo các khía cạnh sau:
Thêm các chỉ số kỹ thuật khác để lọc tín hiệu, chẳng hạn như RSI, có thể làm giảm tín hiệu giả. Không làm nhiều khi RSI cao, không làm trống khi RSI thấp.
Thêm trung bình di chuyển tổng hợp, có thể sử dụng tín hiệu xác nhận trung bình di chuyển của ba hoặc nhiều chu kỳ khác nhau. Ví dụ, khi tham gia đường 50 ngày, thị trường đa đầu sẽ mặc trung hạn trong ngắn hạn và trung hạn trong dài hạn.
Thêm các chiến lược dừng lỗ, chẳng hạn như SAR đường parabola, có thể dừng lỗ kịp thời, kiểm soát rủi ro. Cũng có thể thiết lập dừng di động thích ứng với biến động của thị trường.
Tối ưu hóa các tham số, sử dụng các phương pháp như phân tích tiến bộ và học máy để tối ưu hóa các tham số để phù hợp hơn với các môi trường thị trường khác nhau.
Điều khiển biểu đồ giờ, thêm định hướng thực thể K vào định dạng, có thể cải thiện chất lượng tín hiệu và giảm bớt việc mở kho ngược không cần thiết.
Việc kết hợp các chỉ số lượng năng lượng, chẳng hạn như khối lượng giao dịch, có thể giúp tránh phá vỡ giả. Việc xác nhận lượng năng lượng có thể làm cho tín hiệu đáng tin cậy hơn.
Chiến lược giao dịch chéo trung bình di chuyển là một chiến lược giao dịch định lượng đơn giản và thực tế. Nó sử dụng chéo của EMA nhanh và SMA chậm để tạo tín hiệu giao dịch. Chiến lược này dễ thực hiện và dễ sử dụng với các chỉ số kỹ thuật khác.
/*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)