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
La forma más fácil:
static datetime tlastbar=0;
datetime tnewbar=iTime(NULL,PERIOD_CURRENT,0);
bool isnewbar=tnewbar!=tlastbar;
tlastbar=tnewbar;
Aquí está mi versión final.
De hecho, estoy un poco preocupado porque es muy fácil.
Alain: Estaría bien que emitieras la bendición.
// -----------------------------------------------------------------------
if(MathMod(TimeCurrent(),PeriodSeconds()) < currPeriodProgress) iNewBar = true;bool NewBar(void)
{
bool iNewBar = false;
static double currPeriodProgress = 0;
currPeriodProgress = MathMod(TimeCurrent(),PeriodSeconds());
return(iNewBar);
}
// ------------------------------------------------------------------------
void OnTick()
{
if(NewBar()) PlaySound("tick.wav");
Saludos desde Colonia
Willbur
El problema es que sólo se puede utilizar desde OnTick(). Desde otros manejadores de eventos nunca estás seguro de si TimeCurrent() está relacionado con el símbolo que quieres.
Y te sugiero que nunca hagas el mismo cálculo dos veces :
Que yo sepa el tema es para mql5. Tu código es sólo para mql4.
He utilizado estos en MQL4
¿Qué quieres decir con eso? Es sólo un recorte y se puede incluir donde uno quiera, por ejemplo dentro de su función NewBar(). Y, en mi opinión, es la solución más sencilla, rápida y fiable. Yo incluí esto en un derivado de la clase CSymbolInfo para todos los timeframes por separado y funciona perfectamente.
No hay función iTime() en mql5.
MT5, ¿en serio? Pero MQL5 no es solo MT5, eso es al menos lo que yo entendí siempre, porque MT4 usa el compilador MQL5. Pero de hecho no sabía eso, yo uso principalmente MT4. De todos modos, gracias por la información sobre la restricción.
MQL4 iTime() es fácil y comprensible para los comerciantes como lo es con la mayoría de MQL4 otras funciones.
MQL5 es diferente, se necesita un título en ciencias de la computación para codificar eso, y eso es lo que pone a la mayoría de la gente.
Este es un ejemplo que encontré la semana pasada, cuando quise iniciar y convertir mis EA's de MT4 a MT5 y la solución que encontré.
No, mql4 es para MT4, mql5 es para MT5. Tienen un subconjunto de funciones en común, pero son 2 lenguajes diferentes.
El lenguaje es el mismo pero tienen un pequeño subconjunto de funciones que no son comunes ;) De todos modos, probablemente tengas razón con esta definición. MQ hizo mucho para generar confusión en este punto.
MT5, ¿en serio? Pero MQL5 no es solo MT5, eso es al menos lo que yo entendí siempre, porque MT4 usa el compilador MQL5. Pero de hecho no sabía eso, yo uso principalmente MT4. De todos modos, gracias por la información sobre la restricción.