Ejecutar el script a través del Asesor Experto - página 2

 
Shaun:

Es verdad, soy nuevo, en el sitio, en la codificación también. Nunca he codificado antes.
empezar aquí
 
qjol:
empezar aquí

Gracias por la información.

Para ser honesto, vine al foro de comerciantes/codificación para obtener la respuesta de alguien que ya lo haya hecho y que posiblemente pueda ayudarme, no para aprender a codificar todo yo mismo desde cero.

 
Shaun:

Gracias por la información.

Para ser honesto, vine al foro de comerciantes/codificación para obtener la respuesta de alguien que ya lo haya hecho y que posiblemente pueda ayudarme, no para aprender a codificar todo yo mismo desde cero.

Muestra tu Script, muestra tu EA tal vez alguien se apiade de ti y los combine....
 
Shaun:

Gracias por la información.

Para ser honesto, vine al foro de comerciantes/codificación para obtener la respuesta de alguien que ya lo haya hecho y que posiblemente pueda ayudarme, no para aprender a codificar todo yo mismo desde cero.

Por favor, muestre su código y trataremos de ayudarle, pero por supuesto, estoy seguro de que no espera que yo haga todo el código por usted.
 

¡Gracias chicos!

Siguiendo su consejo, escribí algo como esto dentro de mi EA:

if(MyCondition)
{
  PlaySound("my_alert.wav");
    if(MessageBox("Do you really want to run the script?", 0, MB_YESNO|MB_ICONQUESTION)!=IDNO)
     { 
      MyScript();
      DisableAllEA();
      Sleep(3000);    
     }
  }

En una situación determinada, definida por MyCondition, esto reproduce mi alerta, para que pueda escuchar que tengo que comprobar lo que está pasando.

Un cuadro de mensaje aparece, preguntando si quiero ejecutar el script - que es un script de cierre de todas las posiciones.

Cuando hago clic en el botón [SÍ], el script se ejecuta - cierra todas las posiciones - y desactiva el botón [Expertos] en MT4.

Por supuesto, no es necesario desactivar los Expertos, a menos que tenga una razón para hacerlo.

Si en el siguiente bucle su EA no encuentra la condición, no activará el script.

Obviamente, esto es sólo una solución de trabajo y no una solución perfecta, porque el EA sigue haciendo un bucle en cada tick.

Y no puedes desactivar Experts hasta que el script se haya ejecutado, porque el script está dentro del EA, no es independiente.

P.D.

Para que esto funcione, necesita incluir lo siguiente en el comienzo de su EA:

#include <WinUser32.mqh>
 

¡¡¡Se me acaba de ocurrir otra solución!!!

Puedes asignar una tecla de acceso directo (HOTKEY) a tu script.

Así, puedes emular el evento del teclado.

Así, mejor:

if(MyCondition)
{
      EnableScript();
      DisableAllEA();
      Sleep(3000);
}

Puedes incluir tu alert.wav en el script independiente, y el cuadro de mensaje, también.

Y, usted puede decidir si habilitar a los expertos o no, después de su acción en la situación.

De esta manera, no se corre el riesgo de sobrepasar el límite.

Por supuesto, esto necesita más estudio sobre los eventos de las teclas.

La función del evento de teclado Ctrl+E es:

void DisableAllEA() {
   keybd_event(17, 0, 0, 0); // CTRL down
   keybd_event(69, 0, 0, 0); // E down
   keybd_event(69, 0, 2, 0); // E up
   keybd_event(17, 0, 2, 0); // CTRL up
}

Con un poco de google, usted puede encontrar los códigos de números para cada tecla.

O bien, puede utilizar este enlace: https: //www.mql5.com/en/code

Por supuesto, keybd_event no es parte de mql4, es por eso que usted necesita:

#include <WinUser32.mqh>
 

¡Y, por cierto!

¿Alguien se ha cansado de implementar un EA en el gráfico como un indicador?

¡Debería funcionar igual de bien!

¡Y usted puede tener cualquier número de indicadores que se ejecutan en un gráfico!

¡Yo he probado a implementar scripts como indicadores, y eso funciona muy bien!

 
Dadas:

¡Y, por cierto!

¿Alguien se ha cansado de implementar un EA en el gráfico como un indicador?

¡Debería funcionar igual de bien!


No puedes colocar operaciones desde un indicador, sólo desde scripts y EAs.
 
RaptorUK:

No puedes colocar operaciones desde un indicador, sólo desde scripts y EAs.


Entonces, ¿un EA podría ejecutarse como un script? ¿En un bucle?

Sólo que, cuando está en un bucle infinito, el ordenador acabará colapsando.

¿Hay alguna manera de activar un script en un bucle controlado por algún ticker, como cada 50ms o algo así?

¿No por los ticks de MT4?

 
RaptorUK:

No puede colocar operaciones desde un Indicador, sólo desde Scripts y EAs.


Y otra idea:

Así que usted puede utilizar la función de eventos de teclado para hacer pedidos por Script.

1. Escribe un Script para realizar pedidos automáticamente.

2. Asigne un HOTKEY a este.

3. En el EA que se ejecuta como Indicador definir el evento de teclado.

Luego, puede hacer lo mismo para las órdenes de cierre.

¡Ahí lo tiene! ¡Un EA que se ejecuta como un indicador y hace su trabajo!

La única desventaja de esta forma es que no se puede desactivar un indicador con un evento de teclado - sólo quitarlo manualmente del gráfico.

Razón de la queja: