
La estrategia es un sistema de negociación basado en señales de cruce y puntos de oscilación de las medias móviles (EMA) de 22 períodos. Genera señales de negociación mediante el cruce de los precios con los EMA y utiliza los máximos y mínimos de oscilación adaptados para establecer posiciones de stop loss. Este método garantiza la función básica de seguimiento de tendencias y aumenta la flexibilidad de la gestión de riesgos.
La lógica central de la estrategia incluye los siguientes elementos clave:
Se trata de una estrategia de seguimiento de tendencias con una estructura completa y una lógica clara. Se genera una señal de negociación a través del cruce de EMA, se utiliza el riesgo de gestión de puntos de oscilación y se forma un sistema de negociación equilibrado. La principal ventaja de la estrategia reside en su capacidad para adaptarse dinámicamente al mercado, mientras que el principal riesgo proviene de las mutaciones en el estado del mercado.
/*backtest
start: 2024-02-21 00:00:00
end: 2025-02-18 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Binance","currency":"SOL_USDT"}]
*/
// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © GlenMabasa
//@version=6
strategy("22 EMA Crossover Strategy", overlay=true)
// Input for the EMA length
ema_length = input.int(22, title="EMA Length")
// Calculate the 22-day Exponential Moving Average
ema_22 = ta.ema(close, ema_length)
// Plot the 22 EMA
plot(ema_22, color=color.blue, title="22 EMA")
// Buy condition: Price crosses and closes above the 22 EMA
buy_condition = ta.crossover(close, ema_22) and close > ema_22
// Sell condition: Price crosses or closes below the 22 EMA
sell_condition = ta.crossunder(close, ema_22) or close < ema_22
// Swing high and swing low calculations
swing_high_length = input.int(14, title="Swing High Lookback")
swing_low_length = input.int(14, title="Swing Low Lookback")
swing_high = ta.highest(high, swing_high_length) // Previous swing high
swing_low = ta.lowest(low, swing_low_length) // Previous swing low
// Profit target and stop loss for buys
buy_profit_target = swing_high
buy_stop_loss = swing_low
// Profit target and stop loss for sells
sell_profit_target = swing_low
sell_stop_loss = swing_high
// Plot buy and sell signals
plotshape(series=buy_condition, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY")
plotshape(series=sell_condition, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL")
// Strategy logic for backtesting
if (buy_condition)
strategy.entry("Buy", strategy.long)
strategy.exit("Take Profit/Stop Loss", "Buy", limit=buy_profit_target, stop=buy_stop_loss)
if (sell_condition)
strategy.entry("Sell", strategy.short)
strategy.exit("Take Profit/Stop Loss", "Sell", limit=sell_profit_target, stop=sell_stop_loss)