Pon "Me gusta" y sigue las noticias
Deje un enlace a él, ¡qué los demás también lo valoren!
Evalúe su trabajo en el terminal MetaTrader 5
- Visualizaciones:
- 25
- Ranking:
- Publicado:
-
¿Necesita un robot o indicador basado en este código? Solicítelo en la bolsa freelance Pasar a la bolsa
¿Alguna vez has necesitado copiar y pegar algunos objetos gráficos entre gráficos abiertos? Creo que sí. Sorprendentemente, MetaTrader no proporciona la función "Copiar y Pegar" para los objetos. Lo único que le permite lograr un efecto más o menos similar son las plantillas (tpl-files). Pero la plantilla almacena el estado gráfico completo, incluyendo indicadores, ajustes y un montón de cosas auxiliares, que pueden ser irrelevantes e innecesarios para el procedimiento de replicación requerido.
Es por eso que he desarrollado este indicador ChartObjectsCopyPaste.mq5. Copia objetos seleccionados al portapapeles, desde donde pueden ser pegados en otro gráfico(s). Sin ataduras.
El indicador está basado en otro indicador publicado en el libro de algotrading - ObjectGroupEdit.mq5.
Por favor, siga el enlace para obtener más información acerca de todas las clases subyacentes(ObjectMonitor, MapArray y otros) que trabajan detrás de las escenas.
Este indicador no tiene buffers. Se debe adjuntar al menos a 2 gráficos: gráfico de origen desde el que desea copiar los objetos, y el gráfico de destino donde va a pegarlos.
Mientras se ejecuta en un gráfico, el indicador realiza un seguimiento de los objetos gráficos existentes y toma nota de cuáles están seleccionados.
Como de costumbre, los comandos "Copiar y Pegar" funcionan en pareja:
- Pulse la tecla de acceso rápido Ctrl+Q para copiar todos los objetos seleccionados en el portapapeles de Windows como texto (puede guardarlo y verlo en cualquier editor de texto, puede encontrar un ejemplo más abajo).
- En un gráfico de destino, pulse Ctrl+J para pegar todos los objetos del portapapeles.
¿Por qué Ctrl+Q/Ctrl+J? Son sólo 2 combinaciones de teclas vacantes elegidas voluntariamente entre muy pocas. Esto se debe a que MetaTrader intercepta y no se propaga muchas teclas de acceso rápido a MQL-programas. En particular, esto es así para el estándar Ctrl + C / Ctrl + V / Ctrl + Ins / Shift + Ins, que no están trabajando en este contexto.
Como el código fuente está disponible, puede cambiar las teclas de acceso rápido a otras combinaciones.
Dado que el indicador utiliza DLLs del sistema para acceder al portapapeles de Windows, debe permitir la importación de DLLs en el diálogo Propiedades, en la pestaña Dependencias.
Debido al hecho de que el Codebase no permite importaciones DLL, el código relacionado con el portapapeles está envuelto en la directiva condicional del preprocesador #ifdef DLL_LINK, así que por favor descomente la línea
#define DLL_LINK
antes de la compilación. De lo contrario, verá cómo los stubs de funciones del portapapeles le mostrarán alertas en respuesta a la pulsación de teclas de acceso rápido, ¡sin que se realice ninguna acción real!
- MakeAllSelectable - bandera para hacer todos los objetos seleccionables (que normalmente es falsa para los objetos creados mediante programación);
- LogDetails - indicador para mostrar en el registro todas las propiedades de los objetos transferidos;
Aquí hay un ejemplo de texto del portapapeles con 2 objetos:
OBJ_VLINE H1 Vertical Line 5578 0 0 enum ENUM_OBJECT_PROPERTY_INTEGER 0 OBJPROP_COLOR 55295 1 OBJPROP_STYLE 2 2 OBJPROP_WIDTH 1 3 OBJPROP_BACK 0 4 OBJPROP_SELECTED 1 7 OBJPROP_TYPE 0 8 OBJPROP_TIME 1726739940 10 OBJPROP_SELECTABLE 1 11 OBJPROP_CREATETIME 1726847009 12 OBJPROP_TIMEFRAMES 2097151 200 OBJPROP_LEVELS 0 207 OBJPROP_ZORDER 0 208 OBJPROP_HIDDEN 0 1032 OBJPROP_RAY 1 enum ENUM_OBJECT_PROPERTY_DOUBLE 9 OBJPROP_PRICE 1.11449 enum ENUM_OBJECT_PROPERTY_STRING 5 OBJPROP_NAME H1 Vertical Line 5578 6 OBJPROP_TEXT 206 OBJPROP_TOOLTIP OBJ_CHANNEL H1 Equidistant Channel 40885 5 1 enum ENUM_OBJECT_PROPERTY_INTEGER 0 OBJPROP_COLOR 255 1 OBJPROP_STYLE 0 2 OBJPROP_WIDTH 1 3 OBJPROP_BACK 0 4 OBJPROP_SELECTED 1 7 OBJPROP_TYPE 5 8 OBJPROP_TIME 1726758000 8 OBJPROP_TIME.1 1726797600 8 OBJPROP_TIME.2 1726758000 10 OBJPROP_SELECTABLE 1 11 OBJPROP_CREATETIME 1726847883 12 OBJPROP_TIMEFRAMES 2097151 200 OBJPROP_LEVELS 0 207 OBJPROP_ZORDER 0 208 OBJPROP_HIDDEN 0 1003 OBJPROP_RAY_LEFT 0 1004 OBJPROP_RAY_RIGHT 0 1031 OBJPROP_FILL 0 enum ENUM_OBJECT_PROPERTY_DOUBLE 9 OBJPROP_PRICE -28.113879003558715 9 OBJPROP_PRICE.1 -21.708185053380777 9 OBJPROP_PRICE.2 -48.04270462633452 enum ENUM_OBJECT_PROPERTY_STRING 5 OBJPROP_NAME H1 Equidistant Channel 40885 6 OBJPROP_TEXT 206 OBJPROP_TOOLTIP
Y aquí están estos objetos pegados en el gráfico:
Traducción del inglés realizada por MetaQuotes Ltd.
Artículo original: https://www.mql5.com/en/code/52263

Permite visualizar fácilmente los periodos alcistas y bajistas confirmados por el indicador zigzag mediante vlines. Puede controlar la visualización del zigzag, eligiendo que comience desde el principio del gráfico o desde un determinado número de barras, así como la visualización de las etiquetas que muestran el precio del máximo o mínimo, la dirección del periodo pasado y su amplitud en pips. Por supuesto, funciona tanto en la ventana principal como en las subventanas. ¡¡¡ATENCIÓN!!! Se trata de una valiosa ayuda para comprender y calibrar indicadores y desarrollar estrategias, pero no está pensada para su uso directo. Traducido con DeepL.com (versión gratuita)

- El script escanea el gráfico actual en busca de cualquier objeto de gráfico disponible, - Los cuenta y los elimina según corresponda - Y registra los nombres de los objetos en el gráfico respectivamente.

El indicador Accumulation/Distribution (Acumulación/Distribución) queda determinado por los cambios que se producen en el precio y en el volumen.

El indicador Acceleration/Deceleration (AC, Aceleración/Desaceleración) mide la aceleración y la desaceleración de la fuerza impulsora del mercado.