Cualquier pregunta de los recién llegados sobre MQL4 y MQL5, ayuda y discusión sobre algoritmos y códigos - página 502
![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
La función recorre y selecciona la más reciente por tiempo, es decir, la última
A continuación, tenemos un seleccionado, y lo sustituimos en la funcióniBarShift(sym, tf, oot ,true);
La función devuelve el número de barra por tiempo. Eso es todo.
Lamentablemente no puedo comprobarlo, pero cuando lo usé, funcionó perfectamente, así como todas las funciones publicadas aquí por I. Kim
Escribe el error indicandoif( iOpen[0] != time_open )'iOpen' - undeclared identifie
He escrito algo un poco mal, un poco en la otra dirección del pensamiento. Cambia iOpen[0] por Open[0]. Corregido. Sin embargo, para decirlo de forma sencilla. Cuando abro un bar, recuerdo la hora de apertura del bar y no hay pedidos en este bar.
También está escrito en la descripción de la función que
La selección de las posiciones a tener en cuenta se establece mediante parámetros externos:
También está escrito en la descripción de la función que
La selección de las posiciones a tener en cuenta se establece mediante parámetros externos:
Suficiente. En los parámetros externos puedes introducir los valores que necesites: MagicNumber, qué posiciones buscas, si quieres COMPRA(0) y VENTA(1) - entonces escribe "-1".
He escrito algo un poco mal, un poco en la otra dirección del pensamiento. Cambia iOpen[0] por Open[0]. Corregido. Sin embargo, para decirlo de forma sencilla. Cuando abra una barra, recordará la hora de apertura de la barra y no se abrirán órdenes en esta barra.
se abren muchas órdenes y parece que la condición if(NumberOfBarOpenLastPos(Symbol(),0,-1,-1)>0) se cumple antes de abrir una no orden ya que NumberOfBarOpenLastPos devuelve -1
se abren muchas órdenes, y parece que la condición if(NumberOfBarOpenLastPos(Symbol(),0,-1,-1)>0) se cumple antes de que se abra una no-orden, porque NumberOfBarOpenLastPos devuelve -1
Si busca órdenes, entonces debe utilizar la función en su versión completa, es decir, con la posibilidad de buscar por órdenes, no sólo por posiciones:
Esto es suficiente. En los parámetros externos se pueden introducir los valores requeridos: Majik, qué posiciones se buscan, quizás sólo COMPRA, si se necesita COMPRA(0) y VENTA(1) - entonces escribimos "-1".
cuando inicio en el probador, no hay órdenes abiertas, tal vez por eso se devuelve -1, por lo que la condición if(NumberOfBarOpenLastPos(Symbol(),0,-1,-1)>0) no se cumple?
Al iniciar en el probador, no hay órdenes abiertas, ¿tal vez por eso se devuelve -1 y por lo tanto no se cumple la condición if(NumberOfBarOpenLastPos(Symbol(),0,-1,-1)>0)?
Lo comprobaré ahora.
Si busca órdenes, entonces debe utilizar la función en su versión completa, es decir, con la posibilidad de buscar por órdenes, no sólo por posiciones:
sigue devolviendo -1
sigue devolviendo -1
Funciona perfectamente.
De dos posiciones ha elegido la última, que está en la barra 11, como se puede ver en la captura de pantalla:
Comprueba el código: