Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. En ninguna parte sin ti - 6. - página 1127
Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
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
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".
De nuevo, esto es en mql5. Y lo necesito en mql4.
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 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)
¿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)
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 inferiorBueno, 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 mayorEscribir 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, iniciar un arranque con los parámetros anteriores