Chiến lược lọc xu hướng EMA

EMA stdev Trend
Ngày tạo: 2024-06-14 15:51:05 sửa đổi lần cuối: 2024-06-14 15:51:05
sao chép: 0 Số nhấp chuột: 715
1
tập trung vào
1617
Người theo dõi

Chiến lược lọc xu hướng EMA

Tổng quan

Chiến lược này sử dụng moving average chỉ số ((EMA) của ba chu kỳ khác nhau để đánh giá xu hướng thị trường và tín hiệu mua và bán. Sự giao thoa của EMA nhanh, EMA chậm và EMA lọc xu hướng, và vị trí của giá so với EMA lọc xu hướng, cùng nhau tạo thành logic cốt lõi của chiến lược.

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

  1. Tính toán EMA của ba chu kỳ khác nhau: EMA nhanh (chính định 9 chu kỳ), EMA chậm (chính định 21 chu kỳ) và EMA lọc xu hướng (chính định 200 chu kỳ).
  2. Tính phân chênh lệch tiêu chuẩn giá trong 20 chu kỳ để đo lường tỷ lệ biến động của thị trường.
  3. Tiếp theo, nó sẽ đưa vào chỉ số xu hướng Fukuiz ((EMA 14 chu kỳ mặc định) và xác định màu sắc dựa trên mối quan hệ của nó với kích thước của chu kỳ trước ((trung lên là màu xanh lá cây, giảm xuống là màu đỏ))
  4. Một tín hiệu mua được tạo ra khi EMA nhanh vượt qua EMA chậm và EMA nhanh cao hơn EMA chậm và giá cao hơn EMA lọc xu hướng.
  5. Một tín hiệu bán được tạo ra khi EMA nhanh vượt qua EMA chậm và EMA nhanh thấp hơn EMA chậm và giá thấp hơn EMA lọc xu hướng.
  6. Khi nắm giữ nhiều vị trí đầu, nếu chỉ số xu hướng Fukuiz chuyển sang màu đỏ, hãy xóa các vị trí đầu.
  7. Khi nắm giữ vị trí đầu trống, nếu chỉ số xu hướng Fukuiz chuyển sang màu xanh lá cây, hãy xóa vị trí đầu trống.

Phân tích lợi thế

  1. Một sự kết hợp của nhiều chu kỳ EMA sẽ giúp nắm bắt được xu hướng thị trường tốt hơn.
  2. Sự ra đời của chỉ số xu hướng Fukuiz cung cấp thêm cơ sở để đánh giá xu hướng và trong một số trường hợp đóng vai trò như một điểm dừng lỗ.
  3. Các tham số có thể điều chỉnh được, có khả năng thích ứng và có thể được tối ưu hóa cho các thị trường và chu kỳ khác nhau.

Phân tích rủi ro

  1. EMA về bản chất là một chỉ số chậm trễ, có thể xảy ra sự chậm trễ tín hiệu khi thị trường chuyển đổi nhanh chóng.
  2. Trình lọc xu hướng có chu kỳ EMA dài, có thể khiến chiến lược bỏ lỡ một số xu hướng ngắn hạn.
  3. Lý do đặt hàng thắt lưng của chỉ số xu hướng Fukuiz có thể khiến chiến lược dừng lại quá sớm, do đó bỏ lỡ xu hướng tiếp theo.

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

  1. Tối ưu hóa các tham số chu kỳ của mỗi EMA để tìm các tham số phù hợp nhất với thị trường hiện tại.
  2. Các chỉ số hỗ trợ khác như RSI, MACD, v.v. đã được đưa ra để cung cấp thêm cơ sở vào và ra sân.
  3. Tối ưu hóa logic dừng lỗ cho chỉ số xu hướng Fukuiz, chẳng hạn như thêm một vùng đệm nhất định để tránh dừng lỗ quá sớm.
  4. Xem xét thêm các mô-đun quản lý vị thế và kiểm soát rủi ro để tăng cường sự ổn định và khả năng chống rủi ro của chiến lược.

Tóm tắt

Chiến lược này được xây dựng bằng sự kết hợp của nhiều EMA chu kỳ, và hỗ trợ của chỉ số xu hướng Fukuiz, để xây dựng một khung phán đoán và giao dịch xu hướng tương đối hoàn chỉnh. Lập luận của chiến lược là rõ ràng, các tham số có thể điều chỉnh được, có khả năng thích ứng mạnh mẽ. Tuy nhiên, cũng có một số rủi ro tiềm ẩn, chẳng hạn như tín hiệu chậm trễ, sai lệch trong phán đoán xu hướng.

Mã nguồn chiến lược
/*backtest
start: 2023-06-08 00:00:00
end: 2024-06-13 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("EvilRed Trading Indicator Trend Filter", overlay=true)

// Parameters Definition
fastLength = input(9, title="Fast EMA Length")
slowLength = input(21, title="Slow EMA Length")
trendFilterLength = input(200, title="Trend Filter EMA Length")

// Moving Averages Calculation
fastEMA = ta.ema(close, fastLength)
slowEMA = ta.ema(close, slowLength)
trendEMA = ta.ema(close, trendFilterLength)

// Volatility Calculation
volatility = ta.stdev(close, 20)

// Add Fukuiz Trend Indicator
fukuizTrend = ta.ema(close, 14)
fukuizColor = fukuizTrend > fukuizTrend[1] ? color.green : color.red
plot(fukuizTrend, color=fukuizColor, title="Fukuiz Trend")

// Plotting Moving Averages
plot(fastEMA, color=color.blue, title="Fast EMA")
plot(slowEMA, color=color.red, title="Slow EMA")
plot(trendEMA, color=color.orange, title="Trend Filter")

// Plotting Buy and Sell Signals
buySignal = ta.crossover(fastEMA, slowEMA) and fastEMA > slowEMA and close > trendEMA
sellSignal = ta.crossunder(fastEMA, slowEMA) and fastEMA < slowEMA and close < trendEMA

// Entry and Exit Conditions
if (strategy.position_size > 0 and fukuizColor == color.red)
    strategy.close("Long", comment="Fukuiz Trend is Red")

if (strategy.position_size < 0 and fukuizColor == color.green)
    strategy.close("Short", comment="Fukuiz Trend is Green")

if (buySignal)
    strategy.entry("Long", strategy.long)
    
if (sellSignal)
    strategy.entry("Short", strategy.short)




plotshape(buySignal, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small, title="Buy Signal")
plotshape(sellSignal, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small, title="Sell Signal")