Discusión sobre el artículo "Conjunto de instrumentos para el marcado manual de gráficos y comercio (Parte III). Optimización y nuevos instrumentos"

 

Artículo publicado Conjunto de instrumentos para el marcado manual de gráficos y comercio (Parte III). Optimización y nuevos instrumentos:

Desarrollo del dibujado de objetos gráficos en los gráficos usando atajos de teclado. Hemos añadido a la biblioteca nuevas herramientas, en particular, una línea recta que recorre vértices arbitrarios y un conjunto de rectángulos que nos permitirá estimar tanto el nivel como el momento del viraje. También mostramos la posibilidad de optimizar el código para mejorar el rendimiento. Hemos reescrito el ejemplo de la implementación como un indicador, lo cual nos permite establecer atajos de teclado junto con otros programas comerciales. El nivel de dominio del código es un poco superior al de un principiante.

La primera característica está relacionada con el efecto del desplazamiento de las líneas a marcos temporales menores. Si dibujamos líneas de la forma habitual, al alternar entre "ventanas temporales" se dibujará algo similar a lo que vemos en las siguientes imágenes:

Extremos de las líneas D1 Extremos de las líneas H4

Podemos ver que el borde izquierdo de la línea, que coincide exactamente con el extremo en el periodo D1, se desplaza hacia la izquierda en el periodo de 4 horas y no coincide con el extremo. Este es un efecto bastante obvio, debido a que el extremo del día no tiene por qué caer al comienzo. Y si desea mayor precisión, al dibujar manualmente, podrá dibujar una línea de forma aproximada, luego "descender" a las mitades inferiores y corregir los extremos.

Eso resulta bueno para un gráfico o dos... ¿Y si son 20? ¿O 100? Esto resultaría muy molesto...

Y, como ya existe una función de dibujado automático, ¿por qué no confiarle esta tarea a la hora de crear cada objeto?

Autor: Oleh Fedorov

 

Hay algunos problemas puede ser para la compilación de la versión Inglés. En el archivo "Utilites.mqh" el traductor cambia el símbolo de espacio por otro.

Por lo tanto, si usted ve el error "Declaración sin tipo" debido a la compilación, haga doble clic en la cadena con este mensaje - IDE abrirá esta cadena en el editor. A continuación, seleccione UN símbolo incorrecto (como es habitual, estará entre el código principal y los comentarios) y pulse Ctrl+H o seleccione Buscar -> Reemplazar en el menú principal.

En la línea superior (Buscar) IDE insertará el símbolo "incorrecto", y en la línea inferior (reemplazar) necesitará insertar un simple espacio. Luego pulse el botón "Reemplazar todo"...

Bueno, la última operación será Compilar(Ctrl+F7).

Cómo corregir errores ""

Intentaré enviar el archivo correcto al moderador lo antes posible.

 

Hola. Gran herramienta que has creado. Yo también soy manual y estaba buscando una así.

Pero por lo general tengo varias ventanas (plazos) de una herramienta abierta en varios monitores.

¿Hay alguna posibilidad de MQL para hacer estos
objetos dibujados aparecen en todas las ventanas abiertas de una herramienta? Por ejemplo, como se hace en Tigertrade y otras plataformas.

Por ejemplo, usted ha dibujado a 5m, y el mismo nivel aparece en la ventana con 1m.

Me sorprende que no hay tales herramientas en MQL


Muchas gracias

 
okskreen61 #:

Hola. Gran herramienta que ha creado. Yo también soy un labrador y estaba buscando uno de estos.

Pero suelo tener varias ventanas (timeframes) de una misma herramienta abiertas en varios monitores.

¿Hay alguna posibilidad de MQL para hacer estos
objetos dibujados aparecen en todas las ventanas abiertas de una herramienta? Por ejemplo, como se hace en Tigertrade y otras plataformas.

Por ejemplo, dibujé un nivel a 5m, y el mismo nivel aparece en la ventana con 1m.

Es sorprendente que no hay tales herramientas en MQL


Muchas gracias.

La forma más sencilla es hacer una plantilla. Además, vi algo similar en algún lugar en kodobase (ya sea en forma de un indicador o un script)...
 

El archivo "Utilites.mqh" contiene 101 errores, de los cuales son los siguientes

