Estrategia de tendencia a la baja a corto plazo basada en la EMA y el retroceso adaptativo de Fibonacci

El autor:¿ Qué pasa?, Fecha: 2021-09-21 21:36:16
Las etiquetas:

Resumen general

Esta estrategia utiliza la EMA para determinar la dirección de la tendencia y el retroceso adaptativo de Fibonacci para identificar automáticamente los puntos de reversión, con el objetivo de vender alto y comprar bajo al atrapar tendencias.

Estrategia lógica

  1. Utilice la EMA de 9 días y la EMA de 21 días para determinar la dirección de la tendencia.

  2. Implementar el retroceso adaptativo de Fibonacci con 100 períodos para determinar automáticamente los niveles clave de retroceso basados en las fluctuaciones recientes de precios.

  3. La ruptura del precio 0.236 Retracement de Fibonacci indica una reversión y cierra la posición existente.

  4. Cuando la EMA de 9 días cruza por debajo de la EMA de 21 días, y el precio es inferior al máximo adaptativo de Fibonacci, vaya corto.

  5. El objetivo de ganancia larga es un cruce por encima de la EMA de 200 días.

Ventajas

  • La EMA da señales de tendencia claras y fáciles de aplicar

  • Fibonacci adaptativo evita el ajuste manual de parámetros

  • Las operaciones frecuentes atrapan movimientos a corto plazo para las estrategias de alta frecuencia

  • Nivel de retracement clave para el stop loss oportuno

  • Parámetros configurables para la optimización en todos los ciclos

Los riesgos

  • El retraso de la EMA requiere la confirmación de otros indicadores

  • Riesgos de Fibonacci adaptativos de sobreajuste con niveles inestables

  • El comercio de alta frecuencia aumenta los costes de las comisiones y el deslizamiento

  • El filtrado ineficaz de las tendencias de rango conduce a señales falsas

  • Necesidades de mejora de la gestión de la utilización y el control del riesgo-recompensa

Mejoramiento

  • Añadir indicadores de volumen para evitar señales falsas de la divergencia precio-volumen

  • Optimizar los períodos de EMA para adaptarse mejor a las condiciones actuales del mercado

  • Implementar un stop loss dinámico para un mejor control del riesgo

  • Incorporar el índice de fuerza de tendencia para evitar los golpes

  • Considerar el impacto de los costes de negociación y establecer un objetivo de ganancia mínima

Conclusión

Esta estrategia identifica la dirección de la tendencia con la EMA y determina los niveles de reversión dinámicamente utilizando el retroceso adaptativo de Fibonacci, que se adapta automáticamente a diferentes condiciones de mercado. Pero se basa más en señales de indicadores sin segmentación de tendencia y lógica de onda de Elliott, dejando espacio para la optimización. En general, como una estrategia de negociación de corto plazo de alta frecuencia, puede capturar cambios rápidos de precios, pero implica riesgos de pérdida de parada frecuente y exceso de negociación que los comerciantes necesitan manejar.


/*backtest
start: 2023-08-21 00:00:00
end: 2023-09-20 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © CheatCode1

//@version=5
strategy("CC-Trend strategy 2", overlay=true, initial_capital = 10000, commission_type = strategy.commission.percent, commission_value = 0.01, default_qty_type =  strategy.percent_of_equity, default_qty_value = 100 )
ema9 = ta.ema(close, 9)
ema21 = ta.ema(close, 21)
ema55 = ta.ema(close, 55)
ema200 = ta.ema(close, 200)


plot(ema200, '22', color.blue, 2)

FibL = input.int(100, 'Fibonacci Length', 1, 500, group = 'Automatic Fibonacci Retracement')
len1 = input.int(1, 'Show Last', 0, 1000, group = 'Automatic Fibonacci Retracement')
len2 = input.int(5, 'Offset Length', 0, 1000, group = 'Automatic Fibonacci Retracement')

highF = ta.highest(ema55 >= ema9 ? ema55:ema9, FibL)
lowF = ta.lowest(ema55 >= ema9 ? ema9:ema55, FibL)
AvgFib = highF - lowF

//Fibonacci Executions
LL2 = highF + .618 * AvgFib
LL1 = highF + .272 * AvgFib
L1 = highF
L236 = highF - 0.236 * AvgFib
L382 = highF - 0.382 * AvgFib
Mid =  highF - 0.50 * AvgFib
S382 = lowF + 0.382 * AvgFib
S236 = lowF + 0.236 * AvgFib
S1 = lowF
SS1 = lowF - .272 * AvgFib
SS2 = lowF - .618 * AvgFib
//Fibonacci Plot's


high2FP = plot(LL2, 'Highe2', color.red,offset = len2, show_last = len1, trackprice = true)
high1FP = plot(LL1, 'Highe1', color.red,offset = len2, show_last = len1, trackprice = true)
highFP = plot(highF, 'High', color.red,offset = len2, show_last = len1, trackprice = true)
L236P = plot(L236, "0.764", #ED381C, offset = len2, show_last = len1, trackprice = true )
L382P = plot(L382, "0.618", color.white,offset = len2, show_last = len1, trackprice = true )
MidP = plot(Mid, "0.5", color.orange,offset = len2, show_last = len1, trackprice = true )
S382P = plot(S382, "0.382", color.yellow ,offset = len2, show_last = len1, trackprice = true)
S236P = plot(S236, "0.236", color.lime ,offset = len2, show_last = len1, trackprice = true)
lowFP = plot(lowF, 'Low', color.green,offset = len2, show_last = len1, trackprice = true)
low1FP = plot(SS1, 'Lowe1', color.green,offset = len2, show_last = len1, trackprice = true)
low2FP = plot(SS2, 'Lowe2', color.green,offset = len2, show_last = len1, trackprice = true)

plot(ema9, '22', color.yellow, 2)

plot(ema55, '55', color.aqua, 2)

plot(ema200, '200', color.maroon, 2)



shortCondition = close[1] < highF and ema21 < ema55
if (shortCondition)
    strategy.entry("Short", strategy.short)

shorttp = ta.crossover(close, ema200) and strategy.openprofit >= 0
if (shorttp)
    strategy.close('Short', 'Short TP', qty_percent = 100)

shortclose2 = close[1] > L236 and not (shortCondition) 
if(shortclose2)
    strategy.close('Short', 'Short RM', qty_percent = 100)

Más.