Chiến lược theo dõi giao cắt EMA


Ngày tạo: 2023-10-25 17:44:35 sửa đổi lần cuối: 2023-10-25 17:44:35
sao chép: 0 Số nhấp chuột: 804
1
tập trung vào
1617
Người theo dõi

Chiến lược theo dõi giao cắt EMA

Tổng quan

Chiến lược giao chéo EMA bằng cách theo dõi sự giao chéo của đường trung bình EMA của hai chu kỳ khác nhau để xác định xu hướng giá và tạo ra tín hiệu mua và bán. Nó tạo ra tín hiệu mua khi EMA chu kỳ ngắn đi qua EMA chu kỳ dài và tín hiệu bán khi EMA chu kỳ ngắn đi qua EMA chu kỳ dài.

Nguyên tắc chiến lược

Chiến lược này chủ yếu dựa trên nguyên tắc ngã ba vàng của đường trung bình EMA. đường trung bình EMA có thể làm mịn tiếng ồn lọc dữ liệu giá và đánh giá xu hướng giá thông qua sự giao thoa của đường trung bình EMA.

Trong khi đó, chiến lược này kết hợp với chỉ số SuperTrend để lọc các tín hiệu giả tạo ra giao dịch EMA. Chỉ số SuperTrend được tính toán dựa trên đường đua lên và xuống theo ATR, có thể đánh giá chính xác hơn về xu hướng thực.

Cụ thể, chiến lược này có các tiêu chí như sau:

  1. Một tín hiệu mua được tạo ra khi 20 EMA vượt qua 50 EMA và giá phá vỡ đường SuperTrend;

  2. Một tín hiệu bán ra được tạo ra khi 20 EMA vượt qua 50 EMA và giá giảm xuống dưới đường SuperTrend.

Xác định xu hướng lớn thông qua EMA và kết hợp với các chỉ số SuperTrend để lọc các biến động, có thể cải thiện độ chính xác của tín hiệu giao dịch chiến lược.

Phân tích lợi thế

Chiến lược giao chéo EMA có những ưu điểm sau:

  1. Hoạt động đơn giản, dễ thực hiện. Chỉ cần tính toán sự giao nhau của hai đường trung bình EMA.

  2. EMA có tác dụng lọc đối với biến động giá. EMA là trung bình di chuyển, có thể lọc một số tiếng ồn.

  3. Kết hợp với chỉ số SuperTrend, nó có thể lọc thêm tiếng ồn và giảm tín hiệu giả.

  4. Bạn có thể điều chỉnh các tham số chu kỳ EMA để phù hợp với môi trường thị trường khác nhau.

  5. Có thể tùy chỉnh vị trí dài và ngắn, có thể thực hiện nhiều phương thức giao dịch.

  6. Có thể thực hiện trên các chu kỳ thời gian khác nhau, áp dụng cho các loại thương nhân khác nhau.

Phân tích rủi ro

EMA cũng đưa ra một số rủi ro:

  1. Khi thị trường biến động mạnh, các tín hiệu chéo EMA có thể bị tụt lại và không thể phản ánh kịp thời sự thay đổi giá cả.

  2. Đường trung bình EMA có độ trễ và có thể tạo ra tín hiệu sai.

  3. Các tham số EMA ngắn hạn và EMA dài hạn được thiết lập không đúng, có thể dẫn đến quá nhiều tín hiệu sai.

  4. Chỉ dựa vào đường chéo trung bình không thể xác định xu hướng thị trường thực tế, có một số mù quáng.

  5. Cần chọn chiến lược ngăn chặn thiệt hại thích hợp để kiểm soát rủi ro.

Những điều sau đây có thể làm giảm nguy cơ:

  1. Tối ưu hóa tham số chu kỳ EMA, chọn chu kỳ trung bình chậm nhanh phù hợp.

  2. Giảm thời gian nắm giữ một cách thích hợp và dừng lỗ kịp thời.

  3. Kết hợp với các chỉ số khác như trung bình di chuyển, hình dạng K-line để đánh giá tổng hợp.

  4. Điều chỉnh tần suất giao dịch để giảm số lần giao dịch.

Hướng tối ưu hóa

