Alcanza el objetivo de ganancia al final del día
Salida corta:Cierre <= 200 EMA alcanza su objetivo de ganancia al final del día
El stop loss es del 20% de la prima de la opción.
II. Ventajas
Las principales ventajas de esta estrategia son las siguientes:
III. Riesgos
Los principales riesgos de esta estrategia son:
Los siguientes aspectos pueden optimizarse para reducir los riesgos anteriores:
IV. Direcciones de optimización
Las principales direcciones de optimización para esta estrategia son:
V. Conclusión
Este artículo analizó en detalle la lógica, fortalezas, debilidades y direcciones de optimización de la estrategia de seguimiento de tendencia basada en la distancia entre el precio y el promedio móvil de 200 días. Esta estrategia juzga la tendencia a mediano y largo plazo mediante el seguimiento de la desviación del precio del promedio móvil a largo plazo. Las posiciones se establecen cuando la desviación excede un umbral y se cierran al alcanzar los objetivos de stop loss o take profit. Esta estrategia puede rastrear bien la tendencia a mediano y largo plazo, pero aún tiene algún espacio de optimización de parámetros.
/*backtest start: 2024-02-22 00:00:00 end: 2024-02-24 06:00:00 period: 3h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("Intraday Price Away from 200 EMA Strategy", overlay=true) // Define inputs emaPeriod = input(200, title="EMA Period") thresholdPercent = input(0.75, title="Threshold Percent", minval=0) // Define the threshold percentage // Calculate 200 EMA ema = ema(close, emaPeriod) // Calculate distance from 200 EMA as a percentage distance_percent = ((close - ema) / ema) * 100 // Track average entry price var float avgEntryPrice = na // Buy conditions buy_condition = close < ema and abs(distance_percent) >= thresholdPercent and close[1] < close[2] // Exit conditions for buy exit_buy_condition = close >= ema or time_close(timeframe.period) or (avgEntryPrice * 1.5) <= close // Sell conditions sell_condition = close > ema and abs(distance_percent) >= thresholdPercent and close[1] > close[2] // Exit conditions for sell exit_sell_condition = close <= ema or time_close(timeframe.period) or (avgEntryPrice * 1.5) >= close // Execute buy and sell orders only if there are no open trades if strategy.opentrades == 0 strategy.entry("Buy", strategy.long, when=buy_condition) strategy.entry("Sell", strategy.short, when=sell_condition) // Update average entry price for buy condition if buy_condition avgEntryPrice := close // Update average entry price for sell condition if sell_condition avgEntryPrice := close // Close buy position if exit condition is met strategy.close("Buy", when=exit_buy_condition) // Close sell position if exit condition is met strategy.close("Sell", when=exit_sell_condition) // Plot 200 EMA plot(ema, color=color.blue, linewidth=2) // Plot buy and sell signals plotshape(buy_condition, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small) plotshape(sell_condition, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small)