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
Gracias onewithzachy,
Primero creo que tienes un pequeño error con:
for(int cnt = OrdersTotal() -1 ; cnt >= 0; cnt--)
Tienes que añadir la corrección en verde y en negrita.
Pero, no entiendo en qué nos puede ayudar la siguiente línea
#include "..\Nbibliotecas\Nstdlib.mq4"
Gracias.
Tienes razón con lo de la cuenta, sin embargo, si lo escribimos como yo, el OrderSelect() devolverá false, y el bucle for continuará con la siguiente cuenta.
Ese include imprimirá el error en este código ...
.. para que sepamos por qué tu EA no cierra ninguna orden :(.
También puedes escribir ese include así ...
#include <stdlib.mqh>
Hay un ejemplo en la carpeta de scripts del MetaEditor titulado trade.mq4.
Supongo que sabes dónde poner el include, ¿verdad? Póngalo en la parte superior de su EA (al igual que la variable global o al igual que el trade.mq4).
El stdlib.mq4 se encuentra en MetaEditor > Ventana del Navegador (Ctrl + D) > pestaña de archivos > carpeta de bibliotecas > stdlib.mq4.
Vaya, espero que no te importe que me haya explayado, porque no sé si ya lo sabes o no lo sabes :)
Tienes razón con lo de la cuenta, sin embargo, si lo escribimos como yo, el OrderSelect() devolverá false, y el bucle for continuará con la siguiente cuenta.
Ese include imprimirá el error en este código ...
.. para que sepamos por qué tu EA no cierra ninguna orden :(.
También puedes escribir ese include así ...
Hay un ejemplo en la carpeta de scripts del MetaEditor titulado trade.mq4.
Supongo que sabes dónde poner el include, ¿verdad? Póngalo en la parte superior de su EA (al igual que la variable global o al igual que el trade.mq4).
El stdlib.mq4 se encuentra en MetaEditor > Ventana del Navegador (Ctrl + D) > pestaña de archivos > carpeta de bibliotecas > stdlib.mq4.
Vaya, espero que no te moleste que haya entrado en detalles, porque no sé si ya lo sabes o no lo sabes :)
Gracias onewithzachy,
Hice lo que me sugeriste, y espero la stuación correcta. Voy a actualizar.
Gracias onewithzachy,
Hice lo que me sugeriste, y espero la stuación correcta. Voy a actualizar.
Mmm...., no soy un gran fan de las pruebas de espalda, sin embargo, RaptorUK sugerir en otro hilo(haga clic aquí), que podemos depurar nuestro código utilizando backtesting.
El EA es multipares, por lo que el backtesting es imposible.
De todos modos, puedo obtener la situación pertinente muy rápidamente. Y ya tengo resultados. Voy a actualizar ..
Gracias
El EA es multipares, por lo que el backtesting es imposible.
Gracias Raptor,
Me he dado cuenta de que el ORDERSELECT es una variable bool, y a veces el MT4 no consigue
hacerlo. Por eso onewithzachy recomendó hacerlo:
for(int cnt=0; cnt<OrdersTotal(); cnt++)
{
if(OrderSelect (cnt,SELECT_BY_POS,MODE_TRADES) == true &&
OrderSymbol()==Pair &&
OrderType()==OP_BUY)
{
// código para cerrar
}
}
Mi pregunta es: si el ORDERSELECT es falso como puedo hacer el LOOP "cnt" de nuevo, sin que se pierda...?
Espero que me entiendan.
Y.
Gracias Raptor,
Me he dado cuenta de que el ORDERSELECT es una variable bool, y a veces el MT4 no consigue
hacerlo. Por eso onewithzachy recomendó hacerlo:
for(int cnt=0; cnt<OrdersTotal(); cnt++ )
Mi pregunta es: si el ORDERSELECT es falso ¿cómo puedo hacer el LOOP "cnt" de nuevo, sin que se pierda...?
Espero que me entiendan.
Y.
Si estás cerrando Órdenes debes contar hacia abajo... NO hacia arriba.
Lo siento Raptor, acabo de hacer un Copy_paste de un post anterior, pero lo he cambiado dentro de mi código.
De todos modos, ¿tiene usted alguna idea sobre mi pregunta previa?
Lo siento Raptor, acabo de hacer un Copy_paste de un post anterior, pero lo cambié dentro de mi código.
De todos modos, ¿tienes alguna idea sobre mi pre pregunta?
Muestra tu código y podré opinar.
Rap, son 4016 líneas de código....
De todos modos, mi pregunta es técnica. Una vez aprendí FORTRAN, y allí tenías números para las líneas de código deseadas, así que podías hacer
"GO to 120", y el código volvía a esa línea.
Aquí si Orderselect es FALSE cómo el EA puede volver a la línea de código: for(int cnt=OrdersTotal(); cnt > 0; cnt-- )
???