Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. En ninguna parte sin ti - 6. - página 943

 

Quién sabe cómo averiguar

longchart_id, // ID del gráfico. 0 significa carta actual.

si la carta no es actual?

 
Leo59:

Quién sabe cómo averiguar

longchart_id, // ID del gráfico. 0 significa el gráfico actual.

si el gráfico no es el actual?

Luego hay que seleccionar el primer ChartFirst para comprobar si es el correcto, por símbolo y periodo, si no es así seleccionar el siguiente y así sucesivamente hasta el correcto y definir el ChartID
 
AlexeyVik:
Luego hay que seleccionar el primer ChartFirst para comprobar si es el correcto, por símbolo y periodo, si no es así seleccionar el siguiente y así sucesivamente hasta llegar al correcto y definir ChartID
Gracias.
 

Hola a todos. Tratar con bibliotecas de funciones, funciones de importación (#import) y archivos de inclusión (#include). No estoy seguro de quién "incluye" a quién. Así que.

Las bibliotecas se encuentran en la carpeta Bibliotecas. Esta carpeta puede contener 5 tipos de archivos (no excluidos): 1- .dll (biblioteca de funciones de Windows, ya modificada para MT4 con el modificador #defineMT4_EXPFUNC int __stdcall ...),

2- . ex4(parece ser el resultado de la compilación de .mq4 o .mqh), 3- .dat(no he leído nada al respecto), 4- .mqh(probablemente un archivo que hay que habilitar, porque la biblioteca #property está deshabilitada, pero Igor Kim la tiene,

como una biblioteca de funciones adicionales), 5- .mq4(una biblioteca de funciones personalizadas y archivos de inclusión, que puede contener funciones personalizadas, archivos de inclusión, bibliotecas .dll y algo más.

Los archivos de inclusión están en la carpeta Include y pueden contener otros archivos de inclusión, funciones personalizadas, bibliotecas .dll y algo más. También en la carpeta Incluir --> Controles --> res iconos (imágenes) .bmp.

¿Cómo podría hacer (rehacer) la secuencia de comandos, que no funciona (no responde a los clics del ratón y el teclado). Tal vez porque la carpeta Bibliotecas no user32.dll (aunque utilizaWinUser32.mqh y no puede en algún lugar no ser).

¿Puede decirme dónde hay algo que no funciona? Gracias de antemano, las preguntas apenas comienzan.

#property copyright "Copyright 2015"
#property link      "http://"
#property version   "1.00"
//#property strict
#include <WinUser32.mqh>

#import  "IdleLib.dll"
int      GetLastKeyWP();
int      GetLastMouseWP();
int      IdleLibInit();
int      IdleLibUnInit();
string   GetActiveWndName();
#import 
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//---
      Alert("Начало.");
      IdleLibInit();//инициализируем Dll для перехвата событий.
      while(IsStopped()==false)
         {
            int    lastkey=GetLastKeyWP();         //Опрашиваем код посл. клавиши
            int    lastmouse=GetLastMouseWP();     //Опрашиваем код мыши.
            string lastwnd=GetActiveWndName();     //Имя окна Metatrader где произошло событие.
            if ((lastkey!=0) && (lastwnd!=""))
               {
                  Alert("Код нажатой клавиши=",lastkey," из окна ",lastwnd);
               }
            if ((lastmouse!=0) && (lastwnd!="") && (lastmouse!=512)) //отражаем все события кроме движения мыши.
               {
                  Alert("Код мыши=",lastmouse," из окна ",lastwnd);
               }
            Sleep(200);
         }  //while
      IdleLibUnInit();
      Alert("Завершение.");
  }
 
kosmos0975:

Hola a todos. Tratar con bibliotecas de funciones, funciones de importación (#import) y archivos de inclusión (#include). No estoy seguro de quién "incluye" a quién. Así que.

Las bibliotecas se encuentran en la carpeta Bibliotecas. Esta carpeta puede contener 5 tipos de archivos (no excluidos): 1- .dll (biblioteca de funciones de Windows, ya modificada para MT4 con el modificador #defineMT4_EXPFUNC int __stdcall ...),

2- . ex4(parece ser el resultado de la compilación de .mq4 o .mqh), 3- .dat(no he leído nada al respecto), 4- .mqh(probablemente un archivo que hay que habilitar, porque la biblioteca #property está deshabilitada, pero Igor Kim la tiene,

como una biblioteca de funciones adicionales), 5- .mq4(una biblioteca de funciones personalizadas y archivos de inclusión, que puede contener funciones personalizadas, archivos de inclusión, bibliotecas .dll y algo más.

Los archivos de inclusión están en la carpeta Include y pueden contener otros archivos de inclusión, funciones personalizadas, bibliotecas .dll y algo más. También en la carpeta Incluir --> Controles --> res iconos (imágenes) .bmp.

¿Cómo podría hacer (rehacer) la secuencia de comandos, que no funciona (no responde a los clics del ratón y el teclado). Tal vez porque la carpeta Bibliotecas no user32.dll (aunque utilizaWinUser32.mqh y no puede en algún lugar no ser).

¿Puede decirme dónde hay algo que no funciona? Gracias de antemano, las preguntas apenas comienzan.

La carpeta Bibliotecas contiene:

1) autoescrito *.dll;

2) *.ex4 - resultado de las bibliotecas compiladas con la biblioteca #property;

3) *.mq4 (no obligatorio) a partir del cual se compila el *.ex4 del punto 2.

 

Gracias por su respuesta. Para aclarar: 1) autoescrito *.dll - biblioteca de funciones de Windows o su código, ya adaptado a MT4. 2) *.mq4(source) será compilado junto con el archivo principal o su *.ex4(ya compilado)

