Chiến lược giao dịch chéo EMA

Tác giả:ChaoZhang, Ngày: 2023-12-12 17:09:24
Tags:

img

Tổng quan

Chiến lược giao dịch chéo EMA là một chiến lược giao dịch định lượng đơn giản nhưng hiệu quả. Nó sử dụng các đường trung bình chuyển động theo cấp số nhân (EMA) và tín hiệu chéo để xác định xu hướng giá và xác định các điểm nhập và xuất. So với các chiến lược phức tạp hơn, nó dễ hiểu và thực hiện hơn.

Chiến lược logic

Điều quan trọng là sử dụng hai EMA với các thông số khác nhau. EMA1 được thiết lập ở mức 25 ngày và EMA2 được thiết lập ở mức 100 ngày. Khi EMA ngắn hạn vượt qua EMA dài hạn, đó là tín hiệu mua. Khi EMA ngắn hơn vượt qua dưới EMA dài hơn, đó là tín hiệu bán. Do đó, EMA ngắn hơn nắm bắt xu hướng giá ngắn hạn và động lực, trong khi EMA dài hơn phản ánh xu hướng dài hạn.

Để lọc ra các tín hiệu sai, chiến lược cũng đặt ra một số tiêu chí bổ sung. Ví dụ, yêu cầu một mô hình nến tăng hoặc giao thoa xảy ra trên mức 50 RSI. Điều này tránh các giao dịch sai do tiếng ồn ngắn hạn.

Ưu điểm

Ưu điểm lớn nhất là sự đơn giản và trực quan của chiến lược này. So với các chiến lược với nhiều tham số và logic phức tạp, nó dễ sử dụng hơn nhiều.

Ngoài ra, nó ghi lại những thay đổi xu hướng trong cả hai khung thời gian ngắn hạn và dài hạn, sử dụng chỉ số kỹ thuật cổ điển của EMA để xác định sự đảo ngược xu hướng và xác định các bước vào và ra, do đó giao dịch với xu hướng.

Cuối cùng, các bộ lọc thích hợp được thiết lập để giảm tín hiệu sai và tránh bị đánh lạc hướng bởi tiếng ồn thị trường.

Rủi ro

Rủi ro chính là sự khác biệt giữa xu hướng ngắn hạn và dài hạn. Sự biến động giá đáng kể có thể kích hoạt các tín hiệu chéo nhưng xu hướng dài hạn vẫn không thay đổi, dẫn đến thua lỗ giao dịch. Ngoài ra, whipsaws thường xuất hiện trong các thị trường giới hạn phạm vi.

Các thiết lập thời gian EMA không phù hợp cũng có thể gây nguy hiểm cho hiệu suất chiến lược, vì sức mạnh đại diện của EMA sẽ giảm, khiến chúng không hiệu quả trong việc nắm bắt xu hướng và đảo ngược.

Ngoài ra, các bộ lọc quá nghiêm ngặt có thể khiến bạn bỏ lỡ các cơ hội thương mại tiềm năng, do đó làm suy yếu lợi nhuận.

Tăng cường

Kết hợp với các chỉ số khác như KDJ, MACD vv có thể giúp xác nhận tín hiệu giao dịch và tránh tín hiệu sai.

Kiểm tra các bộ tham số khác nhau để tìm các khoảng thời gian EMA tối ưu và điều chỉnh các tiêu chí lọc để cân bằng tần suất giao dịch và độ tin cậy.

Định kích thước vị trí động cũng rất quan trọng. Ví dụ, vị trí lớn hơn khi hai EMA xa nhau hơn, nhỏ hơn khi gần hơn. Điều này thích nghi với các điều kiện thị trường thay đổi.

Kết luận

Chiến lược EMA crossover là một chiến lược giao dịch định lượng đơn giản nhưng thực tế. Nó tận dụng các tín hiệu EMA crossover để giao dịch cùng với xu hướng ngắn hạn và dài hạn. Dễ hiểu và thực hiện, nó giảm thiểu sự phức tạp và phù hợp với các nhà giao dịch mới. Tuy nhiên, rủi ro của nó không nên bị bỏ qua. Tối ưu hóa hơn nữa về các thông số và bộ lọc có thể làm cho chiến lược mạnh mẽ hơn trên các thị trường khác nhau.


/*backtest
start: 2023-11-11 00:00:00
end: 2023-12-11 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy('EMA Crossover Signal', shorttitle='EMA Crossover Signal', overlay=true)
// Define input for position size as a percentage of equity
position_size_pct = input(1, title='Position Size (%)') / 100

//Input EMA
len1 = input.int(25, minval=1, title='EMA 1')
src1 = input(close, title='Source')
ema1 = ta.ema(src1, len1)
len2 = input.int(100, minval=1, title='EMA 2')
src2 = input(close, title='Source')
ema2 = ta.ema(src2, len2)
//End of format

//Format RSI
lenrsi = input(14, title='RSI length')
outrsi = ta.rsi(close,lenrsi)

bodybar1 = math.abs(close - open)
bodybar2 = math.abs(close[1] - open[1])
// Plot the EMAs
plot(ema1, color=color.new(color.blue, 0), title='EMA 1')
plot(ema2, color=color.new(color.red, 0), title='EMA 2')

// EMA Crossover conditions
emaCrossoverUp = ta.crossover(ema1, ema2)
emaCrossoverDown = ta.crossunder(ema1, ema2)
var entrybar = close  // Initialize entrybar with the current close

// Calculate crossovers outside of the if statements
emaCrossoverUpOccured = ta.crossover(close, ema1) and ema1 > ema2 and bodybar1 > bodybar2 and close > entrybar
emaCrossoverDownOccured = ta.crossunder(close, ema1) and ema1 < ema2 and bodybar1 > bodybar2 and close < entrybar

plotshape(series=emaCrossoverUpOccured, location=location.abovebar, color=color.new(color.green, 0), style=shape.triangleup, title='New Buy Order', size=size.tiny)
plotshape(series=emaCrossoverDownOccured, location=location.belowbar, color=color.new(color.red, 0), style=shape.triangledown, title='New Sell Order', size=size.tiny)

if emaCrossoverUpOccured
    strategy.entry("Enter Long", strategy.long)
else if emaCrossoverDownOccured
    strategy.entry("Enter Short", strategy.short)

Thêm nữa