Preguntas de los principiantes MQL4 MT4 MetaTrader 4 - página 228

 

He estado buscando uno, pero no sé cómo resolver este problema.

Creo que necesito una actualización de MT4 y no he encontrado nada.

 
darirunu1:

He estado buscando uno, pero no sé cómo resolver este problema.

Quiero saber por qué quizás alguien se ha enfrentado a este problema.

lo más probable es que nadie se haya encontrado con problemas como el tuyo, por eso no hay respuestas.

 
Hola a todos, ¿es posible llamar al indicador en una ventana separada en el tester de mt4 cuando se prueba un EA?
 
Aleksandr Egorov:
Hola a todos, ¿es posible llamar al indicador en una ventana separada en el tester de mt4 cuando se prueba un EA?

 
Iurii Tokman:

¿Cómo?

 

Guarde la plantilla con el indicador bajo el nombre tester.tpl

Y cuando inicie el probador en la visualización obtendrá un gráfico con el indicador.

 
Aleksei Stepanenko:

Guarde la plantilla con el indicador bajo el nombre tester.tpl

Y cuando inicie el probador obtendrá un gráfico con el indicador en la visualización.

¿Sé que se puede llamar desde un EA?

 

Sólo se puede llamar a una plantilla preparada.

bool  ChartApplyTemplate(
   long          chart_id,     // идентификатор графика
   const string  filename      // имя файла с шаблоном
   );

El indicador no lo es.


O no sé nada de tal posibilidad. También es una opción posible, pero poco probable.

Con WinAPI, podrías intentar buscar en la lista del Navegador, supongo. Pero eso es muy divertido.
 

Por favor, aconsejen qué es lo que está mal en este código, antes de que este deslizamiento no estuviera todo funcionaba bien.

He especificado 2 libras como ganancia, tan pronto como la variable op supere las 2 libras el EA debe esperar 10 segundos y luego cerrar. Quiero que el EA espere más de 2 quid y que no lo cierre inmediatamente después de ver 2 quid.

double op = CalculateProfit();
if (op >= Profit)
{
Sleep(10000);
CloseAll();

}


Ahora, después de la función de deslizamiento, el EA no se cierra.

 
input int Second=10;
ulong LastTime=ULONG_MAX;

void OnTick()
   {
   if(op>=Profit) LastTime=GetMicrosecondCount();
   if(GetMicrosecondCount()-LastTime>Second*1000000) {CloseAll(); LastTime=ULONG_MAX;}
   }