Esta estrategia utiliza la longitud del cuerpo de la vela para determinar la dirección larga y corta. Calcula la longitud promedio del cuerpo de las 30 velas recientes. Cuando la longitud del cuerpo de la vela alcista es mayor que el promedio, va largo. Cuando la longitud del cuerpo de la vela bajista es mayor que el promedio, va corto.
Esta estrategia primero calcula la longitud del cuerpo del candelabro y la longitud media del cuerpo de los últimos 30 candelabros.
Cuando el candelero de hoy es bajista (barra==-1) y la longitud del cuerpo es mayor que la longitud media del cuerpo, se abre una posición larga (hacia arriba1).
Cuando el candelero de hoy es alcista (barra==1) y la longitud del cuerpo es mayor que la longitud media del cuerpo, abre una posición corta (dn1).
Después de abrir largo, si el candelero de hoy es alcista (barra==1) y la posición actual es rentable, se cierra la posición larga.
Después de abrir corto, si el candelero de hoy es bajista (barra==-1) y la posición actual es rentable, se cierra la posición corta.
La estrategia utiliza la longitud del cuerpo del candelabro para determinar la tendencia del mercado. Cuanto más largo sea el cuerpo, más fuerte será la tendencia.
Las ventajas de esta estrategia:
La lógica es sencilla y clara, fácil de entender e implementar.
Usando la longitud del cuerpo del candelabro para determinar la tendencia, evitar interferencias de ruido.
Adoptar un cálculo promedio dinámico, adaptarse a los cambios del mercado.
Establecer una condición de salida rentable para mejorar la rentabilidad.
Parámetros configurables, adaptables a los diferentes entornos del mercado.
Los riesgos de esta estrategia:
El cuerpo largo no necesariamente representa una fuerte tendencia, podría ser una fluctuación normal.
Una ventana de tiempo de longitud corporal promedio incorrecta puede perder oportunidades comerciales.
Los eventos del cisne negro pueden causar pérdidas.
Mantener posiciones durante demasiado tiempo puede amplificar las pérdidas.
Soluciones:
Combina con otros indicadores para determinar la tendencia, evita operaciones equivocadas.
Prueba diferentes valores de parámetros, optimiza el cálculo de la longitud corporal media.
Configurar el stop loss para controlar la pérdida única.
Optimice la lógica de entrada y salida para evitar retener demasiado tiempo.
La estrategia se puede optimizar en los siguientes aspectos:
Combine MACD, RSI para determinar la tendencia, evitar señales erróneas de las fluctuaciones normales.
Prueba diferentes parámetros de ventana de tiempo de longitud corporal media para encontrar el conjunto óptimo de parámetros.
Agregue la lógica de control de tamaño de posición, reduzca gradualmente el tamaño de la posición cuando incurra en pérdidas.
Establezca el objetivo de stop loss o de ganancia para controlar el porcentaje de pérdida única.
Optimice las condiciones de entrada y salida para evitar operaciones ineficaces. Por ejemplo, espere 3 velas largas consecutivas antes de entrar.
Evite negociar en determinados períodos o alrededor de la publicación de datos importantes para controlar las pérdidas por volatilidad.
La estrategia tiene una lógica clara y fácil de entender de comparar el cuerpo de la vela con su longitud promedio para el tiempo de entrada. Gran espacio para la optimización desde múltiples dimensiones para adaptarlo mejor a diferentes entornos de mercado. En general, una estrategia de negociación de cantidades introductoria simple y confiable adecuada para que los operadores novatos la usen y aprendan. Combine más indicadores y optimice para mejorar la rentabilidad y la robustez.
/*backtest start: 2023-10-16 00:00:00 end: 2023-11-15 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //Noro //2018 //@version=3 strategy(title = "Noro's ColorBar Strategy v1.0", shorttitle = "ColorBar str v1.0", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100.0, pyramiding = 0) //Settings needlong = input(true, defval = true, title = "Long") needshort = input(true, defval = true, title = "Short") usebody = input(true, defval = true, title = "Use body") fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year") toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year") frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month") tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month") fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day") today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day") //Signals bar = close > open ? 1 : close < open ? - 1 : 0 body = abs(close - open) sbody = ema(body, 30) up1 = bar == -1 and (body > sbody or usebody == false) dn1 = bar == 1 and (body > sbody or usebody == false) plus = (close > strategy.position_avg_price and strategy.position_size > 0) or (close < strategy.position_avg_price and strategy.position_size < 0) exit = ((strategy.position_size > 0 and bar == 1) or (strategy.position_size < 0 and bar == -1)) and plus if up1 strategy.entry("Long", strategy.long, needlong == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, 01, 00, 00) and time < timestamp(toyear, tomonth, 31, 00, 00))) if dn1 strategy.entry("Short", strategy.short, needshort == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, 01, 00, 00) and time < timestamp(toyear, tomonth, 31, 00, 00))) if time > timestamp(toyear, tomonth, 31, 00, 00) or exit strategy.close_all()