Chiến lược này là một hệ thống giao dịch theo xu hướng dựa trên nhiều Mức trung bình chuyển động nhân tố (EMA) và Mức trung bình thực sự (ATR). Nó sử dụng ba EMA (20, 50 và 100 thời gian) kết hợp với ATR để quản lý rủi ro năng động và nhắm mục tiêu lợi nhuận. Cách tiếp cận này đảm bảo giao dịch có hệ thống trong khi duy trì kiểm soát rủi ro năng động.
Logic cốt lõi được xây dựng trên sự tương tác giữa giá và nhiều EMA:
Chiến lược này kết hợp nhiều EMA và kiểm soát rủi ro năng động dựa trên ATR để tạo ra một hệ thống giao dịch có cả hai đặc điểm theo xu hướng và giao dịch dao động.
/*backtest start: 2019-12-23 08:00:00 end: 2024-12-18 08:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=6 strategy("EMA Swing Strategy with ATR", overlay=true) // Inputs emaShort = input.int(20, "Short EMA") emaMid = input.int(50, "Mid EMA") emaLong = input.int(100, "Long EMA") rrRatio = input.float(1.5, "Risk-Reward Ratio") contracts = input.int(5, "Number of Contracts") // Calculations ema20 = ta.ema(close, emaShort) ema50 = ta.ema(close, emaMid) ema100 = ta.ema(close, emaLong) atr = ta.atr(14) // Conditions longCondition = ta.crossover(close, ema20) and close > ema50 shortCondition = ta.crossunder(close, ema20) and close < ema50 // Variables for trades var float entryPrice = na var float stopLoss = na var float takeProfit = na // Long Trades if (longCondition) entryPrice := close stopLoss := close - atr takeProfit := close + atr * rrRatio strategy.entry("Long", strategy.long, contracts) strategy.exit("Exit Long", from_entry="Long", stop=stopLoss, limit=takeProfit) // Short Trades if (shortCondition) entryPrice := close stopLoss := close + atr takeProfit := close - atr * rrRatio strategy.entry("Short", strategy.short, contracts) strategy.exit("Exit Short", from_entry="Short", stop=stopLoss, limit=takeProfit) // Plot EMAs plot(ema20, color=color.green, title="EMA 20") plot(ema50, color=color.red, title="EMA 50") plot(ema100, color=color.white, title="EMA 100") // Visualization for Entries plotshape(series=longCondition, style=shape.labelup, color=color.green, location=location.belowbar, title="Long Entry") plotshape(series=shortCondition, style=shape.labeldown, color=color.red, location=location.abovebar, title="Short Entry")