Preguntas de los principiantes MQL5 MT5 MetaTrader 5 - página 974

 
Sprut112:

¿Qué te parece esto?

Hazlo así...

double Freeus =AccountInfoDouble(ACCOUNT_MARGIN_FREE)* MaximumRisk 
               /SymbolInfoDouble(symbol_name[ir],SYMBOL_TRADE_TICK_VALUE)/ 1000;
  input_lots = NormalizeDouble(MathRound(Freeus) * SymbolInfoDouble(symbol_name[ir], SYMBOL_VOLUME_STEP),dg);
 
xxz:

hacer esto...

No, funcionó cuando añadí a Step:) Gracias de nuevo.
 
Vladimir Karputov:

Corregir los bloques de inicialización en los EAs (OnInit() ).

¿Qué es exactamente? 0 advertencias. Devolución de 0 a
return(INIT_SUCCEED) si sólo.
 
pivomoe:
¿Qué pasa con eso? Retorno 0 en
return(INIT_SUCCEED) si sólo.

Mostrar el código MQL5 completo de la función OnInit() de los EAs que no se recargan. Mostrar el código MQL5 completo de la función OnDeinit() de los Asesores Expertos que no se recargan. ¿Los Asesores Expertos utilizan bibliotecas de terceros? ¿Dll?

 
Vladimir Karputov:

Mostrar el código MQL5 completo de la función OnInit() de los EAs que no se recargan. Mostrar el código MQL5 completo de la función OnDeinit() de los EAs que no se recargan. ¿Los Asesores Expertos utilizan bibliotecas de terceros? ¿Dll?

No uso ninguna Dll. El código de OnInit tiene 1000 líneas. Hay una asignación de memoria para las clases. Quizás no se libera toda la memoria en OnDeinit. Cerrar el terminal con una cruz está bien, pero el programador está bien sólo el 90% de las veces.
 
pivomoe:
No uso Dll. El código de OnInit tiene 1000 líneas. Hay una asignación de memoria para las clases. Quizás no se libera toda la memoria en OnDeinit. Cerrar el terminal con una cruz está bien, pero el programador funciona bien sólo el 90% de las veces.

Ya ha respondido al 90% de su pregunta. Sólo queda encontrar el error :)

 
Por favor, aconseja cómo asignar explícitamente a cada orden un magik diferente.
Por ejemplo.
Por ejemplo, tenemos que configurar
Orden Buy_Stop y asignarle magic_1
ordenar Buy_Stop y asignarle magic_2
Orden de Buy_Stop y establecer su magic_3 en ella

Para que al modificar las órdenes podamos especificar explícitamente qué orden modificar.

si una orden Buy_Stop == wizard_2, la modifica.

 

Buenas tardes.

Tengo preguntas en relación con la ausencia de Sleep() en el probador. Me gustaría saber cómo la gente resuelve los siguientes problemas cuando se utiliza el probador de estrategias (tanto las ejecuciones individuales como la enumeración de los parámetros de entrada):

1) ¿Cómo comprueban si una manilla indicadora está lista? Cómo podría hacer para esperar hasta que el cálculo del indicador esté completo, y sólo entonces pasar a las líneas.

2) ¿Cómo puedo esperar a que el archivo de texto llamado se abra para la lectura durante el EA?

3) ¿Cómo esperar la respuesta de la función OrdersTotal()? ¿Y puede haber un retraso en la respuesta de esta función?

4) ¿Cómo esperar a que la función OrderCalcMargin() responda? ¿Y puede haber un retraso en la respuesta de esta función?

5) ¿Tiene sentido esperar el"código de retorno del servidor de comercio" a través de MqlTradeResult en el probador (incluso si no está claro cómo).

En el terminal todas estas tareas se resolvieron utilizando Sleep(), mientras que en el probador no funciona. Además, no estoy seguro de que Sleep() sea necesario, ¿quizás haya una solución más racional?

Gracias ya.

 

Hola ! descomponer la construcción en si... C= (i>0) ? (A>B) ? 1 : (A<B) ? 2 : C: 0;

leer la ayuda - pero falló)

 
Tango_X:

Hola ! descomponer la construcción en si... C= (i>0) ? (A>B) ? 1 : (A<B) ? 2 : C: 0;

leer la ayuda - pero falló)

Se ve así:

C=xxx;
if(i>0)
  {
   if(A>B)
     {
      C=1;
     }
   else
     {
      if(A<B)
        {
         C=2;
        }
      else
        {
         C=C;
        }
     }
  }
else
  {
   C=0;
  }

S.S. No tiene nada que ver con la ayuda. Es una cuestión de lógica.

Razón de la queja: