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

 
Sergey Gritsay:

Y ahora lee la documentación normal de MT5, ahora algunas de las funciones antiguas funcionan exactamente como están escritas en ella, ya que la documentación de mt4 está anticuada y hay muchas cosas que aún no están arregladas.

GetLastError

Devuelve el contenido de la variable de sistema_LastError.

intGetLastError();

Valor devuelto

Devuelve el valor del último error ocurrido durante la ejecución del programa mql5.

Nota

Después de llamar a la función, el contenido de la variable _LastError no se borra. Se debe llamar a la funciónResetLastError() para poner a cero esta variable.

Ver también

Códigos de retorno del servidor comercial

De nuevo, esto es en mql5. Y lo necesito en mql4.
 
Vitaly Muzichenko:

Bueno, yo lo soy desde 1997)

Verás, hay un tic y con él una señal, y si se produce un error, hay que procesarlo. Se procesa y se consulta de nuevo, pero antes de la consulta se puede poner a cero la variable con el error, entonces en la siguiente consulta si hay un error, entrará en la variable de nuevo, pero si no hay error, será "0".

No es necesario poner a cero la variable, pero si hay un error, devolverá un nuevo valor. En cualquier caso, no debería interesarle el error que tuvo la última vez en el último tick, debería procesar sólo lo que tiene "ahora".

Desde 1997, ¡ya es hora! ) Probablemente la única persona que me entendía. Gracias.
 
Evgeniy Oshurkevich:
De nuevo, esto es en mql5. Y lo necesito en mql4.
En lo que respecta a esta función, no hay ninguna diferencia. Pero si es por principios, entonces lee F1.
 

Duplico mi pregunta en este hilo ya que en el hilo de mql5 no pude ayudar - nadie sabe la respuesta.

Tengo esta función y funciona en mi Expert Advisor/Script

double maxLot(double Percent, string symbol, ENUM_ORDER_TYPE action=ORDER_TYPE_BUY)
  {
   double One_Lot=0.0;
   double price=0.0;
   double volume=0.0;
   double MinLot=SymbolInfoDouble(symbol,SYMBOL_VOLUME_MIN);
   double Free=AccountInfoDouble(ACCOUNT_FREEMARGIN);
   double Step=SymbolInfoDouble(symbol,SYMBOL_VOLUME_STEP);
   if(action==ORDER_TYPE_BUY)price=SymbolInfoDouble(symbol,SYMBOL_ASK);
   if(action==ORDER_TYPE_SELL)price=SymbolInfoDouble(symbol,SYMBOL_BID);
   if(!OrderCalcMargin(action,symbol,1.0,price,One_Lot))return(MinLot);
   if(One_Lot!=0 && Step!=0)volume = MathFloor(Free*Percent/100.0/One_Lot/Step)*Step;
   if(volume!=0)return(volume);
   return(MinLot);
  }

Pregunta:¿Cómo obtener el lote máximo posible en un indicador,OrderCalcMargin no funciona en un indicador por alguna razón? Traté de usarOrderCalcMargin pero no funciona en mt4.

Gracias.

 

¿cómo hacerlo?

para que cuando

OnDeinit(REASON_CHARTCHANGE)

Continuar con normalidad sin reiniciar (ignorar esta causa por completo, es un panel de información con niveles)

 
trader781:

¿cómo hacerlo?

para que cuando

OnDeinit(REASON_CHARTCHANGE)

Continuar con normalidad sin reiniciar (ignorar esta causa por completo, es un panel de información con niveles)

No se puede.
 
Vitalie Postolache:
De ninguna manera.

Bueno, hay formas de evitarlo.

Me da pereza meter niveles en el código de cada herramienta de las 40 existentes.

Es más fácil hacerlo de forma automática y hacer clic en la TF con símbolos a su gusto.

Y al mismo tiempo, estoy buscando una manera de especificar los valores de muving de la TF superior en la inferior
 
trader781:

Bueno, hay formas de evitarlo.

Me da pereza meter niveles en el código de cada herramienta de las 40 existentes.

Es más fácil hacerlo automático y pulsar la TF con símbolos como quieras.

Y al mismo tiempo, estoy buscando una manera de especificar los valores de muving para la TF mayor
La configuración debe ser escrita en un archivo y la inite debe ser leída. No hay forma de evitar el deinit, no pide permiso.
 
Vitalie Postolache:
Escribir los ajustes en un archivo y leerlos en el init. No hay forma de evitar el deinit, no pide permiso.
¿Por qué no evitar la desinicialización escribiendo en un archivo, si es posible? Por ejemplo, en caso de desinicialización, se puede iniciar un arranque con los parámetros anteriores
 
trader781:
¿Por qué no evitar la desinicialización escribiendo en un archivo, si es posible? Por ejemplo, en caso de desinicialización, iniciar un arranque con los parámetros anteriores
¿No es eso lo que escribí arriba?