'New_Bar_First_Start' - declaración sin tipo Utilites.mqh 80 5

'mode' - se esperaba una coma Utilites.mqh 80 25

New_Bar_First_Start' - declaración sin tipo Utilites.mqh 1491 26

mode' - coma esperada Utilites.mqh 1491 46

mode' - identificador no declarado Utilites.mqh 1511 18

Is_Select_On_Create' - identificador no declarado Graphics.mqh 307 45

Print_Warning_Messages' - identificador no declarado Graphics.mqh 249 8

Print_Warning_Messages' - identificador no declarado Graphics.mqh 361 8

CMouse' no es una clase, estructura o unión Graphics.mqh 940 26

Bar' - identificador no declarado Graphics.mqh 940 34

Bar' - operador esperado Graphics.mqh 940 34

'(' - punto y coma esperado Graphics.mqh 940 37

')' - expresión esperada Graphics.mqh 940 38

allPrefixes' - identificador no declarado Graphics.mqh 944 37

'[' - array requerido Graphics.mqh 944 48

CMouse' no es una clase, estructura o unión Graphics.mqh 959 6

Abajo' - identificador no declarado Graphics.mqh 959 14

Below' - operador esperado Graphics.mqh 959 14

'(' - paréntesis izquierdo desequilibrado Graphics.mqh 959 5

')' - expresión esperada Graphics.mqh 959 20

')' - token inesperado Graphics.mqh 959 21

'else' ilegal sin 'if' coincidente Graphics.mqh 968 3

variable 'tmp_price' no utilizada Graphics.mqh 950 3

variable 'tmp_time' no utilizada Graphics.mqh 954 3

Simple_Vertical_Style' - identificador no declarado Graphics.mqh 420 26

Simple_Vertical_Width' - identificador no declarado Graphics.mqh 422 26

Simple_Horizontal_Style' - identificador no declarado Graphics.mqh 430 28

Simple_Horizontal_Width' - identificador no declarado Graphics.mqh 432 28

CMouse' no es una clase, estructura o unión Graphics.mqh 434 14

Window' - identificador no declarado Graphics.mqh 434 22

Window' - se esperaba algún operador Graphics.mqh 434 22

')' - token inesperado Graphics.mqh 434 29

Print_Warning_Messages' - identificador no declarado Graphics.mqh 439 10

DEBUG_MESSAGE_PREFIX' - identificador no declarado Graphics.mqh 442 15

allPrefixes' - identificador no declarado Graphics.mqh 451 9

'[' - array requerido Graphics.mqh 451 20

Print_Warning_Messages' - identificador no declarado Graphics.mqh 462 10

DEBUG_MESSAGE_PREFIX' - identificador no declarado Graphics.mqh 464 15

CMouse' no es una clase, estructura o unión Graphics.mqh 469 39

Precio' - identificador no declarado Graphics.mqh 469 47

Precio' - algún operador esperado Graphics.mqh 469 47

'(' - ':' signo de dos puntos esperado Graphics.mqh 469 52

')' - expresión esperada Graphics.mqh 469 53

':' - token inesperado Graphics.mqh 469 55

'(' - expresión esperada Graphics.mqh 469 52

'=' - operando esperado Graphics.mqh 469 24

la expresión no tiene efecto Graphics.mqh 469 57

CMouse' no es una clase, estructura o unión Graphics.mqh 470 37

Tiempo' - identificador no declarado Graphics.mqh 470 45

Tiempo' - algún operador esperado Graphics.mqh 470 45

'(' - ':' signo de dos puntos esperado Graphics.mqh 470 49

')' - expresión esperada Graphics.mqh 470 50

':' - token inesperado Graphics.mqh 470 52

'(' - expresión esperada Graphics.mqh 470 49

'=' - operando esperado Graphics.mqh 470 23

la expresión no tiene efecto Graphics.mqh 470 54

posible uso de variable no inicializada 'Current_Object_Time' Graphics.mqh 478 5

possible use of uninitialized variable 'Current_Object_Price' Graphics.mqh 479 5

Print_Warning_Messages' - identificador no declarado Graphics.mqh 516 8

DEBUG_MESSAGE_PREFIX' - identificador no declarado Graphics.mqh 518 13

