[¡AVISO CERRADO!] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen. No puedo ir a ningún sitio sin ti. - página 346
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
Al principio del guión se escribe
#property show_inputs
extern double Lote=0.1
Después de eso, cuando el script se adjunte a la ventana de símbolos, aparecerá un cuadro de diálogo.
Lo entiendo. Pero eso no es lo que necesito. Con estos comandos aparecerá un cuadro de diálogo - con la configuración general de EA y la configuración actual del script, y pregunté si no existe una función de este tipo, que podría utilizarse para la salida de DO SOLO con la configuración del script a la vez.
Lo entiendo. Pero eso no es lo que necesito. Con estos comandos aparecerá un cuadro de diálogo - con la configuración general de EA y la configuración actual del script, y pregunté si no existe una función de este tipo, que podría utilizarse para la salida de DO SOLO con la configuración del script a la vez.
Sólo el MetaEditor entonces.
¿Podría indicarme cómo cerrar todas las órdenes abiertas a una hora determinada?
if (HourTime[0]=12)_CloseAllOrder
Véase la función _CloseAllOrder en la página anterior o en la anterior
if (HourTime[0]=12)_CloseAllOrder
para la función _CloseAllOrder propiamente dicha, véase la última página o la anterior
Gracias, la función es muy útil
Estimados expertos,
Por favor, indique cuál es la razón de este resultado:
gist:
int start()
{
//----
double c;
int q;
c=0.3/0.1;
q=c;
Print("c=",c," q=",q);
//----
return(0);
}
imprime "c=3 q=2"
pregunta: ¿cómo consigue dos de tres?
el caso es que si sustituyo 0,3 por 0,4 o por cualquier otra fracción, se resuelve el problema como estaba previsto
por ejemplo
{
//----
double c,v;
int q,w;
c=0.3/0.1;
v=0.4/0.1;
q=c;
w=v;
Print("c=",c," q=",q," v=",v," w=",w);
//----
return(0);
}
"c=3 q=2 v=4 w=4"
Pregunta: ¿cómo consigue dos de tres?
intentar compilar, quizás mi ordenador no sabe contar (una tontería...)
Estimados expertos,
Por favor, indique cuál es la razón de este resultado:
gist:
int start()
{
//----
double c;
int q;
c=0.3/0.1;
q=c;
Print("c=",c," q=",q);
//----
return(0);
}
imprime "c=3 q=2"
pregunta: ¿cómo consigue dos de tres?
el caso es que si sustituyo 0,3 por 0,4 o por cualquier otra fracción, se resuelve el problema como estaba previsto
por ejemplo
{
//----
double c,v;
int q,w;
c=0.3/0.1;
v=0.4/0.1;
q=c;
w=v;
Print("c=",c," q=",q," v=",v," w=",w);
//----
return(0);
}
"c=3 q=2 v=4 w=4"
Pregunta: ¿cómo consigue dos de tres?
Intenta compilarlo, quizás mi ordenador no sabe calcular (es una tontería...)
No es una tontería, sólo un error de redondeo común cuando se trabaja con números reales.
En el primer caso, por ejemplo, c es igual a 2,999999999, la salida se redondea, es decir, 3, pero al asignar a un tipo entero se descarta la parte fraccionaria.
Esto no es una tontería, son errores de redondeo comunes cuando se trata de números reales.
En el primer caso, por ejemplo, c es igual a 2,999999999...
¿cómo es posible que 2,99999999 sea 2,9999? 0,3/0,1=3 exactamente, no es que esté dividiendo 1 entre 3 y deba ser 0,33333...
pero cuando se asigna a un tipo entero, se descarta la parte fraccionaria.
A un tipo entero se le asigna un valor c, c obviamente es igual a tres, sin ninguna parte fraccionaria. No hay nada que descartar...
La respuesta es 100% errónea.
¿alguna otra opción?
No veo cómo 2.9999 puede ser 2.9999? 0,3/0,1=3 incluso, no es que esté dividiendo 1 entre 3 y deba ser 0,33333...
Esto sólo parece ser exactamente, mientras que el último bit puede tomar diferentes valores. Es decir, 2,9999, 3 o 3,00000001
Para evitar estos malentendidos, MQL dispone de la función NormalizeDouble()