
Desarrollo de un kit de herramientas para el análisis de la acción del precio (Parte 1): Proyector de gráficos
Introducción
En este artículo, titulado «Proyector de gráficos», nos centramos en el desarrollo de una herramienta diseñada para simplificar el análisis de mercado, especialmente para los operadores que se dedican al análisis de la acción del precio. El proyector de gráficos superpone el gráfico del día anterior sobre el actual en una representación en modo fantasma.
En primer lugar, proporcionaremos una justificación para el proyector de gráficos, explicando la importancia de proyectar el gráfico del día anterior sobre el gráfico actual. A continuación, presentaremos una descripción general de la herramienta, seguida de una explicación sobre la implementación del código. Por último, concluiremos con un resumen de nuestras conclusiones.
Nuestros subtemas son los siguientes:
- Justificación del proyector de gráficos
- Descripción general de la herramienta
- Implementación del código
- Resultados
- Conclusión
Justificación del proyector de gráficos
Volver a dibujar el gráfico del día anterior en el gráfico del día actual ofrece varias ventajas para los operadores. Así es como esta técnica les ayuda:
Ventajas | Descripción |
---|---|
Contexto inmediato | La superposición de los datos del día anterior permite a los operadores visualizar rápidamente los movimientos de precios y los niveles clave de soporte/resistencia, lo que les ayuda a evaluar las condiciones actuales del mercado en relación con los puntos de referencia históricos. |
Identificación mejorada de niveles clave | La superposición resalta los niveles de precios críticos, como el soporte y la resistencia, con mayor claridad que las líneas manuales, lo que ayuda a los operadores a predecir los movimientos futuros de los precios al identificar la presión de compra y venta pasada. |
Reconocimiento de tendencias | Observar la interacción del precio actual con la acción del día anterior ayuda a identificar tendencias. Operar por encima del máximo anterior sugiere un impulso alcista; operar por debajo del mínimo puede indicar un sentimiento bajista. |
Análisis optimizado | Este método elimina la necesidad de desplazarse por el historial, lo que permite a los operadores centrarse en el análisis en tiempo real, ahorrar tiempo y tomar decisiones más rápidas en mercados que evolucionan rápidamente. |
Perspectivas sobre el comportamiento | Al revelar cómo la evolución actual de los precios se alinea con el comportamiento anterior, la superposición ayuda a los operadores a comprender la psicología del mercado, como la fuerza potencial de los movimientos alcistas cuando se desvían de los niveles de resistencia. |
Gestión de riesgos | Las imágenes claras del soporte y la resistencia pasados ayudan a los operadores a establecer órdenes de stop-loss en niveles informados, lo que contribuye a mitigar el riesgo. |
Planificación comercial simplificada | Visualizar los movimientos de precios del día anterior simplifica la planificación de entradas y salidas, lo que permite a los operadores estructurar sus operaciones en torno a niveles establecidos y mejorar la eficacia de sus estrategias. |
Centrarse en la acción del precio | Al mantener la integridad de los movimientos originales de los precios, los operadores pueden centrarse directamente en la dinámica de la acción del precio sin la distorsión que podrían introducir los indicadores típicos. Esta claridad puede conducir a entradas y salidas más precisas. |
En la siguiente ilustración, comparamos los gráficos de dos días consecutivos, 19 y 20 de septiembre de 2024. He dibujado líneas para indicar los niveles de soporte y resistencia. La comparación muestra claramente cómo el mercado respeta estos niveles anteriores. Sin embargo, existe una limitación: los niveles de soporte identificados pueden no ser siempre los más significativos. La incapacidad de aislar solo los principales niveles de soporte y resistencia puede introducir ruido en los datos, lo que complica la capacidad del operador para tomar decisiones informadas. Sin filtrar los niveles menos significativos, los traders pueden tener dificultades para identificar tendencias o reversiones genuinas, lo que aumenta el riesgo de encontrar señales falsas. Esto puede generar entradas y salidas equivocadas, lo que en última instancia afecta el rendimiento comercial general.
Aquí es donde entra en juego nuestra herramienta de reparto. Puede identificar y mostrar los máximos y mínimos más potentes, lo que mejora enormemente la precisión de nuestro análisis. Además, la herramienta nos permite superponer el gráfico del día anterior directamente sobre el gráfico actual, facilitando el análisis y la interpretación de los movimientos de precios.
Figura 1. Comparación de la acción del precio
Desarrollo de código
En el desarrollo de código utilizando MetaEditor, el proceso comienza con el lanzamiento de MetaEditor. Una vez abierta la aplicación, navega hasta la opción “Nuevo” para iniciar la creación de un nuevo archivo. Después de seleccionar “Nuevo”, aparece una ventana donde podrás elegir el tipo de archivo o proyecto que deseas crear. En este caso, seleccionarías “Script” como categoría para tu proyecto, ya que ese es el tipo de programa que pretendes desarrollar.
La figura 2 a continuación ilustra la ventana donde puede seleccionar la opción para crear un script. Esta ventana proporciona las opciones necesarias para definir el tipo de proyecto en el que está a punto de trabajar. Al elegir la opción "Script", estás especificando que deseas crear un programa automatizado personalizado en MetaTrader. Este paso es fundamental ya que establece las bases para su entorno de desarrollo y garantiza que MetaEditor genere la plantilla adecuada para escribir su script MQL5. El diseño claro y fácil de usar de esta ventana simplifica el proceso de comenzar con su proyecto de codificación.
Figura 2. Iniciar nuevo script
Aquí te guiaré a través de una guía sobre cómo podemos crear el efecto fantasma y proyectar el gráfico anterior al actual usando MQL5.
1. Propiedades:
Uno de los aspectos clave que quiero destacar es la importancia de las propiedades del script y los derechos de autor. Agregar un aviso de derechos de autor a su script MQL5 es crucial para proteger su trabajo. Establece su propiedad y deja en claro que usted es el creador original, lo que ayuda a prevenir usos no autorizados o reclamos sobre su código. En caso de cualquier disputa, este aviso puede servir como prueba de propiedad. Sin derechos de autor, otros podrían asumir que su guión está disponible libremente para su uso o distribución. Al incluir una declaración de derechos de autor, usted mantiene el control sobre cómo se comparte, vende o modifica su código.
//+------------------------------------------------------------------+ //| Chart Projector.mq5 | //| Christian Benjamin | //| https://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "Christian Benjamin" #property link "http://www.mql5.com" #property description "Script to overlay yesterday's price action with ghost effect. Projected onto current day's chart and beyond" #property indicator_chart_window #property strict #property script_show_inputs #property version "1.0"
Además, los derechos de autor permiten oportunidades de monetización. Puedes vender el guión, ofrecerlo bajo términos de licencia específicos o definir condiciones de uso. Esto mejora el profesionalismo de su trabajo al señalar su valor y, al mismo tiempo, garantiza que recibirá el reconocimiento adecuado si otros lo utilizan o desarrollan a partir de él.
2. Sección de entradas:
Creamos variables de entrada para permitir a los usuarios personalizar el efecto de vela fantasma. Estas entradas definen el color, el estilo de línea y el ancho del efecto fantasma. Los usuarios también pueden ajustar si desean mostrar los precios altos y bajos del día anterior, desplazar el patrón fantasma hacia adelante o hacia atrás y proyectarlo hacia el futuro.
input color GhostColor = clrGray; // Color for ghost effect (can be transparent) input int LineStyle = STYLE_DOT; // Line style for ghost candlesticks input int LineWidth = 2; // Line width for ghost candlesticks input bool ShowHighLow = true; // Show high/low lines of yesterday input int ShiftBars = 0; // Number of bars to shift ghost forward/backward input int ProjectForwardBars = 100; // Number of bars to project ghost pattern forward
Esta sección es importante porque brinda flexibilidad al usuario, permitiendo adaptar el patrón de velas fantasma según sus preferencias.
Figura 3. Entradas del script
El diagrama anterior ilustra cómo se presentan los parámetros de entrada en MetaTrader 5, lo que permite a los usuarios verlos, modificarlos y personalizarlos cómodamente directamente al abrir un gráfico. Estos parámetros permiten a los traders adaptar aspectos clave de la herramienta, como estilos de línea, colores y configuraciones de proyección de velas, garantizando que el gráfico se ajuste a sus preferencias y estrategias comerciales específicas. Esta flexibilidad ayuda a mejorar la experiencia del usuario, ofreciendo un mayor control sobre cómo se visualiza la acción del precio pasada y presente.
3. Función OnStart:
La función OnStart() sirve como punto de entrada del script. Cuando se ejecuta el script, esta función llama a la función principal DrawGhostCandles().
void OnStart() { DrawGhostCandles(); // Call the function to draw ghost candles }
Este enfoque mantiene la estructura limpia y garantiza que el script proceda inmediatamente a la función principal cuando se inicia. Al llamar a una función dedicada, garantizamos que la tarea de dibujar velas fantasmas se gestione por separado y de manera más eficiente.
4. Función DrawGhostCandles:
Esta función contiene la lógica para superponer el patrón de vela fantasma de ayer en el gráfico de hoy. Primero recuperamos el período de tiempo actual, luego calculamos el inicio y el final de ayer y de hoy. También determinamos el número de barras de ayer y hoy utilizando la función iBarShift().
void DrawGhostCandles() { ENUM_TIMEFRAMES timeFrame = Period(); // Get the current timeframe datetime yesterdayStart = iTime(_Symbol, PERIOD_D1, 1); // Start of yesterday datetime todayStart = iTime(_Symbol, PERIOD_D1, 0); // Start of today datetime todayEnd = todayStart + PeriodSeconds(PERIOD_D1); // Expected end of today (24 hours) int startBarYesterday = iBarShift(_Symbol, timeFrame, yesterdayStart); // Yesterday's first bar int endBarYesterday = iBarShift(_Symbol, timeFrame, todayStart) - 1; // Yesterday's last bar if (startBarYesterday == -1 || endBarYesterday == -1) { Print("No data for yesterday."); return; } int barsToday = Bars(_Symbol, timeFrame, todayStart, todayEnd); // Total number of bars today for (int i = 0; i < barsToday; i++) // Loop through yesterday's bars { int yesterdayIndex = startBarYesterday - i % (endBarYesterday - startBarYesterday + 1); datetime timeYesterday = iTime(_Symbol, timeFrame, yesterdayIndex); double openYesterday = iOpen(_Symbol, timeFrame, yesterdayIndex); double highYesterday = iHigh(_Symbol, timeFrame, yesterdayIndex); double lowYesterday = iLow(_Symbol, timeFrame, yesterdayIndex); double closeYesterday = iClose(_Symbol, timeFrame, yesterdayIndex); datetime projectedTime = todayStart + i * PeriodSeconds() + ShiftBars * PeriodSeconds(); if (projectedTime >= todayEnd) break; // Stop projection if today's end is reached DrawGhostBar(projectedTime, openYesterday, highYesterday, lowYesterday, closeYesterday); // Draw ghost bar } if (ShowHighLow) { double yesterdayHigh = iHigh(_Symbol, PERIOD_D1, 1); // Yesterday's high double yesterdayLow = iLow(_Symbol, PERIOD_D1, 1); // Yesterday's low DrawHorizontalLine("YesterdayHigh", yesterdayHigh); // Draw high DrawHorizontalLine("YesterdayLow", yesterdayLow); // Draw low } }
La función recorre cada barra de ayer, recupera sus precios de apertura, máximo, mínimo y cierre y los proyecta en el gráfico de hoy. El bucle garantiza que cada vela de ayer se refleje como un "fantasma" en el gráfico de hoy. Esto ayuda a visualizar cómo se compara la acción del precio del día anterior con los movimientos de precios de hoy.
5. Función DrawGhostBar:
Esta función maneja el dibujo de cada vela fantasma individual en el gráfico. Se crea una línea para representar el rango alto-bajo y se dibuja un rectángulo para representar el rango de apertura-cierre de cada vela.
void DrawGhostBar(datetime time, double open, double high, double low, double close) { string lineName = "GhostLine" + IntegerToString(time); // Line name for high-low ObjectCreate(0, lineName, OBJ_TREND, 0, time, low, time, high); // Create the line ObjectSetInteger(0, lineName, OBJPROP_COLOR, GhostColor); // Set color ObjectSetInteger(0, lineName, OBJPROP_STYLE, LineStyle); // Set style ObjectSetInteger(0, lineName, OBJPROP_WIDTH, LineWidth); // Set width string ocName = "GhostOC" + IntegerToString(time); // Rectangle name for open-close ObjectCreate(0, ocName, OBJ_RECTANGLE, 0, time, open, time + PeriodSeconds(), close); // Create rectangle ObjectSetInteger(0, ocName, OBJPROP_COLOR, GhostColor); // Set color ObjectSetInteger(0, ocName, OBJPROP_STYLE, LineStyle); // Set style ObjectSetInteger(0, ocName, OBJPROP_WIDTH, LineWidth); // Set width }
Al separar esta funcionalidad en su propia función, simplificamos el proceso de dibujar cada vela fantasma. Este enfoque modular facilita la gestión, actualización y personalización de la forma en que aparecen estas velas.
6. Función DrawHorizontalLine:
Esta función dibuja líneas horizontales en el gráfico, marcando los precios máximos y mínimos del día anterior. Estas líneas actúan como indicadores visuales de niveles de precios clave a los que los traders suelen prestar atención.
void DrawHorizontalLine(string name, double price) { if (!ObjectCreate(0, name, OBJ_HLINE, 0, TimeCurrent(), price)) { Print("Failed to create horizontal line."); // Error handling } ObjectSetInteger(0, name, OBJPROP_COLOR, GhostColor); // Set color ObjectSetInteger(0, name, OBJPROP_STYLE, LineStyle); // Set style ObjectSetInteger(0, name, OBJPROP_WIDTH, LineWidth); // Set width }
La inclusión de esta funcionalidad mejora el script al agregar puntos de referencia importantes, lo que ayuda a los operadores a detectar fácilmente los niveles de soporte y resistencia del día anterior. La función garantiza que estas líneas se dibujen con las mismas opciones de personalización que las velas fantasmas.
Resultados
El resultado del código "Chart Projector" es una representación visual de la acción del precio del día anterior superpuesta al gráfico del día actual, lo que proporciona a los operadores información valiosa sobre el comportamiento del mercado. Esto se logra mediante la generación de velas fantasmas del día anterior, que se proyectan en el gráfico actual, lo que permite a los operadores observar cómo se ha movido el mercado en relación con el rendimiento del día anterior. Al visualizar los máximos, mínimos, aperturas y cierres del día anterior, los traders pueden comprender mejor el sentimiento del mercado y las tendencias de precios.
Además, el script dibuja opcionalmente líneas horizontales para los máximos y mínimos del día anterior, que sirven como posibles niveles de soporte y resistencia para el día actual. Los comerciantes pueden utilizar estos niveles para tomar decisiones informadas sobre los puntos de entrada y salida en función del comportamiento del mercado en relación con estos puntos de referencia históricos. El script también ofrece varias entradas personalizables, como color, estilo de línea, ancho de línea y la capacidad de desplazar la superposición fantasma hacia adelante o hacia atrás, lo que permite a los operadores adaptar la visualización a sus estrategias y preferencias específicas. Esto mejora la experiencia del usuario y permite utilizar herramientas de análisis personalizadas.
Con la superposición de velas fantasma, los operadores pueden evaluar rápidamente si la acción del precio actual refleja, diverge o reacciona a movimientos de precios anteriores, lo que informa sus estrategias comerciales. El efecto fantasma simplifica el análisis del mercado eliminando el desorden de indicadores excesivos, concentrándose únicamente en la acción del día anterior y brindando información más clara sobre la dinámica de los precios. Esta claridad ayuda a identificar posibles tendencias y reversiones, lo que conduce a decisiones comerciales más estratégicas. Vea la figura 4 a continuación.
Figura 4. Resultados de Chart Projector
Al observar la figura 4 de arriba, hay una presentación clara de los resultados según la prueba de código en MetaTrade 5. El sistema parece ser maravilloso ya que el gráfico diario actual parece estar obedeciendo los niveles de soporte y resistencia. Es evidente que el precio rompió por debajo del mínimo del día anterior, como lo indican las líneas horizontales, antes de retroceder y continuar su tendencia bajista.
Figura 5. Resultados de Chart Projector
La figura 5 ilustra los resultados de nuestro proyector de gráficos, destacando cómo la dinámica actual del mercado respeta los máximos y mínimos del día anterior.
Conclusión
En conclusión, el desarrollo y la implementación del Proyector de gráficos para el análisis de la acción del precio representa un avance significativo para los operadores que buscan mejorar sus habilidades de interpretación del mercado. Al superponer la acción del precio del día anterior en el gráfico actual, proporcionamos una poderosa herramienta visual que facilita la comprensión de la dinámica del mercado sin el desorden de los indicadores tradicionales. Este enfoque permite a los operadores identificar rápidamente niveles clave de soporte y resistencia, lo que ayuda significativamente en los procesos de toma de decisiones. Los conocimientos obtenidos con este método reflejan no sólo el comportamiento de los movimientos de precios, sino también el sentimiento colectivo de los participantes del mercado, ofreciendo una perspectiva más profunda sobre las posibles tendencias futuras.
Animo a todos a utilizar esto únicamente con fines educativos. ¡Por favor, no experimentes con dinero real!
Propongo llamar a nuestro conjunto de herramientas «Lynnchris Tools Chest» y registraré cada herramienta que desarrollemos, además de actualizar el registro cada vez que publiquemos una nueva versión. Consulte la tabla a continuación.Fecha | Nombre de la herramienta | Descripción | Versión | Actualizaciones | Notas |
---|---|---|---|---|---|
01/10/24 | Chart Projector | Script para superponer la acción del precio del día anterior con efecto fantasma. | 1.0 | Lanzamiento inicial | La primera herramienta en "Lynnchris Tools Chest" |
Traducción del inglés realizada por MetaQuotes Ltd.
Artículo original: https://www.mql5.com/en/articles/16014
Advertencia: todos los derechos de estos materiales pertenecen a MetaQuotes Ltd. Queda totalmente prohibido el copiado total o parcial.
Este artículo ha sido escrito por un usuario del sitio web y refleja su punto de vista personal. MetaQuotes Ltd. no se responsabiliza de la exactitud de la información ofrecida, ni de las posibles consecuencias del uso de las soluciones, estrategias o recomendaciones descritas.





- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Usted acepta la política del sitio web y las condiciones de uso
Enhorabuena por uno de los acontecimientos más importantes de tu vida. Muy bien hecho indicador, sin embargo, podemos lograr esto mediante la creación de un SMA del período 1, desplazado por el número de períodos del marco de tiempo en un día. para 1H tF, desplazar por 24, para m15, desplazar por 1440/15=96. Espero con interés su incursión en los estudios de gráficos.
Enhorabuena por uno de los acontecimientos más importantes de tu vida. Muy bien hecho indicador, sin embargo, podemos lograr esto mediante la creación de un SMA del período 1, desplazado por el número de períodos del marco de tiempo en un día. para 1H tF, desplazar por 24, para m15, desplazar por 1440/15=96. Espero con interés su incursión en los estudios chaert.
Muchas gracias