La idea principal de esta estrategia es trazar el precio de entrada y el precio de equilibrio después de abrir una posición, para mostrar visualmente el nivel de precio donde una ruptura por encima del precio de entrada resultaría en ganancias.
El código entra en largo cuando ocurre el cruce de SMA y entra en corto en el cruce de SMA. Luego calcula el precio de entrada y el precio de equilibrio después de las tarifas. El precio de equilibrio se calcula como: para largo, precio de equilibrio = precio de entrada * (1 + tarifas); para corto, precio de equilibrio = precio de entrada * (1 - tarifas). Finalmente, traza la línea de precio de entrada y la línea de precio de equilibrio, llenando el área entre ellos.
De esta manera, una vez que el precio rompe la línea de precio de entrada, significa que el comercio es ahora rentable.
Los componentes clave del código son:
Con simples comprobaciones de condiciones para la entrada, cálculo del precio de equilibrio y trazado de líneas auxiliares, se implementa la estrategia de precios de equilibrio.
Las ventajas de esta estrategia incluyen:
La visualización intuitiva de la ganancia/pérdida, puede juzgar rápidamente si el precio ha alcanzado el objetivo de ganancia.
Puede utilizar la línea de punto de equilibrio para establecer los niveles de toma de ganancias / parada de pérdidas para evitar el aumento de las pérdidas.
Código simple y fácil de entender, fácil de implementar y ajustar.
Se puede incorporar a las propias estrategias de negociación, utilizando la línea de equilibrio para gestionar las posiciones.
Fácil de modificar los parámetros de las tarifas para diferentes intercambios y productos.
Puede optimizar la entrada ajustando los períodos de SMA.
Los riesgos de esta estrategia incluyen:
El SMA tiene una naturaleza retrasada, puede perderse los cambios de precios.
La línea de equilibrio no puede evitar completamente las pérdidas.
No hay un mecanismo de salida, los operadores necesitan monitorear el P/L ellos mismos.
La imposición incorrecta de las tarifas puede provocar un cálculo erróneo del punto de equilibrio.
El deslizamiento no se considera.
Sin stop loss, puede llevar a grandes pérdidas.
Las soluciones son:
Considere indicadores más sensibles como el MACD.
Añadir un indicador de tendencia para evitar operaciones contra tendencia.
Agregue la lógica de tomar ganancias y detener pérdidas para salidas automáticas.
Establezca tarifas precisas basadas en el intercambio real.
Añadir deslizamiento fijo para entradas y salidas óptimas.
Añadir el stop de pérdida para limitar la pérdida máxima.
Algunas maneras de optimizar la estrategia:
Reemplazar SMA con indicadores más avanzados como MACD o KDJ.
Añadir un filtro de tendencia para evitar operaciones contra tendencia.
Optimizar los períodos SMA para una mejor precisión de entrada.
Agregue la lógica de tomar ganancias y detener pérdidas para salidas automáticas.
Configurar deslizamiento para backtest y comercio en vivo.
Optimice la configuración de las tarifas para que coincidan con la realidad.
Añadir el stop de pérdida para limitar la pérdida máxima.
Ejecutar la estrategia en múltiples plazos para la diversificación.
Incorpore cambios de volumen para mejorar la entrada.
Utilice el aprendizaje automático para optimizar los parámetros.
Esta estrategia muestra intuitivamente el nivel de precio de equilibrio en el que una ruptura puede resultar en ganancias. Es una estrategia auxiliar simple y práctica con ventajas como código simple e implementación fácil. Pero los riesgos también deben abordarse. Podemos optimizarlo desde muchos aspectos para hacerlo más robusto y rentable. En general, proporciona un gran ejemplo de referencia que vale la pena estudiar y aplicar.
/*backtest start: 2022-11-15 00:00:00 end: 2023-11-15 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // © NikitaDoronin //@version=4 strategy("Plot Break-even Price", overlay=true) /// Break-even calculation ep = 0.0 ep := na(ep[1]) ? na : ep[1] p = 0.0 p := na(p[1]) ? na : p[1] /// Fees Input fee_inp = input(0.25, title='Price Change in %', step=0.1)/100 /// Your Strategy calculation longCondition = crossover(sma(close, 14), sma(close, 28)) shortCondition = crossunder(sma(close, 14), sma(close, 28)) /// Stategy Entry if (longCondition) ep := close p := close * (1 + fee_inp) strategy.entry("My Long Entry Id", strategy.long) if (shortCondition) ep := close p := close * (1 - fee_inp) strategy.entry("My Short Entry Id", strategy.short) /// Plot Break-even Price p1 = plot(ep, color = color.red, transp = 85) p2 = plot(p, color = color.green) fill(p1, p2, color = color.red, transp = 85)