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.
Utilice la EMA de 9 días y la EMA de 21 días para determinar la dirección de la tendencia.
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.
La ruptura del precio 0.236 Retracement de Fibonacci indica una reversión y cierra la posición existente.
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.
El objetivo de ganancia larga es un cruce por encima de la EMA de 200 días.
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
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
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
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)