(ya compilado) será incluido (añadido) al archivo principal durante la compilación. Para la edición de la biblioteca es más conveniente tener el archivo fuente. 3) La desregulación #importar sólo para *.dll. Se encuentra en la carpeta Bibliotecas porque la biblioteca, aunque es un

funciones. 4) *.mqh - archivos de inclusión, no compilados (siempre fuente).

He leído que las bibliotecas antiguas pueden no funcionar porque Unicode ahora. ¿Qué hay de malo en el ejemplo anterior?

 
kosmos0975:

Gracias por su respuesta. Para aclarar: 1) autoescrito *.dll - biblioteca de funciones de Windows o su código, ya adaptado a MT4. 2) *.mq4(source) será compilado junto con el archivo principal o su *.ex4(ya compilado)

(ya compilado) será incluido (añadido) al archivo principal durante la compilación. Para la edición de la biblioteca es más conveniente tener el archivo fuente. 3) La desregulación #importar sólo para *.dll. Se encuentra en la carpeta Bibliotecas porque la biblioteca, aunque es un

funciones. 4) *.mqh - archivos de inclusión, no compilados (siempre fuente).

He leído que las bibliotecas antiguas pueden no funcionar porque Unicode ahora. ¿Qué hay de malo en el ejemplo anterior?

Para aclarar:

1) Las bibliotecas de Windows no tienen que ser puestas en la caja de arena del terminal;

2) *.mq4 (fuente) con la directiva de biblioteca #property (después de compilarlo, se obtiene un archivo *.ex4). El archivo no se compilará sin esta directiva;

La directiva #import no se utiliza sólo para las bibliotecas *.dll. Mira cualquier archivo *.mqh en la carpeta Include. Por cierto, ahí es donde deben estar los archivos *.mqh (de cabecera). No están compilados.

Sobre las bibliotecas "antiguas" y Unicode - se trata de las *.dll autoescritas.

 

He descubierto dónde está todo. Sobre la estructura del guión anterior. #include< WinUser32.mqh> contiene el diccionario #import "user32.dll" y una lista de funciones externas adaptadas. También #define(asignando nombres mnemónicos) a algunos

valores numéricos. ¿Por qué se hace esto (asignación) y es incluso necesario incluir el archivo #include< WinUser32.mqh>, porque las funciones externas que se utilizan más pertenecen a #import "IdelLib.dll".

La lista de funciones "user32.dll" parece tener las suyas propias para secuestrar el ratón y el teclado, pero no se encontró ninguna descripción. Me gustaría saber cómo hacer que (el script) funcione correctamente (funciona los mismos paneles interactivos en el probador de estrategias a pesar de su

defectos persistentes por parte de los desarrolladores) y hay gente con conocimientos. He mirado un par de hilos sobre las bibliotecas *.dll. Empiezan enérgicamente, luego hablan de la vida. Sin embargo, por alguna razón, muy poca información (bibliotecas de trabajo con descripciones y ejemplos).

 
kosmos0975:

He descubierto dónde está todo. Sobre la estructura del guión anterior. #include< WinUser32.mqh> contiene el diccionario #import "user32.dll" y una lista de funciones externas adaptadas. También #define(asignando nombres mnemónicos) a algunos

valores numéricos. ¿Por qué se hace esto (asignación) y es incluso necesario incluir el archivo #include< WinUser32.mqh>, porque las funciones externas que se utilizan más pertenecen a #import "IdelLib.dll".

La lista de funciones "user32.dll" parece tener las suyas propias para secuestrar el ratón y el teclado, pero no se encontró ninguna descripción. Me gustaría saber cómo hacer que (el script) funcione correctamente (funciona los mismos paneles interactivos en el probador de estrategias a pesar de su

defectos persistentes por parte de los desarrolladores) y hay gente con conocimientos. He mirado un par de hilos sobre las bibliotecas *.dll. Empiezan enérgicamente, luego hablan de la vida. Sin embargo, por alguna razón, muy poca información (bibliotecas de trabajo con descripciones y ejemplos).

Investiga y ve si puedes encontrar algo interesante para ti.
 
¿Quién tiene un código de indicador técnico iMA normal con APPLIED_PRICE seleccionable ? ¡Envíe por favor!