[ARCHIVO]Cualquier pregunta de novato, para no saturar el foro. Profesionales, no lo dejéis pasar. No puedo ir a ningún sitio sin ti - 5. - página 188
![MQL5 - Lenguaje de estrategias comerciales para el terminal de cliente MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
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
Sí, ¿y qué?
Hay una serie de limitaciones cuando se trabaja en modo de visualización
¿Qué he hecho mal? !!!!
Se me ocurrió esta solución a mi problema
/* lo siento, he cambiado ligeramente el post - para que el Vinin sea legible */
¿Qué he hecho mal? !!!!
Se me ocurrió esta solución a mi problema
/* lo siento, he cambiado un poco el post - para que el Vinin sea legible */
significa: "si el tiempo de la última barra no es cero". Por lo tanto, siempre no es igual a cero.
Además, la variable
bool New_Bar;
se define dentro de la función start(), por lo que no será visible dentro de otras funciones. Además, la función Fun_New_Bar() que intentaste definir dentro del cuerpo de start(), no puedes hacerlo en MQL, todas las funciones deben ser declaradas a nivel de módulo global. La declaración de New_Bar también debería colocarse ahí.
Además, durante una ejecución de la función start() (si no está en bucle), no se puede definir la formación de la barra y luego esperar a la formación de la siguiente barra: start() por definición se llama y termina en cada tick (con matices, pero en general es así).
Aconsejo releer la ayuda y eliminar las lagunas en la ejecución del programa MQL, y ver un ejemplo de escritura de un programa en bucle, no en bucle también.
Gracias por su atención. ¿Qué botón debo pulsar para obtener el código en este formato?
SRC----------------------------\|/
--------------------------------------- V
Esta línea
significa: "si el tiempo de la última barra no es igual a cero". Por lo tanto, siempre no es igual a cero.
Gracias, pero no entiendo dónde está el "NO" en esta línea. La no igualdad se indica con el símbolo !==.
Lo que quería decir es que en cuanto aparece la hora de apertura de una nueva barra, es decir, aparece una nueva barra, se abre la orden.
Y este es efectivamente el código que abre una orden en la apertura de cada cinco barras
int start() { double Price=Open[0]+300*Point; double SL=Price-300*Point; double TP=Price+150*Point; if (Time[0]) int Ticket=OrderSend(Symbol(),OP_BUYSTOP,0.1,Price,3,SL,TP ); }
Decidí tomar lo que me pareció una ruta más sencilla.
No eliminar la orden pendiente - sino colocar la orden pendiente sólo si la vela de cinco minutos no ha terminado
Es decir, la orden pendiente debe colocarse sólo cuando se cumplan dos condiciones. Si se cumple la primera condición
if (Time[0])
- Lo he comprobado, el orden está establecido.
Cómo debo establecer la segunda condición, es decir, establecer una orden pendiente sólo si no han pasado aún 5 minutos. if (---------- && ?????????)