Эта стратегия - это торговая система, которая сочетает в себе сигналы EMA с динамическим управлением рисками. Она использует быстрые и медленные экспоненциальные скользящие средние (EMA) для выявления рыночных тенденций и включает средний истинный диапазон (ATR) для оптимизации времени входа. Стратегия также включает три слоя защиты: стоп-лосс на основе процента, стоп-прибыль и стоп-прибыль.
Основная логика основана на следующих ключевых элементах:
Это хорошо продуманный тренд, следующий за стратегией с четкой логикой. Он улавливает тенденции через перекрестки EMA, управляет рисками с использованием ATR и включает в себя несколько механизмов остановки потери для формирования полной торговой системы. Основные преимущества стратегии заключаются в ее всеобъемлющем контроле рисков и высокой настраиваемости, но необходимо обратить внимание на ложные сигналы и затраты на транзакции в живой торговле. Благодаря предложенным направлениям оптимизации есть место для дальнейшего улучшения производительности стратегии.
/*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")