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

 
Artyom Trishkin:

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.

 
Karputov Vladimir:
¿Entiendes la propia definición de "operación asíncrona"? Si lo hace, no debería haber preguntas.
Lo entiendo muy bien. Por eso he preguntado. No tengo la intención de luchar contra la competencia de orinar contigo.
 

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

<br / translate="no"> Andrey Koldorkin:


Sergei Vladimirov:

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 "=".

 
Sí. Todo arreglado. Los errores han desaparecido. Gracias.
 

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!!!!

Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 6. (faq) - MQL4 форум - Страница 1041
Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 6. (faq) - MQL4 форум - Страница 1041
  • www.mql5.com
Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 6. (faq) - MQL4 форум - Страница 1041
 
Hola, estoy buscando un EA para mi cuenta de trading. He escrito un EA en MT5 que he querido utilizar para buscar automáticamente los patrones necesarios y abrir posiciones manualmente. Es decir, no hay funciones de negociación en el EA. Mi problema es que no puedo instalar este EA en un gráfico. No hay llamadas de indicadores en el EA. Todos los indicadores están escritos en el programa. Lo compilé y lo ejecuté en el probador de estrategias. No hubo problemas. Acabo de poner el EA en el gráfico y le he permitido operar en la pantalla, en la configuración y en la ventana del EA que aparece. En lugar de la cara sonriente en el gráfico, el icono del Asesor Experto aparece en el gráfico de precios y un círculo verde con un triángulo blanco en su interior. He probado este procedimiento varias veces y sigo obteniendo los mismos resultados. Cambié los períodos en el gráfico de precios, el mensaje de OnDeinit() aparece en el monitor, es decir, una vela se procesa en el programa y el trabajo se detiene.

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 !!!!!!

Razón de la queja: