Chiến lược này kết hợp các phương pháp theo dõi xu hướng và phân tích động lực, sử dụng chỉ số Simple Moving Average (SMA) và Moving Average Convergence Divergence (MACD) để xác định các cơ hội giao dịch tiềm năng. Chiến lược sử dụng chỉ số Trendilo (một chỉ số xu hướng dựa trên SMA) để xác định xu hướng thị trường tổng thể, trong khi sử dụng đường chéo đường không MACD để nắm bắt những thay đổi động lực ngắn hạn. Ngoài ra, chiến lược kết hợp Average True Range (ATR) để thiết lập động mức dừng lỗ và lấy lợi nhuận, thích nghi với những thay đổi trong biến động thị trường.
Logic cốt lõi của chiến lược dựa trên các yếu tố chính sau:
Đặc biệt, tín hiệu dài được kích hoạt khi đường MACD vượt qua trên 0 và giá đóng trên đường Trendilo. Ngược lại, tín hiệu ngắn được kích hoạt khi đường MACD vượt qua dưới 0 và giá đóng dưới đường Trendilo. Sau khi vào, chiến lược sử dụng mức dừng lỗ và lấy lợi nhuận dựa trên ATR để quản lý rủi ro và khóa lợi nhuận.
Chiến lược này kết hợp thông minh theo dõi xu hướng và phân tích động lực, cung cấp cho các nhà giao dịch một khung phân tích thị trường tương đối toàn diện thông qua sự phối hợp của Trendilo và MACD. Cách tiếp cận quản lý rủi ro năng động tăng khả năng thích nghi của chiến lược, cho phép nó duy trì sự ổn định trong các môi trường thị trường khác nhau. Tuy nhiên, các nhà giao dịch vẫn nên thận trọng khi sử dụng chiến lược này, đặc biệt là về tối ưu hóa tham số và kiểm soát rủi ro. Thông qua việc theo dõi và tối ưu hóa liên tục, chiến lược này có tiềm năng trở thành một công cụ giao dịch đáng tin cậy, đặc biệt phù hợp với các nhà đầu tư tìm cách nắm bắt cơ hội trong các thị trường xu hướng.
/*backtest start: 2019-12-23 08:00:00 end: 2024-09-24 08:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("NNFX Trendilo + Zero MACD Strategy", overlay=true) // --- Inputs --- atrPeriod = input.int(14, title="ATR Period") stopLossMultiplier = input.float(1.5, minval=0.0, maxval = 20.0, step = 0.1 ,title="Stop Loss Multiplier") takeProfitMultiplier = input.float(2.0, minval=0.0 , maxval = 20.0, step = 0.1,title="Take Profit Multiplier") // --- Trendilo --- trendiloPeriod = input.int(50, title="Trendilo Period") trendilo = ta.sma(close, trendiloPeriod) // --- MACD --- [macdLine, signalLine, _] = ta.macd(close, 12, 26, 9) macdZeroCrossUp = ta.crossover(macdLine, 0) macdZeroCrossDown = ta.crossunder(macdLine, 0) // --- ATR for Stop Loss and Take Profit --- atr = ta.atr(atrPeriod) stopLoss = atr * stopLossMultiplier takeProfit = atr * takeProfitMultiplier // --- Trading Logic --- longCondition = macdZeroCrossUp and close > trendilo shortCondition = macdZeroCrossDown and close < trendilo // --- Execute Long Trades --- if (longCondition) strategy.entry("Buy", strategy.long) strategy.exit("Take Profit/Stop Loss", "Buy", limit=close + takeProfit, stop=close - stopLoss) // --- Execute Short Trades --- if (shortCondition) strategy.entry("Sell", strategy.short) strategy.exit("Take Profit/Stop Loss", "Sell", limit=close - takeProfit, stop=close + stopLoss) // --- Plot Signals --- plotshape(series=longCondition, location=location.belowbar, color=color.green, style=shape.labelup, text="Buy") plotshape(series=shortCondition, location=location.abovebar, color=color.red, style=shape.labeldown, text="Sell") // --- Plot Trendilo --- plot(trendilo, color=color.blue, linewidth=2)