Chiến lược dựa trên 5-10-20 Day EMA Crossover sử dụng Super Trend Confirmation

Tác giả:ChaoZhang, Ngày: 2023-12-19 10:39:36
Tags:

img

Tổng quan

Chiến lược này tính toán các đường trung bình động theo cấp số nhân (EMA) 5 ngày, 10 ngày và 20 ngày và sử dụng chỉ số Super Trend để tạo tín hiệu mua và bán. Nó tạo tín hiệu mua khi EMA 5 ngày vượt qua trên EMA 10 ngày và cả EMA 5 ngày và 10 ngày vượt qua trên EMA 20 ngày. Nó tạo tín hiệu bán khi EMA 10 ngày vượt qua dưới EMA 5 ngày và cả EMA 5 ngày và 10 ngày vượt qua dưới EMA 20 ngày.

Chiến lược logic

  1. Tính toán EMA 5 ngày, EMA 10 ngày và EMA 20 ngày.
  2. Tính toán chỉ số siêu xu hướng.
  3. Khi EMA 5 ngày lớn hơn EMA 10 ngày, và cả EMA 5 ngày và 10 ngày đều lớn hơn EMA 20 ngày, có nghĩa là EMA 5 ngày và 10 ngày vượt trên EMA 20 ngày, tạo tín hiệu mua.
  4. Khi EMA 10 ngày thấp hơn EMA 5 ngày, và cả EMA 5 ngày và 10 ngày đều thấp hơn EMA 20 ngày, có nghĩa là EMA 5 ngày và 10 ngày vượt qua dưới EMA 20 ngày, tạo tín hiệu bán.
  5. Cũng sử dụng chỉ số Super Trend để xác định xu hướng thị trường. Tạo tín hiệu mua chỉ khi Super Trend cho thấy xu hướng giảm, và tạo tín hiệu bán chỉ khi Super Trend cho thấy xu hướng tăng.

Ưu điểm của Chiến lược

  1. Đơn giản và hiệu quả, dễ hiểu và thực hiện.
  2. Các tín hiệu chính xác và đáng tin cậy hơn bằng cách kết hợp ba đường EMA và chỉ số Super Trend.
  3. Phân tích toàn diện về xu hướng ngắn hạn, trung hạn và dài hạn bằng cách sử dụng EMA 5 ngày, 10 ngày và 20 ngày.
  4. Tránh bị thao túng bằng cách kết hợp các chỉ số kỹ thuật và động lực.
  5. Các thông số điều chỉnh linh hoạt cho các sản phẩm và điều kiện thị trường khác nhau.
  6. Phát hiện chính xác các cơ hội giao dịch với tỷ lệ rủi ro-lợi nhuận cao.
  7. Dễ hiểu, dễ mở rộng và tùy chỉnh.

Rủi ro của chiến lược

  1. Nhiều tín hiệu sai có thể xảy ra trong thời gian biến động thị trường mạnh mẽ.
  2. Hệ thống EMA rất nhạy cảm với các thông số.
  3. Đánh giá xu hướng siêu xu hướng có tác dụng chậm. Cần xác nhận từ các chỉ số khác.
  4. Không thể đối phó với các sự kiện thị trường cực đoan như flash crash.

Giải pháp cho các rủi ro lớn:

  1. Thêm thêm các chỉ số kỹ thuật hoặc phân tích cơ bản để xác nhận tín hiệu.
  2. Thêm chiến lược dừng lỗ để hạn chế lỗ.
  3. Tối ưu hóa các thông số bằng cách kết hợp các chỉ số ngắn hạn và dài hạn.
  4. Kiểm tra biến động chỉ số và hiệu suất Super Trend. can thiệp thủ công nếu cần.

Hướng dẫn tối ưu hóa chiến lược

  1. Thêm nhiều hệ thống EMA và các chỉ số kỹ thuật như MACD, KD v.v.
  2. Thêm các tính năng dừng lỗ tự động, lấy lợi nhuận.
  3. Tối ưu hóa các thông số Super Trend và EMA dựa trên các sản phẩm và điều kiện thị trường khác nhau.
  4. Thêm backtesting để tối ưu hóa các thông số và chiến lược dựa trên dữ liệu lịch sử.
  5. Thêm mô hình dự đoán học máy để dự đoán xu hướng giá và cơ hội giao dịch tiềm năng.

Tóm lại

Chiến lược sử dụng EMA 5 ngày, 10 ngày và 20 ngày cùng với chỉ số Super Trend. Nó đơn giản nhưng hiệu quả, hoạt động tuyệt vời trong việc xác định xu hướng và khám phá cơ hội. Có thể tùy chỉnh và mở rộng cao.


/*backtest
start: 2022-12-12 00:00:00
end: 2023-12-18 00:00:00
period: 1d
basePeriod: 1h
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/
// © aadilpatel07

//@version=4
strategy("5-10-20 Cross", overlay=true)
src = close, 
len1 = input(5, minval=1, title="EMA 1")
len2 = input(10, minval=1, title="EMA 2")
len3 = input(20, minval=1, title="EMA 3")

mult = input(type=input.float, defval=2)
len = input(type=input.integer, defval=14)
[superTrend, dir] = supertrend(mult, len)

ema1 = ema(src, len1)
ema2 = ema(src, len2)
ema3 = ema(src, len3)

//EMA Color
col1 = color.lime
col2 = color.blue
col3 = color.red

//EMA Plots
plot(series=ema1,color=col1, title="EMA1")
plot(series=ema2,color=col2, title="EMA2")
plot(series=ema3,color=col3, title="EMA3")

//plot SuperTrend
colResistance = dir == 1 and dir == dir[1] ? color.new(color.red, 100) : color.new(color.green, 100)
colSupport = dir == -1 and dir == dir[1] ? color.new(color.green, 0) : color.new(color.green, 10)
plot(superTrend, color = colResistance, linewidth=1)
plot(superTrend, color = colSupport, linewidth=1)

//longCondition = crossover(ema1, ema2) and crossover(ema1,ema3) and crossover(ema2,ema3)
longCondition = ema1 > ema2 and ema1 > ema3 and ema2 > ema3 and ema2 < ema1 and dir == -1
if (longCondition)
    strategy.entry("My Long Entry Id", strategy.long)

//shortCondition = crossover(ema2, ema1) and crossover(ema3,ema1) and crossover(ema3,ema2)
shortCondition = ema1 < ema2 and ema1 < ema3 and ema2 < ema3 and ema2 > ema1 and dir == 1
if (shortCondition)
    strategy.entry("My Short Entry Id", strategy.short)

Thêm nữa