La estrategia se llama
La estrategia utiliza dos líneas SMA, SMA1 y SMA2. La longitud de SMA1 es 1 y la longitud de SMA2 es 3. Al calcular estas dos líneas SMA, cuando SMA1 cruza por encima de SMA2, se genera una señal de compra. Cuando SMA1 cruza por debajo de SMA2, se genera una señal de venta. Esto tiene como objetivo capturar la tendencia del precio.
Específicamente, la estrategia juzga la relación de cruce entre las líneas SMA a través de las funciones ta.crossover y ta.crossunder, generando las variables booleanas longCondition y shortCondition. Cuando longCondition es verdad, se genera una señal de compra. Cuando shortCondition es verdad, se genera una señal de venta. La estrategia entrará en el mercado en el punto de señal y actualizará las variables profitAccumulated y lastTradeProfit para rastrear las ganancias acumuladas.
Para el control de riesgos, la estrategia también establece un mecanismo de stop loss basado en puntos fijos.
La mayor ventaja de esta estrategia es que utiliza la capacidad de seguimiento de tendencias de las líneas SMA para capturar eficazmente los cambios en las tendencias de precios.
El principal riesgo de esta estrategia es que la estrategia de promedio móvil tiende a generar señales falsas. Cuando el precio oscila, la línea SMA puede cruzarse con frecuencia, lo que resulta en señales comerciales innecesarias. En este punto, pueden ocurrir grandes pérdidas sin un stop loss efectivo.
La estrategia se puede optimizar en los siguientes aspectos:
Ajustar los parámetros SMA para encontrar la mejor combinación de longitudes de media móvil a través de backtesting.
Aumentar las condiciones de filtrado y establecer condiciones de ruptura de precios cerca del punto de cruce de la media móvil para evitar señales falsas.
Se pueden probar diferentes tipos de métodos de stop loss, como stop loss móvil, stop loss de orden pendiente, etc.
Añadir el control de tamaño de posición para optimizar la eficiencia de utilización del capital.
En general, esta es una estrategia típica de seguimiento de tendencias. Utiliza la relación de avance entre las líneas SMA para determinar la dirección de la tendencia del precio y entrar en el punto de inflexión de la tendencia. Al mismo tiempo, la estrategia tiene una función de stop loss fija para controlar los riesgos. La estrategia es simple, fácil de entender, pero aún necesita pruebas y optimización en profundidad antes de obtener ganancias estables en el comercio real.
/*backtest start: 2024-01-01 00:00:00 end: 2024-01-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/ // © cesarpieres72 //@version=5 strategy("Estrategia SMA y Ganancias Acumuladas con Stop Loss", shorttitle="SMA_Ganancias", overlay=true) // Definir las variables de las medias móviles sma1_length = input(1, title="SMA 1 Longitud") sma2_length = input(3, title="SMA 2 Longitud") // Calcular las medias móviles sma1 = ta.sma(close, sma1_length) sma2 = ta.sma(close, sma2_length) // Condiciones para las señales de compra y venta longCondition = ta.crossover(sma1, sma2) shortCondition = ta.crossunder(sma1, sma2) // Acumular las ganancias var float profitAccumulated = 0.0 var float lastTradeProfit = na if (longCondition) strategy.entry("Buy", strategy.long) lastTradeProfit := strategy.netprofit - (profitAccumulated + lastTradeProfit) profitAccumulated := strategy.netprofit if (shortCondition) strategy.entry("Sell", strategy.short) lastTradeProfit := strategy.netprofit - (profitAccumulated + lastTradeProfit) profitAccumulated := strategy.netprofit // Mostrar las señales en el gráfico plot(sma1, color=color.blue, title="SMA 1") plot(sma2, color=color.red, title="SMA 2") // Añadir stop loss stopLossPips = input(5000, title="Stop Loss (en pips)") stopLossPrice = strategy.position_avg_price * (1 - stopLossPips * syminfo.mintick) strategy.exit("SL", "Buy", stop=stopLossPrice)