Mira cómo descargar robots gratis
¡Búscanos en Twitter!
Pon "Me gusta" y sigue las noticias
¿Es interesante este script?
Deje un enlace a él, ¡qué los demás también lo valoren!
¿Le ha gustado el script?
Evalúe su trabajo en el terminal MetaTrader 5
Visualizaciones:
25
Ranking:
(6)
Publicado:
\MQL5\Include\MQL5Book\
MapArray.mqh (2.74 KB) ver
AutoPtr.mqh (1.86 KB) ver
MQL5 Freelance ¿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:

  1. 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).
  2. 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!

Las entradas son:
  • 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;
El indicador no comprueba si los objetos pegados coinciden con el gráfico de destino real, como símbolo, rango de precios, número de subventanas, etc. - debe hacerlo usted mismo.

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:

2 objetos gráficos pegados en el gráfico a través del portapapeles








Traducción del inglés realizada por MetaQuotes Ltd.
Artículo original: https://www.mql5.com/en/code/52263

HERRAMIENTAS DE CALIBRADO EN ZIGZAG HERRAMIENTAS DE CALIBRADO EN ZIGZAG

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)

Code To Check And Delete Chart Objects For MT5 Code To Check And Delete Chart Objects For MT5

- 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.

Accumulation/Distribution Accumulation/Distribution

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

Accelerator Oscillator (AC) Accelerator Oscillator (AC)

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