Esta estrategia es un sistema de negociación automatizado basado en cruces de promedio móvil simple (SMA), combinado con mecanismos dinámicos de toma de ganancias y de stop-loss. Utiliza dos SMA de períodos diferentes para generar señales de compra y venta a través de sus cruces. Además, la estrategia establece niveles de toma de ganancias y de stop-loss basados en porcentajes para controlar el riesgo y bloquear las ganancias.
Esta estrategia de negociación de media móvil doble proporciona un marco simple pero efectivo adecuado para los principiantes que entran en el comercio automatizado. Combina elementos de seguimiento de tendencias y gestión de riesgos estableciendo dinámicamente los niveles de toma de ganancias y de stop-loss para proteger el capital. Sin embargo, para lograr mejores resultados en el comercio real, es necesaria una mayor optimización y refinamiento. Considere agregar más indicadores técnicos como filtros, optimizar el método para establecer los niveles de toma de ganancias y de stop-loss e introducir estrategias de gestión de posiciones más sofisticadas. Al mismo tiempo, es esencial realizar pruebas de retroceso y validación a través de diferentes entornos de mercado y marcos de tiempo. A través de la mejora continua y la adaptación a los cambios del mercado, esta estrategia tiene el potencial de convertirse en un sistema de negociación confiable.
/*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"}] */ // This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © Pubgentleman //@version=5 //@version=5 strategy("TSLA 1-Hour SMA Crossover Strategy with Buy/Sell Signals", overlay=true) // Parameters shortSmaLength = input.int(50, title="Short SMA Length") longSmaLength = input.int(100, title="Long SMA Length") takeProfitPerc = input.float(5.0, title="Take Profit Percentage", step=0.1) // 5.0% take profit stopLossPerc = input.float(3.0, title="Stop Loss Percentage", step=0.1) // 3.0% stop loss // Calculate SMAs shortSma = ta.sma(close, shortSmaLength) longSma = ta.sma(close, longSmaLength) // Plot SMAs plot(shortSma, color=color.blue, title="Short SMA") plot(longSma, color=color.red, title="Long SMA") // Entry Conditions longCondition = ta.crossover(shortSma, longSma) shortCondition = ta.crossunder(shortSma, longSma) // Trade Management var float entryPrice = na var float takeProfitLevel = na var float stopLossLevel = na if (longCondition) entryPrice := close takeProfitLevel := entryPrice * (1 + takeProfitPerc / 100) stopLossLevel := entryPrice * (1 - stopLossPerc / 100) strategy.entry("Long", strategy.long) label.new(x=bar_index, y=low, text="Buy", style=label.style_label_up, color=color.green, textcolor=color.white) if (shortCondition) entryPrice := close takeProfitLevel := entryPrice * (1 - takeProfitPerc / 100) stopLossLevel := entryPrice * (1 + stopLossPerc / 100) strategy.entry("Short", strategy.short) label.new(x=bar_index, y=high, text="Sell", style=label.style_label_down, color=color.red, textcolor=color.white) // Exit Conditions if (strategy.position_size > 0) if (close >= takeProfitLevel or close <= stopLossLevel) strategy.close("Long") if (strategy.position_size < 0) if (close <= takeProfitLevel or close >= stopLossLevel) strategy.close("Short") // Plot Take Profit and Stop Loss Levels plot(strategy.position_size > 0 ? takeProfitLevel : na, title="Take Profit Level", color=color.green, style=plot.style_stepline) plot(strategy.position_size > 0 ? stopLossLevel : na, title="Stop Loss Level", color=color.red, style=plot.style_stepline) plot(strategy.position_size < 0 ? takeProfitLevel : na, title="Take Profit Level (Short)", color=color.green, style=plot.style_stepline) plot(strategy.position_size < 0 ? stopLossLevel : na, title="Stop Loss Level (Short)", color=color.red, style=plot.style_stepline)