¿Es posible distinguir un objeto gráfico creado manualmente de un objeto creado por un indicador o EA?
En la función
OBJPROP_HIDDEN
Barrar el nombre de un objeto gráfico desde el menú del terminal "Gráficos" - "Objetos" - "Lista de objetos". El valor true permite ocultar un objeto innecesario de la lista. Por defecto se establece true para los objetos que muestran los eventos del calendario, el historial de operaciones, así comolos creados desde el programa MQL5. Para ver estos objetosgráficos y acceder a sus propiedades, haga clic en "Todos" en la ventana "Lista de objetos".
Все объекты, используемые в техническом анализе, имеют привязку на графиках по координатам цены и времени – трендовая линия, каналы, инструменты Фибоначчи и т.д. Но есть ряд вспомогательных объектов, предназначенных для улучшения интерфейса, которые имеют привязку к видимой всегда части графика (основное окно графика или подокна индикаторов...
Не следует путать между собой ордера из торговой истории и действующие отложенные ордера, которые отображаются на вкладке "Торговля" в панели "Инструменты". Список ордеров, которые были отменены или привели к проведению торговой операции, можно посмотреть в закладке "История" на панели "Инструменты" клиентского терминала. Функция...
Era necesario averiguar dentro de un mqh si algo fue llamado antes desde otro mqh. El mqh no es consciente de la presencia del otro. Uno de ellos puede estar dentro y otro no.
En definitiva, el problema es inusual (para mí). Lo resolvió de una manera bastante muleta.
void f1()
{
SetUserError(0);
}
void f2()
{
if(_LastError == ERR_USER_ERROR_FIRST)Print("f1() была вызвана.");
elsePrint("f1() не была вызвана");
}
voidOnStart()
{
f1();
f2();
}
Era necesario averiguar dentro de un mqh si algo fue llamado antes desde otro mqh. El mqh no es consciente de la presencia del otro. Uno de ellos puede estar dentro y otro no.
En definitiva, el problema es inusual (para mí). Lo resolvió de una manera bastante muleta.
Creo que es una práctica muy mala, pero funciona.
El uso de _LastError tiene un problema irresoluble, cuando se conectan bibliotecas de terceros, hay una probabilidad no nula de colisión de códigos de error de usuario. Como alternativa a mantener su propio lastError. Ya sea una variable global, envuelta en includeguard en todos los mqh, o una sola variable.
PS. La función Sleep() en MQL5 no es una redirección a la función win api ::Sleep(). Para ser más exactos, si el valor es inferior a 100, se trata de una redirección. Pero por encima de 100 es un bucle con el deslizamiento de win api dentro de él para que pueda ser interrumpido por IsStopped.
Hay un punto más sutil. Si los milisegundos <=0, añadimos 1. Es decir, nunca llamamos a ::Sleep(0).
Ya se ha olvidado. Cierto sólo para MT5. En MT4 Sleep(0) puede suspender el terminal.
La variante typedef pierde por un factor de tres. Me negué a usarlo donde es crucial. Por ejemplo, para TC el mismo OrdersTotal es llamado al menos una vez en cada pase del optimizador.
En el modo de depuración la situación se invierte. Por lo tanto, tiene sentido utilizar typedef en MT4 para la aceleración.
¿Es posible distinguir un objeto gráfico creado manualmente de un objeto creado por un indicador o EA?
En la función
OBJPROP_HIDDEN
Barrar el nombre de un objeto gráfico desde el menú del terminal "Gráficos" - "Objetos" - "Lista de objetos". El valor true permite ocultar un objeto innecesario de la lista. Por defecto se establece true para los objetos que muestran los eventos del calendario, el historial de operaciones, así comolos creados desde el programa MQL5. Para ver estos objetosgráficos y acceder a sus propiedades, haga clic en "Todos" en la ventana "Lista de objetos".
bool
Foro sobre comercio, sistemas de comercio automatizados y prueba de estrategias de comercio
Bibliotecas: Experto
fxsaber, 2020.10.09 04:55
He resaltado un lugar importante en el código. Sin ella no hay aplicación del patrón hasta el final del guión.
Foro sobre trading, sistemas de trading automatizados y pruebas de estrategias de trading
MT5 y Speed en acción
Anton, 2020.10.08 11:00
Diferente significado y diferente mecanismo de ejecución. 0 - evento en cola de la carta "propia". -1 - evento en su propia cola.
Al final de la semana mi cabeza ya no está bien.
Tengo un ticket de una posición abierta en una cobertura en mt5 por ejemplo 123456
Quiero calcular un beneficio después de cerrar la posición, y no puedo hacerlo.
Lo hago, pero sólo recibo comisión...
¿Cómo puedo obtener el beneficio de una posición cerrada con un ticket?
Intente seleccionar mejor las operaciones utilizando HistorySelectByPosition().
Era necesario averiguar dentro de un mqh si algo fue llamado antes desde otro mqh. El mqh no es consciente de la presencia del otro. Uno de ellos puede estar dentro y otro no.
En definitiva, el problema es inusual (para mí). Lo resolvió de una manera bastante muleta.
Creo que es una práctica muy mala, pero funciona.
Era necesario averiguar dentro de un mqh si algo fue llamado antes desde otro mqh. El mqh no es consciente de la presencia del otro. Uno de ellos puede estar dentro y otro no.
En definitiva, el problema es inusual (para mí). Lo resolvió de una manera bastante muleta.
Creo que es una práctica muy mala, pero funciona.
Foro sobre trading, sistemas de trading automatizados y pruebas de estrategias de trading
MT5 y Speed en acción
fxsaber, 2020.10.20 12:28
Total intermedio para una máquina de descarga rápida.
La relevancia de los datos de precios es muy ambigua para los que operan con barras e indicadores.
Las garrapatas y los volteadores son difíciles de ser en tiempo real.
Foro sobre trading, sistemas de trading automatizados y pruebas de estrategias de trading
Peculiaridades de mql5, consejos y trucos
Slava, 2018.09.20 15:40
PS. La función Sleep() en MQL5 no es una redirección a la función win api ::Sleep(). Para ser más exactos, si el valor es inferior a 100, se trata de una redirección. Pero por encima de 100 es un bucle con el deslizamiento de win api dentro de él para que pueda ser interrumpido por IsStopped.
Hay un punto más sutil. Si los milisegundos <=0, añadimos 1. Es decir, nunca llamamos a ::Sleep(0).
Ya se ha olvidado. Cierto sólo para MT5. En MT4 Sleep(0) puede suspender el terminal.
Pero he decidido comparar primero el rendimiento con un ejemplo sencillo.
El resultado.
La variante typedef pierde por un factor de tres. Me negué a usarlo donde es crucial. Por ejemplo, para TC el mismo OrdersTotal es llamado al menos una vez en cada pase del optimizador.
En el modo de depuración la situación se invierte. Por lo tanto, tiene sentido utilizar typedef en MT4 para la aceleración.