Xu hướng theo chiến lược dựa trên EMA Crossover

Tác giả:ChaoZhang, Ngày: 2024-02-22 13:59:07
Tags:

img

Tổng quan

Chiến lược này xác định hướng xu hướng thị trường thông qua sự chéo chéo giữa các đường EMA nhanh và chậm, và giao dịch dọc theo xu hướng.

Chiến lược logic

Chiến lược tính toán EMA nhanh (i_shortTerm) và EMA chậm (i_longTerm) dựa trên các thông số đầu vào. Khi EMA ngắn hạn vượt trên EMA dài hạn (goLongCondition1) và giá vượt trên EMA ngắn hạn (goLongCondition2), nó đi vào vị trí dài. Khi giá phá vỡ dưới EMA ngắn hạn (exitCondition2), nó đóng vị trí.

Chiến lược này dựa trên đường chéo vàng của đường EMA để xác định xu hướng thị trường chính và giao dịch theo xu hướng. Khi EMA ngắn hạn vượt qua trên EMA dài hạn, nó báo hiệu xu hướng tăng; khi giá trên EMA ngắn hạn, nó chỉ ra xu hướng tăng đang diễn ra, vì vậy hãy đi dài. Khi giá giảm xuống dưới EMA ngắn hạn, nó báo hiệu sự đảo ngược xu hướng, vì vậy ngay lập tức đóng vị trí.

Phân tích lợi thế

Những lợi thế chính của chiến lược này là:

  1. Sử dụng EMA để xác định xu hướng thị trường chính, tránh biến động ngắn hạn.

  2. Độ nhạy điều chỉnh trong phát hiện xu hướng thông qua các thông số EMA nhanh và chậm.

  3. Logic đơn giản và rõ ràng, dễ hiểu và thực hiện, phù hợp với những người mới bắt đầu giao dịch lượng tử.

  4. Các tham số thời gian EMA có thể tùy chỉnh cho các sản phẩm và thị trường khác nhau.

  5. Kiểm soát rủi ro hiệu quả bằng cách dừng lỗ khi giá vượt qua đường EMA.

Phân tích rủi ro

Ngoài ra còn có một số rủi ro:

  1. Các tín hiệu chéo EMA bị trì hoãn có thể gây ra tổn thất trong quá trình đảo ngược xu hướng.

  2. Sự phá vỡ sai trên đường EMA ngắn hạn có thể gây ra các mục nhập thất bại.

  3. Các thiết lập thông số y tế không đúng có thể làm suy yếu hiệu suất chiến lược.

  4. Hiệu suất phụ thuộc rất nhiều vào điều kiện thị trường, không phù hợp với tất cả các sản phẩm và thời kỳ.

Các phép đo quản lý rủi ro tương ứng:

  1. Tối ưu hóa các thông số EMA để có độ nhạy tốt hơn đối với sự đảo ngược.

  2. Thêm các chỉ số kỹ thuật khác để lọc tín hiệu nhập cảnh.

  3. Tiếp tục gỡ lỗi và tối ưu hóa các thông số cho các thị trường khác nhau.

  4. Hiểu đầy đủ các điều kiện thị trường áp dụng trước khi áp dụng chiến lược.

Hướng dẫn tối ưu hóa

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

  1. Thêm các chỉ số khác như MACD và KD để lọc tín hiệu nhập cảnh.

  2. Thực hiện dừng lỗ để khóa lợi nhuận và kiểm soát rủi ro tốt hơn.

  3. Tối ưu hóa vị trí dừng lỗ với chỉ số biến động ATR.

  4. Kiểm tra và tìm ra các phương pháp khoa học tốt hơn để điều chỉnh tham số EMA.

  5. Xác nhận tín hiệu trên nhiều khung thời gian để cải thiện độ chính xác.

  6. Hãy thử sửa đổi BREAKOUT để bắt được những động thái lớn hơn trong giai đoạn tăng tốc xu hướng.

Kết luận

Chiến lược này theo dõi hiệu quả xu hướng thị trường bằng cách giao dịch trên tín hiệu chéo EMA. Với logic rõ ràng và rủi ro có thể kiểm soát được, nó phù hợp cho những người mới bắt đầu giao dịch lượng để thực hành. Việc tối ưu hóa thêm về điều chỉnh tham số, lọc nhập cảnh, đặt dừng lỗ có thể cải thiện hiệu suất chiến lược. Nhưng tất cả các chiến lược đều có hạn chế, người dùng nên áp dụng thận trọng dựa trên điều kiện thị trường khi giao dịch trực tiếp.


/*backtest
start: 2023-02-15 00:00:00
end: 2024-02-21 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © pradhan_abhishek

//@version=5
strategy('EMA cross-over strategy by AP', overlay=true, shorttitle='EMACS-AP', initial_capital=100000, default_qty_value=100, default_qty_type=strategy.percent_of_equity, commission_value=0.025)

// inputs
i_shortTerm = input(title='Fast EMA', defval=21)
i_longTerm = input(title='Slow EMA', defval=55)
// select backtest range: if this is not given, then tradingview goes back since inception / whereever it finds data
i_from = input(defval = timestamp("01 Jan 2023 00:00"), title = "From")
i_to = input(defval = timestamp("31 Dec 2033 23:59"), title = "To")
i_showBg = input(defval = true, title = "Show In-trade / Out-trade background")

// create date function "within window of time"
date() => true

// exponential moving average (EMA) variables, derived from input parameters
shortTermEMA = ta.ema(close, i_shortTerm)
longTermEMA = ta.ema(close, i_longTerm)
atr = ta.atr(14)

// ### Trade strategy: begins ###
inTrade = strategy.position_size > 0
notInTrade = strategy.position_size <= 0

goLongCondition1 = shortTermEMA > longTermEMA
goLongCondition2 = close > shortTermEMA

// exitCondition1 = shortTermEMA < midTermEMA
exitCondition2 = close < shortTermEMA

// enter if not in trade and long conditions are met
if date() and goLongCondition1 and goLongCondition2 and notInTrade
    strategy.entry('long', strategy.long)
    // exit on stop-Loss hit
    stopLoss = close - atr * 3
    strategy.exit('exit', 'long', stop=stopLoss)

// exit if already in trade and take profit conditions are met
if date() and exitCondition2 and inTrade
    strategy.close(id='long')
// ###Trade strategy: ends ###

// plot emas & background color for trade status
plot(shortTermEMA, color=color.new(color.blue, 0))
plot(longTermEMA, color=color.new(color.green, 0))
trade_bgcolor = notInTrade ? color.new(color.red, 75) : color.new(color.green, 75)
bgcolor(i_showBg ? trade_bgcolor : color.new(color.white, 75))

Thêm nữa