Chiến lược này có thể được tối ưu hóa theo các khía cạnh sau:

  1. Tối ưu hóa tham số chu kỳ của đường trung bình EMA, thích ứng với các chu kỳ khác nhau và môi trường thị trường. Có thể giới thiệu cơ chế tối ưu hóa tham số thích ứng.

  2. Thử các chỉ số đường trung bình khác nhau, chẳng hạn như SMA, KWMA, v.v.

  3. Kết hợp nhiều chỉ số để giao dịch kết hợp, tạo ra mô hình đa yếu tố như MACD, RSI, v.v.

  4. Thêm các chiến lược dừng lỗ, như theo dõi dừng lỗ, dừng phần trăm để kiểm soát rủi ro.

  5. Tiếp theo, chúng tôi sẽ giới thiệu bộ lọc khối lượng giao dịch, kết hợp với chỉ số khối lượng giao dịch để tránh các tín hiệu giả.

  6. Tối ưu hóa chiến lược exits, thiết lập các quy tắc xuất cảnh. Ví dụ như kết hợp hình dạng đường K, các tín hiệu EXIT đột phá.

  7. Xác nhận xu hướng trong chu kỳ thời gian cao hơn, nhập cảnh trong chu kỳ thời gian thấp hơn, theo dõi xu hướng.

Tóm tắt

Chiến lược giao chéo EMA là một chiến lược theo dõi xu hướng đơn giản và thực tế. Nó có thể xác định xu hướng trung bình của giá, tạo ra tín hiệu mua và bán. Kết hợp với chỉ số SuperTrend có thể lọc hiệu quả tiếng ồn, giảm sai trades.

Mã nguồn chiến lược
/*backtest
start: 2023-09-24 00:00:00
end: 2023-10-24 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © alokbothra

//@version=5
strategy("Ema Crossover", overlay=true, initial_capital = 1000)
start = timestamp(2021,1,1,0,0)
end = timestamp(2023,10,30,0,0)
plot (ta.ema(close,20), title = "Ema 20", color = color.green , linewidth = 2)
plot (ta.ema(close,50), title = "Ema 50", color = color.red, linewidth = 2 )

//supertrend 1
Periods = input(title='ATR Period', defval=11)
Multiplier = input.float(title='ATR Multiplier', step=0.1, defval=3)
changeATR = input(title='Change ATR Calculation Method ?', defval=true)
showsignals = input(title='Show Buy/Sell Signals ?', defval=true)
highlighting = input(title='Highlighter On/Off ?', defval=true)
atr2 = ta.sma(ta.tr, Periods)
atr = changeATR ? ta.atr(Periods) : atr2
up = close - Multiplier * atr
up1 = nz(up[1], up)
up := close[1] > up1 ? math.max(up, up1) : up
dn =close+ Multiplier * atr
dn1 = nz(dn[1], dn)
dn := close[1] < dn1 ? math.min(dn, dn1) : dn
trend = 1
trend := nz(trend[1], trend)
trend := trend == -1 and close > dn1 ? 1 : trend == 1 and close < up1 ? -1 : trend
upPlot = plot(trend == 1 ? up : na, title='Up Trend', style=plot.style_linebr, linewidth=2, color=color.new(color.green, 0))
buySignal = trend == 1 and trend[1] == -1
plotshape(buySignal ? up : na, title='UpTrend Begins', location=location.absolute, style=shape.circle, size=size.tiny, color=color.new(color.green, 0))
dnPlot = plot(trend == 1 ? na : dn, title='Down Trend', style=plot.style_linebr, linewidth=2, color=color.new(color.red, 0))
sellSignal = trend == -1 and trend[1] == 1
plotshape(sellSignal ? dn : na, title='DownTrend Begins', location=location.absolute, style=shape.circle, size=size.tiny, color=color.new(color.red, 0))
mPlot = plot(ohlc4, title='', style=plot.style_circles, linewidth=0)
changeCond = trend != trend[1]

longonly = input.bool(defval = true, title = 'Long Only')
shortonly = input.bool(defval = true, title = 'Short Only')

longCondition = (ta.ema(close, 20) >= ta.ema(close, 50)) 
shortCondition = (ta.ema(close, 20) <= ta.ema(close, 50))
long = (trend == 1)
short = (trend == -1)
sell= short
cover= long
if time >= start and time < end
    if longonly
        if ((longCondition) and (long))
            strategy.entry ("Long Entry", strategy.long, comment ="Long Entry")
        if strategy.position_size > 0
            strategy.close("Long Entry", when = sell, comment = "Long Exit")
    if shortonly
        if ((shortCondition) and (short))
            strategy.entry("Short Entry", strategy.short, comment = "Short Entry")
        if strategy.position_size < 0
            strategy.close("Short Entry", when = cover, comment = "Short Exit")