Chiến lược này là một hệ thống giao dịch theo xu hướng kết hợp các tín hiệu chéo EMA với quản lý rủi ro năng động. Nó sử dụng Mức trung bình chuyển động (EMA) nhanh và chậm để xác định xu hướng thị trường và kết hợp chỉ số Mức trung bình True Range (ATR) để tối ưu hóa thời gian nhập cảnh. Chiến lược cũng tích hợp ba lớp bảo vệ: dừng lỗ dựa trên tỷ lệ phần trăm, lấy lợi nhuận và dừng lại.
Logic cốt lõi dựa trên các yếu tố chính sau:
Đây là một xu hướng được thiết kế tốt theo chiến lược với logic rõ ràng. Nó nắm bắt xu hướng thông qua các giao dịch chéo EMA, quản lý rủi ro bằng cách sử dụng ATR và kết hợp nhiều cơ chế dừng lỗ để tạo thành một hệ thống giao dịch hoàn chỉnh.
/*backtest start: 2024-12-29 00:00:00 end: 2025-01-05 00:00:00 period: 2m basePeriod: 2m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © jesusperezguitarra89 //@version=6 strategy("High Profit Buy/Sell Signals", overlay=true) // Parámetros ajustables fastLength = input.int(5, title="Fast EMA Length") slowLength = input.int(20, title="Slow EMA Length") atrLength = input.int(10, title="ATR Length") atrMultiplier = input.float(2.5, title="ATR Multiplier") stopLossPercent = input.float(1.0, title="Stop Loss %") takeProfitPercent = input.float(5.0, title="Take Profit %") trailingStop = input.float(2.0, title="Trailing Stop %") // Cálculo de EMAs fastEMA = ta.ema(close, fastLength) slowEMA = ta.ema(close, slowLength) // Cálculo del ATR atr = ta.atr(atrLength) // Señales de compra y venta longCondition = ta.crossover(fastEMA, slowEMA) and close > slowEMA + atrMultiplier * atr shortCondition = ta.crossunder(fastEMA, slowEMA) and close < slowEMA - atrMultiplier * atr // Dibujar señales en el gráfico 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") // Estrategia de backtesting para marcos de tiempo en minutos if longCondition strategy.entry("Buy", strategy.long) strategy.exit("Take Profit", from_entry="Buy", limit=close * (1 + takeProfitPercent / 100), stop=close * (1 - stopLossPercent / 100), trail_points=atr * trailingStop) if shortCondition strategy.entry("Sell", strategy.short) strategy.exit("Take Profit", from_entry="Sell", limit=close * (1 - takeProfitPercent / 100), stop=close * (1 + stopLossPercent / 100), trail_points=atr * trailingStop) // Mostrar EMAs plot(fastEMA, color=color.blue, title="Fast EMA") plot(slowEMA, color=color.orange, title="Slow EMA")