Chiến lược này là một hệ thống theo dõi xu hướng năng động dựa trên tín hiệu chéo EMA kép, xác định sự thay đổi xu hướng thị trường thông qua sự chéo chéo của Mức trung bình chuyển động cấp số 20 ngày ngắn hạn (EMA) và Mức trung bình chuyển động cấp số 50 ngày dài hạn, thực hiện các giao dịch mua và bán tự động. Chiến lược sử dụng các phương pháp phân tích kỹ thuật trưởng thành, kết hợp theo dõi xu hướng với quản lý vị trí năng động, phù hợp với các thị trường có biến động đáng kể.
Logic cốt lõi của chiến lược dựa trên các yếu tố chính sau:
Chiến lược này là một thực hiện hiện đại của một hệ thống theo xu hướng cổ điển, hệ thống hóa và tiêu chuẩn hóa chiến lược chéo EMA kép truyền thống thông qua giao dịch theo chương trình. Mặc dù có rủi ro vốn có, chiến lược có triển vọng ứng dụng tốt thông qua tối ưu hóa và cải tiến liên tục.
/*backtest start: 2019-12-23 08:00:00 end: 2025-01-04 08:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("EMA Crossover Buy/Sell Signals", overlay=true) // Input parameters for EMAs emaShortLength = input.int(20, title="Short EMA Length") emaLongLength = input.int(50, title="Long EMA Length") // Calculating EMAs emaShort = ta.ema(close, emaShortLength) emaLong = ta.ema(close, emaLongLength) // Plotting EMA crossover lines plot(emaShort, color=color.green, title="20 EMA") plot(emaLong, color=color.red, title="50 EMA") // Buy and Sell signal logic longCondition = ta.crossover(emaShort, emaLong) exitLongCondition = ta.crossunder(emaShort, emaLong) shortCondition = ta.crossunder(emaShort, emaLong) exitShortCondition = ta.crossover(emaShort, emaLong) // Plot buy and sell signals on the chart plotshape(series=longCondition, location=location.belowbar, color=color.green, style=shape.labelup, title="Buy Signal") plotshape(series=exitLongCondition, location=location.abovebar, color=color.red, style=shape.labeldown, title="Sell Exit") plotshape(series=shortCondition, location=location.abovebar, color=color.red, style=shape.labeldown, title="Sell Signal") plotshape(series=exitShortCondition, location=location.belowbar, color=color.green, style=shape.labelup, title="Buy Exit") // Backtesting strategy logic var float entryPrice = na var int position = 0 // 1 for long, -1 for short, 0 for no position if (longCondition and position == 0) entryPrice := close position := 1 if (shortCondition and position == 0) entryPrice := close position := -1 if (exitLongCondition and position == 1) strategy.exit("Exit Long", from_entry="Long", limit=close) position := 0 if (exitShortCondition and position == -1) strategy.exit("Exit Short", from_entry="Short", limit=close) position := 0 if (longCondition) strategy.entry("Long", strategy.long) if (shortCondition) strategy.entry("Short", strategy.short)