Chiến lược này sử dụng ba chỉ số trung bình động theo cấp số nhân (EMA) với các khoảng thời gian khác nhau để xác định xu hướng thị trường và tạo ra tín hiệu mua / bán. Các giao thoa giữa EMA nhanh, EMA chậm và EMA lọc xu hướng, cùng với vị trí giá tương đối với EMA lọc xu hướng, tạo thành logic cốt lõi của chiến lược này. Ngoài ra, chỉ số xu hướng Fukuiz được giới thiệu như một phán quyết phụ, kích hoạt việc đóng vị trí trong một số điều kiện nhất định.
Chiến lược này xây dựng một khuôn khổ đánh giá xu hướng và giao dịch tương đối hoàn chỉnh bằng cách kết hợp các EMA nhiều giai đoạn và chỉ số xu hướng Fukuiz. Logic chiến lược rõ ràng, các tham số có thể điều chỉnh và khả năng thích nghi mạnh mẽ. Tuy nhiên, nó cũng có một số rủi ro tiềm năng, chẳng hạn như chậm tín hiệu và sai lệch đánh giá xu hướng. Trong tương lai, chiến lược có thể được tinh chỉnh hơn về tối ưu hóa tham số, kết hợp chỉ số và quản lý rủi ro.
/*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")