Automatización con interceptación de botones y clics del ratón. - página 4

 
HIDDEN >> :

interesado en el control del software del probador de estrategias.

1. abrirlo desde el Asesor Experto (código encontrado)

2. pulse el botón de inicio

etc. En general, sería deseable tener todos los códigos de esta ventana. botones, etc.

Quieres salirte con la tuya. :))

Hay muchas cosas complicadas aquí:


1. abrir la ventana del probador

2. abrir la lista de EAs, seleccionar un determinado EA de la lista por su nombre (se puede saltar, dejando una posición en la lista de antemano)

3. abrir la lista de símbolos, seleccionar un símbolo determinado de la lista por su nombre (puede saltarse esta operación dejando previamente una posición en la lista)

4. abrir la lista de métodos, seleccionar un método determinado de la lista por su nombre o número

5. Abrir la lista de períodos, seleccionar un período determinado de la lista por su nombre o número

6. Marque la casilla "Utilizar la fecha", márquela

7. 9. Marque la casilla de verificación "Optimizar", marque la casilla de verificación.

8. Marque la casilla "Visualización", desmarque (opcional)

9. Introduzca la fecha indicada en la ventana "Desde" (si es posible)

10. Introduzca la fecha fijada en la ventana "Hasta" (si es posible)

11. pulse el botón "Inicio".

12. Recibir una señal del final de la optimización, es decir, el texto "Inicio" devuelto al botón (se puede utilizar un temporizador)

13. Cerrar la ventana del probador


Eso si no me he perdido nada todavía.

 
granit77 >> :

Quieres salirte con la tuya. :))

Hay muchas cosas complicadas aquí:


1. abrir la ventana del probador

2. abrir la lista de Asesores Expertos, seleccionar un Asesor Experto determinado de la lista por su nombre (puede saltarse, dejando una posición en la lista de antemano)

3. abrir la lista de símbolos, seleccionar un símbolo determinado de la lista por su nombre (puede saltarse dejando una posición en la lista de antemano)

4. abrir la lista de métodos, seleccionar un método determinado de la lista por su nombre o por su número

5. Abrir la lista de períodos, seleccionar un período determinado de la lista por su nombre o número

6. Marque la casilla "Utilizar la fecha", márquela

7. 9. Marque la casilla de verificación "Optimizar", marque la casilla de verificación.

8. Marque la casilla "Visualización", desmarque (opcional)

9. Introduzca la fecha indicada en la ventana "Desde" ( si es posible)

10. Introduzca la fecha fijada en la ventana "Hasta" (si es posible)

11. pulse el botón "Inicio".

12. Recibir una señal del final de la optimización, es decir, el texto "Inicio" devuelto al botón (se puede utilizar un temporizador)

13. Cerrar la ventana del probador


Si no me he perdido nada todavía

Hay un archivo lastparameters.ini en la carpeta del probador, lo que impide que se prepare en el Asesor Experto, se escriba y se abra en el probador y se pulse el botón de inicio. Resulta que la mitad de los artículos ya han desaparecido.

 

Es cierto, lo había olvidado.

Si has trabajado con él, repasando la lista, quizá lo único que tengas que hacer sea pulsar "Inicio".

 
granit77 >> :

Cierto, lo había olvidado.

Si has trabajado con él, recorre la lista, tal vez sólo tengas que pulsar "Inicio".

optimization=0 //optimización activada y desactivada
genetic=1 //genetics
fitnes=0
method=0 //método de prueba
use_date=0 //por fecha
from=1226620800 // fecha de inicio en segundos desde 1970
to=1226620800 // fecha de finalización


lo mismo para el EA, después de probarlo y optimizarlo se hace una vez manualmente se guardan los parámetros y se cambian a gusto. Todavía tengo que pulsar el botón de inicio, oh cuánto necesito....


Si la optimización está en marcha para el Asesor Experto que opera en un gráfico, se puede pulsar el código F6 y, en consecuencia, el Asesor Experto y el par de divisas se seleccionan automáticamente, es decir, se pierden algunos puntos más.

 
HIDDEN >> :

