Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. En ninguna parte sin ti - 6. - página 768
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
Bueno, mi hora local es 1 hora más que la del servidor.
Entonces, ¿puede explicar qué es lo que confunde a estos valores?
Estos valores no tienen nada de confusos, son correctos, pero no es de eso de lo que estamos hablando.
El problema del viernes en particular no es relevante si tu hora local es X horas más larga que la del broker.
Pero imagina que en tu ordenador local no hay +1, sino -1 hora de diferencia con el broker.
Y existe esta simple condición:
En este caso:
1. el broker tendrá el primer tick del viernes, por ejemplo el de hoy, que tiene una hora de 2014.11.07 00:00
2. Tomar el número de segundos transcurridos desdeel 01.01.1970 00:00 hasta el tick en cuestión, es decir,2014.11.07 00:00
3. tomamos el número de segundos transcurridos desde el 01.01. 1970 00:00 hasta el06.11.2014 21:30 (es la fecha de ayer, porque tomamos la hora del PC local, que en el momento del tick no es viernes, sino jueves, que es el día 6, o para ser más precisos, 2014.11.06 23:00, la diferencia de 1 hora)
Voilà, el número de segundos en el punto 2 es mayor que en el punto 3.
Esto significa que el primer tick del viernes ejecutará la impresión especificada en el código, aunque si la funciónStringToTime() toma la fecha del servidor del broker, entonces todo funcionaría como estaba previsto, la impresión aparecería el viernes sólo después de que la hora supere las21:30
Hola.
Hay una tarea como esta. (no se puede adjuntar a una garrapata)
Si se activa una orden pendiente {entonces...}.
En mi EA, utilizo Terminal.mqh para calcular las órdenes.
Terminal // Mas_Tip[0] abierto Comprar
// si el número de órdenes de compraha aumentado en 1
si (Mas_Tip[0]+1)
{
función
}
Todo funciona. Pero se dispara en cada siguiente tic.
¿Cómo se puede fijar este caso a una garrapata? Y luego comparar el valor en el tick anterior y en el actual.
¿Puede traducir la línea resaltada a nuestro idioma? Lo que debería ser y lo que se obtiene al ejecutar esta línea...
// si el número de órdenes decompra ha aumentado en 1 entonces...
{
función, por ejemplo, abre o cierra otras órdenes...
}
No tiene por qué ser así si (Mas_Tip[0]+1) podemos hacerif (Mas_Tip[0] >Mas_Tip[1]) // si hay más órdenes de Compra que de Célula. Abrir una pendiente, por ejemplo.
La cuestión es que en el siguiente tick estos datos vuelven a ser ciertos.
// si el número de órdenes decompra ha aumentado en 1 entonces...
{
función, por ejemplo, abre o cierra otras órdenes...
}
si (Mas_Tip[0]+1)
En el paréntesis de if debería haber un bool, es decir, verdadero o falso.
Aquí es obviamente int. Es un número entero.
Por supuesto, verdadero es 1 y falso es 0 (si no me equivoco). Pero aún así no está bien. ¿Qué devuelveMas_Tip[0]?
si (Mas_Tip[0]+1)
en el paréntesis de if debe ser un bool, es decir, verdadero o falso.
Pero aquí es obviamente int. Es un número entero.
Por supuesto, verdadero es 1 y falso es 0 (si no me equivoco). Pero aún así no está bien. ¿Qué devuelveMas_Tip[0]?
Número de órdenes de compra abiertas.
// si el número de órdenes decompra ha aumentado en 1 entonces...
{
función, por ejemplo, abre o cierra otras órdenes...
}
No, eso es lo que quieres. En realidad no lo es. Hay algún valor en la matriz Mas_Tip[0], y si es mayor que cero, la condición if(Mas_Tip[0]) será verdadera. Y si añadimos 1 a este valor, siempre será cierto ya que el número de órdenes abiertas no puede ser igual a -1.
No, así es como lo quieres. De hecho, no lo es. Hay algún valor en la matriz Mas_Tip[0] y si es mayor que cero, la condición if(Mas_Tip[0]) ya será verdadera. Y si añadimos 1 a este valor, siempre será cierto ya que el número de órdenes abiertas no puede ser igual a -1.
Intenté hacerlo de esta manera
}
Resulta ser un evento único.
si (Mas_Tip[0]+1)
en el paréntesis de if debe ser un bool, es decir, verdadero o falso.
Pero aquí es obviamente int. Es un número entero.
Por supuesto, verdadero es 1 y falso es 0 (si no me equivoco). Pero aún así no está bien. ¿Qué devuelveMas_Tip[0]?
false es 0 y true si no es 0.
Prueba esta línea
El compilador puede advertir de una posible pérdida de precisión, pero funcionará.puedes descartarMas_Tip[0]
Cómo conseguir un evento. Se ha abierto un Buy.
puedes descartarMas_Tip[0]
Cómo conseguir un evento. Se ha abierto un Buy.