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
De vez en cuando borro todas las órdenes abiertas para que nuestros amigos de MT4 no se molesten.
usted obtendrá este problema en las pruebas de espalda, pero esto no es un problema de la secuencia de comandos ... pero un problema de backtesting MT4.
Si continúa, por favor, hágamelo saber o envíeme algunos informes que muestran el problema ...
gracias y reagrds,
hugues
El asesor está creando la rejilla con mi comentario dado "GridEURUSD". Este comentario se mantiene en el campo de comentarios mientras la orden está en espera. Si la orden se activa, el comentario cambia a "activate/auto". Después de todo, está claro que este comportamiento conduce al problema descrito.
Estoy operando con Alpari. Ellos están apoyando MT4 en las cuentas de demostración
Comprobaré si puedo evitar este comportamiento, es decir, utilizar la magia de la orden como identificador para la rejilla, y les comunicaré los resultados.
Mientras probaba esto, también he realizado modificaciones en el script de limpieza de la rejilla. He añadido la funcionalidad de cerrar las órdenes abiertas también. Lamentablemente, si intento cerrar una orden abierta, obtengo el error 129, que significa Orden bloqueada. Pero borra todas las órdenes pendientes para la rejilla dada.
cori
¡¡avisame si funciona y usare la magia.. ya que no sabia que el broker hace cosas raras como esa!!
gracias y saludos,
hugues
He cambiado el gridMaker para usar el OrderMagicNumber en lugar del comentario. También he hecho alguna pequeña modificación sobre la construcción del comentario.
Aquí está el resultado.
con saludos, cori
como ya había hecho algunos cambios yo mismo, integré tus cambios en la nueva versión.
Hice una pequeña variación: para mantener mis cuadrículas actuales activas, puse un test en magic OR gridname...
¿puedes comprobar si lo hice correctamente?
parece estar bien. Pero deberías definir el GridName como externo, lo cual cambié, porque no lo necesitaba como parámetro.
saludos, cori
Puede cambiar la línea:
if (MathAbs( OrderOpenPrice() - atRate ) < inRange) // no busca el precio exacto sino la proximidad del precio (menos que el tamaño de la cuadrícula)
to
if (MathAbs( OrderOpenPrice() - atRate ) < (inRange*0.9)) // no busque el precio exacto sino la proximidad del precio (menos que el tamaño de la cuadrícula) - agregó 0.9 debido a los errores de pont flotante
y esto corrige el problema.
Disculpen las molestias...
hugues
¿Este problema ya existe?
Encontré algo similar en el viejo MQL2.
La forma realmente seguro para ir alrededor de este problema es hacer algo como:
intOOP = MathRound( OrdeOpenPrice() / Point );
para todas sus variables dobles. Entonces tienes todas las variables int directas que son comparables sin fallos.
Es un poco más de escribir para mantenerlo claro y comprensible, pero es menos defectuoso.
Con saludos,
cori
saludos,
hugues
1) cambiado la lógica para UseMACD, wantLongs, wantShorts. Anteriormente, si useMACD estaba establecido, el EA tomaba largos y cortos, independientemente de las banderas wantLongs y wantShorts. Ahora, useMACD no anulará estas banderas, por lo que puede ser largo sólo con useMACD o corto sólo.
2) He añadido una comprobación adicional para asegurarme de que no hay órdenes abiertas en el lado equivocado de la EMA si la limitEMA34 está activada. Lo que solía pasar es que las órdenes estaban bien colocadas por encima o por debajo de la EMA pero después de unas horas la EMA se movía.. así que había órdenes a ambos lados de la EMA.
3) Parece que hay un error en la sentencia switch en OrderType().. no estoy seguro de lo que es pero realmente se comporta de forma extraña. Simplemente he eliminado las sentencias switch y las he sustituido por "if"... no me gusta pero funciona.
4) Hice el período de EMA variable ... agradable para backtesting..
También tengo algunos scripts complementarios si alguien quiere:
1) para eliminar las órdenes abiertas no cumplidas para un par
2) para eliminar todas las órdenes abiertas para todos los pares de una sola vez
3) para cerrar todas las posiciones y eliminar las órdenes abiertas.
4) para obtener algunas estadísticas simples sobre el comportamiento de la red a partir de las posiciones abiertas y el historial.
Aquí está el código de la V1.08: