Preguntas de los principiantes MQL5 MT5 MetaTrader 5 - página 571
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
Ya hubo una vez una pregunta como ésta:
Alexey Viktorov:
lote = (valor_absoluto(beneficio_orden) + beneficio deseado) / (tamaño_estándar_contrato * TR * punto)
Gracias, Artyom Trishkin.
Gracias, Alexey Viktorov.
¿Entiendes la propia definición de "operación asíncrona"? Si lo hace, no debería haber preguntas.
Colegas, ayuden aun programador novato.
Traté de hacer un código de la función personalizada, de modo que cuando se establece el tiempo en la configuración en el formato habitual "13:45" para tres sesiones de tiempo, mi función devolverá verdadero o falso. La idea era insertar primero la función en Expert. Comprobaría el valor y, si es cierto, podríamos negociar y seguir adelante.
Todo parecía ir bien, todos los parámetros devueltos se comprobaban con Alert, por lo que todo estaba claro en todas las etapas, pero al final me di cuenta de que debía haber declarado mal en la función Start, porque generaba el error "cuenta de parámetros errónea".
El código es largo, te daré lo más destacado:
--------------------------------
void OnTick()
{
bool TradingAllowed = false;
TradeTimeAllowed (TradingAllowed);
if (TradingAllowed = true) { Alerta ("Comprar 1 lote");}
si no { Alerta ("El comercio no está permitido"); }
}
//+------------------------------------------------------------------+
bool TradeTimeAllowed (string TS1, string TE1, string TS2, string TE2, string TS3, string TE3) //hay una función propia. La he probado insertando en OnTick a través de Alert. La salida es verdadera o falsa.
{ ....................}
---------------------
Y el segundo problema está en la propia función al final.
Ahora está mal colocado:
if (Trade_Session_1 = true) TradeTime_Ok = true;
si (Trade_Session_2 = true) TradeTime_Ok = true;
si (Trade_Session_3 = true) TradeTime_Ok = true;
return(TradeTime_Ok);
// es decir, el problema es "quién es el último, quién es el siguiente". Si el primer punto es verdadero o el segundo es verdadero, y el tercero es falso, recordará falso. Pero según mi idea, si al menos uno de ellos es verdadero, el valor final sigue siendo verdadero.
Traté de ponerlo de esta manera:
if (Trade_Session_1 = true || Trade_Session_2 = true || Trade_Session_3 = true) TradeTime_Ok = true; // pero escribe el error así. No sé qué es lo que no le gusta.
Un buen consejo, por favor.
El primer problema se resolvió con la ayuda de las amables personas del hilo vecino. La función se llama correctamente y produce el valor requerido.
El segundo problema sigue existiendo:
Y el segundo problema está en la propia función al final.
Ahora está escrito incorrectamente:
if (Trade_Session_1 = true) TradeTime_Ok = true;
si (Trade_Session_2 = true) TradeTime_Ok = true;
si (Trade_Session_3 = true) TradeTime_Ok = true;
return(TradeTime_Ok);
// es decir, el problema es "quién es el último, quién es el siguiente". Si el primer punto es verdadero o el segundo es verdadero, y el tercero es falso, recordará falso. Pero según mi idea, si al menos uno de ellos es verdadero, el valor final sigue siendo verdadero.
Traté de ponerlo de esta manera:
if (Trade_Session_1 = true || Trade_Session_2 = true || Trade_Session_3 = true) TradeTime_Ok = true; // pero escribe el error así. No sé qué es lo que no le gusta.
Un buen consejo, por favor.
Transferido de
Andrey Koldorkin:Colegas, ayuda para un programador novato.
Traté de improvisar un código para que una función personalizada devolviera true o false para tres sesiones de tiempo, cuando estableciera la hora en la configuración en el formato familiar "13:45". La idea era insertar primero la función en Expert. Comprobaría el valor y, si es cierto, podríamos negociar y seguir adelante.
Todo parecía ir bien, todos los parámetros devueltos se comprobaban con Alert, por lo que todo estaba claro en todas las etapas, pero al final me di cuenta de que debía haber declarado mal en la función Start, porque generaba el error "cuenta de parámetros errónea".
El código es largo, te daré lo más destacado:
--------------------------------
void OnTick()
{
bool TradingAllowed = false;
TradeTimeAllowed (TradingAllowed);
if (TradingAllowed = true) { Alerta ("Comprar 1 lote");}
si no { Alerta ("El comercio no está permitido"); }
}
//+------------------------------------------------------------------+
bool TradeTimeAllowed (string TS1, string TE1, string TS2, string TE2, string TS3, string TE3) //hay una función. Lo he comprobado insertando en OnTick a través de Alert. Produce verdadero o falso.
{ ....................}
---------------------
Y el segundo problema está en la propia función al final.
Ahora está mal colocado:
if (Trade_Session_1 = true) TradeTime_Ok = true;
si (Trade_Session_2 = true) TradeTime_Ok = true;
si (Trade_Session_3 = true) TradeTime_Ok = true;
return(TradeTime_Ok);
// es decir, el problema es "quién es el último, quién es el siguiente". Si el primer punto es verdadero o el segundo es verdadero, y el tercero es falso, recordará falso. Pero según mi idea, si al menos uno de ellos es verdadero, el valor final sigue siendo verdadero.
Traté de ponerlo de esta manera:
if (Trade_Session_1 = true || Trade_Session_2 = true || Trade_Session_3 = true) TradeTime_Ok = true; // pero escribe el error así. No sé qué es lo que no le gusta.
Por favor, ayúdame.
Transferido
1) La función requiere 6 parámetros de cadena y usted la llama con un parámetro booleano. 2) El signo de igualdad es "==", no "=".
Transferido de
LeonidB:¡Ayude a resolver un problema!
La configuración de la categoría de noticias no se guarda. Restablecer la configuración después de reiniciar el terminal. Reinstalar no ayuda, ejecutar como administrador no ayuda. Windpws 10. He encontrado todos los archivos responsables de la configuración, las fechas de los cambios siempre coinciden con la fecha de cierre del terminal, es decir, los archivos se sobrescriben. Según tengo entendido, los siguientes archivos son responsables de la configuración: terminal.ini, settings.ini, hotkeys.ini, common.ini (ubicados en la carpeta config), news.dat (ubicado en la carpeta news).
Además, no se guarda la siguiente configuración: Mostrar - Última línea de precio. Este punto no es crítico frente a los ajustes de las noticias, pero creo que son eslabones de la misma cadena.
Buenas tardes a todos, publicado en cuatro, espero tener noticias pronto.... Chicos, por favor, miren lo que está mal. Parece ser el código del indicador en dos líneas, pero no quiere funcionar en tiempo real :-(
Aquí hay un enlace a un post con tres fotos....
https://forum.mql4.com/ru/56236/page1041
¡¡¡¡Gracias!!!!
Eché un vistazo al cuaderno de bitácora:
- Uno de los intentos de instalar un EA dio como resultado un mensaje de cambio de perfil;
- En todos los demás intentos el EA se carga sin problemas.
Solía trabajar con Perfiles: aumentaba el número de Perfiles, establecía diferentes gráficos en cada Perfil. Si había algo mal ahí, por desgracia, no lo sé. No sé qué debe estar roto para que el programa dé un mensaje de cambio de perfil. Aunque es posible que el fallo se deba a alguna otra razón. No me queda claro.
Para probar, hoy he creado un nuevo EA (plantilla) y no he escrito nada en las funciones OnInit(), OnDeinit(const int reason), OnTick() y he intentado poner este EA en el gráfico y permitir la negociación.
Tengo la misma situación que antes.
Por favor, ayúdenme a entender esta situación. Gracias !!!!!!