Chiến lược này sử dụng sự chéo chéo của hai đường trung bình động theo cấp số nhân (EMA) với các khoảng thời gian khác nhau như là tín hiệu giao dịch, trong khi thiết lập điểm dừng lỗ cố định và lấy mức lợi nhuận. Khi EMA ngắn hạn vượt qua EMA dài hạn, nó mở một vị trí dài; khi EMA ngắn hạn vượt qua dưới EMA dài hạn, nó mở một vị trí ngắn. Chiến lược đặt điểm dừng lỗ cố định và lấy mức lợi nhuận để kiểm soát rủi ro và khóa lợi nhuận.
Chiến lược stop loss và take profit là một chiến lược giao dịch đơn giản và dễ sử dụng tạo ra các tín hiệu giao dịch thông qua EMA crossover trong khi thiết lập điểm dừng lỗ cố định và lấy mức lợi nhuận để kiểm soát rủi ro. Ưu điểm của chiến lược nằm trong logic rõ ràng, dễ thực hiện và khả năng nắm bắt xu hướng thị trường hiệu quả. Tuy nhiên, nó cũng phải đối mặt với các rủi ro như tín hiệu sai, trì hoãn xu hướng, thị trường giới hạn phạm vi và mức dừng lỗ cố định. Các hướng tối ưu hóa bao gồm giới thiệu nhiều chỉ số hơn, tối ưu hóa các tham số, quản lý vị trí, và thêm các bộ lọc. Các nhà giao dịch có thể tối ưu hóa và điều chỉnh chiến lược theo sở thích rủi ro và đặc điểm thị trường của họ để cải thiện độ bền và lợi nhuận của chiến lược.
/*backtest start: 2024-05-01 00:00:00 end: 2024-05-31 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("EMA5 Cross EAM200 && SL/TP 50 and 200 Point Target", overlay=true) // Define input parameters for EMA lengths ema_5 = input.int(5, title="Fast EMA Length") ema_200 = input.int(200, title="Slow EMA Length") // Define input parameters for stop loss and profit target in points stopLossPoints = input.float(50, title="Stop Loss (Points)") profitTargetPoints = input.float(200, title="Profit Target (Points)") // Calculate EMAs price = close emafast = ta.ema(price, ema_5) emaslow = ta.ema(price, ema_200) // Plot EMAs on chart plot(emafast, title="5-period EMA", color=color.black) plot(emaslow, title="200-period EMA", color=color.blue) // Extra lines if needed ema_13 = input.int(13, title="13 EMA") ema_13_line = ta.ema(price, ema_13) plot(ema_13_line, title="13-period EMA", color=color.rgb(156, 39, 176, 90)) ema_20 = input.int(20, title="20 EMA") ema_20_line = ta.ema(price, ema_20) plot(ema_20_line, title="20-period EMA", color=color.red) // Define entry conditions longCondition = ta.crossover(emafast, emaslow) shortCondition = ta.crossunder(emafast, emaslow) // Counter to keep track of the number of bars since the entry var int barCount = na // Reset counter and enter long trade if (longCondition) strategy.entry("Long", strategy.long, comment="Long") barCount := 0 // Reset counter and enter short trade if (shortCondition) strategy.entry("Short", strategy.short, comment="Short") barCount := 0 // Increment counter if in trade if (strategy.opentrades > 0) barCount += 1 // Calculate entry price entryPrice = strategy.position_avg_price // Exit long trade if stop loss, profit target hit, or 200 points have been reached if (strategy.position_size > 0) strategy.exit("Take Profit/Stop Loss", "Long", stop=entryPrice - stopLossPoints, limit=entryPrice + profitTargetPoints) // Exit short trade if stop loss, profit target hit, or 200 points have been reached if (strategy.position_size < 0) strategy.exit("Take Profit/Stop Loss", "Short", stop=entryPrice + stopLossPoints, limit=entryPrice - profitTargetPoints)