DEBUG_MESSAGE_PREFIX' - identificador no declarado Graphics.mqh 573 11

DEBUG_MESSAGE_PREFIX' - identificador no declarado Graphics.mqh 610 11

allPrefixes' - identificador no declarado Graphics.mqh 672 37

'[' - array requerido Graphics.mqh 672 48

allPrefixes' - identificador no declarado Graphics.mqh 674 39

'[' - array requerido Graphics.mqh 674 50

conversión implícita de 'unknown' a 'string' Graphics.mqh 674 39

CMouse' no es una clase, estructura o unión Graphics.mqh 676 19

Bar' - identificador no declarado Graphics.mqh 676 27

Bar' - operador esperado Graphics.mqh 676 27

'(' - punto y coma esperado Graphics.mqh 676 30

')' - expresión esperada Graphics.mqh 676 31

CMouse' no es una clase, estructura o unión Graphics.mqh 681 6

Below' - identificador no declarado Graphics.mqh 681 14

Below' - operador esperado Graphics.mqh 681 14

'(' - paréntesis izquierdo desequilibrado Graphics.mqh 681 5

')' - expresión esperada Graphics.mqh 681 20

')' - token inesperado Graphics.mqh 681 21

ilegal 'else' sin concordancia 'if' Graphics.mqh 687 3

variable 'levels_descriptions' no utilizada Graphics.mqh 666 10

variable 'time1' no utilizada Graphics.mqh 675 12

variable 'time2' no utilizada Graphics.mqh 675 19

Pitchfork_Shiff_Colour' - identificador no declarado Graphics.mqh 771 23

Pitchfork_Shiff_Width' - identificador no declarado Graphics.mqh 772 23

Pitchfork_Shiff_Style' - identificador no declarado Graphics.mqh 773 23

Pitchfork_Reverce_Colour' - identificador no declarado Graphics.mqh 779 25

Pitchfork_Reverce_Width" - identificador no declarado Graphics.mqh 780 25

Pitchfork_Reverce_Style' - identificador no declarado Graphics.mqh 781 25

Pitchfork_Main_Colour" - identificador no declarado Graphics.mqh 787 25

Pitchfork_Main_Width' - identificador no declarado Graphics.mqh 788 25

Pitchfork_Main_Style' - identificador no declarado Graphics.mqh 789 25

CMouse' no es una clase, estructura o unión Graphics.mqh 824 26

Precio' - identificador no declarado Graphics.mqh 824 34

Precio' - algún operador esperado Graphics.mqh 824 34

'(' - punto y coma esperado Graphics.mqh 824 39

')' - expresión esperada Graphics.mqh 824 40

CMouse' no es una clase, estructura o unión Graphics.mqh 825 21

Bar' - identificador no declarado Graphics.mqh 825 29

Bar' - algún operador esperado Graphics.mqh 825 29

'(' - punto y coma esperado Graphics.mqh 825 32

')' - expresión esperada Graphics.mqh 825 33

CMouse' no es una clase, estructura o unión Graphics.mqh 829 6

Below' - identificador no declarado Graphics.mqh 829 14

Below' - operador esperado Graphics.mqh 829 14

'(' - paréntesis izquierdo desequilibrado Graphics.mqh 829 5

')' - expresión esperada Graphics.mqh 829 20

')' - token inesperado Graphics.mqh 829 21

'else' ilegal sin 'if' coincidente Graphics.mqh 833 3

variable 'base' no utilizada Graphics.mqh 827 19

Short_Level_Length_In_Pixels' - identificador no declarado Graphics.mqh 1050 6

Short_Level_Length_Pix' - identificador no declarado Graphics.mqh 1053 20

101 errores, 11 advertencias 101 12


 
Este código, desafortunadamente, es una sola unidad, por lo que no podrás utilizar el archivo Utilites.mqh a menos que previamente enlaces GlobalVariables.mqh y Mouse.mqh. Esto puede hacerse directamente en el fichero Utilites.mqh o en el código que utilizará las clases necesarias. Ten en cuenta que las variables de entrada también están incluidas en GlobalVariables.mqh. Si no quieres ver estos parámetros mientras tu código se está ejecutando, puedes eliminar la palabra "input" antes de ellos, pero las variables en sí deben permanecer.