Todavía tengo que pulsar el botón de inicio, oh cuánto necesito....

No me siento especialmente halagado. Una ejecución manual con optimizaciones periódicas aún no ha producido un resultado inequívocamente positivo.

Además, la cuestión de la elección del mejor conjunto de parámetros también queda en el aire, cada uno sale con una nueva.

Mathemat ha prometido un artículo, quizá se aclare un poco.

Pero con esta herramienta, las posibilidades aumentarán en un orden de magnitud; será un avance.

 

Desde un hilo cercano Erics sugiere.


Los códigos de los botones se buscan en Spy++ (ID de control)

Y se utilizan para obtener el descriptor del botón:

hButtonStart = GetDlgItem(hTester, 0x40A);



Voy a despertarme y a ver cómo lo adjunto.

 

Antes de realizar cualquier acción en la ventana del Probador de Estrategias, primero debe entender cómo se organiza un árbol de ventanas en el MetaTrader, y en segundo lugar, determinar
su descriptor del sistema. Luego, utilizando la función GetDlgItem(int hDlg,int nIDDlgItem), puede obtener los IDs de los controles necesarios.


La siguiente imagen muestra una parte del árbol de la ventana de MetaTrader en Spy++. El marcadorrojo indica su raíz. El marcador amarillo muestra la ubicación de la ventana "Terminal" en el árbol, etc.
Así, para obtener el identificador de sistema del botón "Inicio" (marcado con un marcador azul en la imagen), deberá pasar secuencialmente por todos los niveles superiores
. A modo de ilustración, cada nivel está marcado con un color.




Aquí hay un código de ejemplo en MQL para obtener el descriptor del botón "Start".

#include <WinUser32.mqh>

#import "user32.dll"
   int GetAncestor(int hWnd, int gaFlags);
   int GetDlgItem(int hDlg, int nIDDlgItem);
#import

void start()
{
   int hMetaTrader, hTerminal, hTester, hButtonStart;
   
   hMetaTrader = GetAncestor(WindowHandle(Symbol(),Period()),2); //дескриптор основного окна терминала
	
   hTerminal = GetDlgItem(hMetaTrader,0xE81E);
   hTester = GetDlgItem(hTerminal,0x53);
   hButtonStart = GetDlgItem(GetDlgItem(hTester,0x81BF),0x40A);  //дескриптор кнопки "Старт"
}

Para determinar el descriptor, el segundo parámetro de la función GetDlgItem( ) es pasar el ID de control al componente de la ventana. Se puede definir llamando a la opción del menú
"Propiedades..." haciendo clic con el botón derecho del ratón. Como ejemplo, en la siguiente figura el ID de control de la ventana "Terminal"(0xE81E) está marcado en rojo .


 
Ilnur >> :

Antes de realizar cualquier acción en la ventana del Probador de Estrategias, primero debe entender cómo está estructurado el árbol de ventanas en el MetaTrader, y en segundo lugar, determinar


Gracias por el tutorial. El botón de inicio está pulsado con seguridad, al igual que los otros botones necesarios en el panel de control llamado MetaTrader 4.

 

Eh.... me viene a la mente.


Los americanos enviaron un turista a un submarino soviético. Se emborrachó el primer día. Por la mañana se despertó y vio al capitán con una porra corriendo detrás de los marineros y gritando: "¿Quién pulsó el botón rojo? ¿Quién ha pulsado el botón rojo?" El americano le regaña:
- ¡Sabe, señor, que no tenemos capitanes en América que se comporten así!
- ¡No hay más América! ¿Quién ha pulsado el botón rojo?

 
HIDDEN писал(а) >>

Eh.... Me lo recuerdan.

Los americanos enviaron a un turista en un submarino soviético. Se emborrachó el primer día. Por la mañana se despertó y vio al capitán con una porra persiguiendo a los marineros y gritando: "¿Quién pulsó el botón rojo? ¿Quién ha pulsado el botón rojo?" El americano le regaña:
- ¡Sabe, señor, que no tenemos capitanes en América que se comporten así!
- ¡No hay más América! ¿Quién ha pulsado el botón rojo?

Fue un buen terminal : -)))