[¡Archivo!] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. No puedo ir a ningún sitio sin ti - 4. - página 19
Buenos días a todos. Necesito un robot que lleve la cuenta de las operaciones y cree una orden pendiente al cierre por takeprofit para sustituir una cerrada con los mismos parámetros que una cerrada. ¿Puede implantarse un robot de este tipo? Nunca he utilizado uno antes. Si tienes uno en alguna parte, por favor dame un enlace. Gracias de antemano.
Me pregunto cómo optimizar el código para acelerar el búho en el probador. Por favor, puedes decirme cómo ejecutar el bucle más rápido, así:
for (int i = OrdersTotal() - 1; i >= 0; i--) {
if (!OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) continue;
if (OrderSymbol() != Symbol()) continue;
if (OrderMagicNumber() != Magic) continue;
// работаем с ордерами
}
o así:
for (int i = OrdersTotal() - 1; i >= 0; i--) {
if (OrderSelect(i, SELECT_BY_POS)) {
if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic) {
// работаем с ордерами
}
}
}
T-G: Anteriormente, el cierre del beneficio estaba en la moneda del depósito y se contaba así ¿cómo convertir esta fórmula en puntos?
Esta fórmula no tiene sentido cambiarla, es más fácil encontrar la orden necesaria (OrderSelect()) y calcular (OrderOpenPrice()-Bid)/Point ( o OrderOpenPrice()-Ask) y obtener cuántos pips tiene ya la orden
T-G:¿y hay algún otro consejo para acelerar el EA?
En mql4 hay una comprobación completa de las condiciones, es decir, toda la expresión que esté entre paréntesis if() se comprobará hasta el final, por lo que a veces es razonable dividir las condiciones complejas en varias condiciones:
if(a>b && c>d) puede sustituirse por if(a>b){ if (c>d)..... }
Así que la primera variante del código que propones funcionará un poco más rápido, aunque desde la práctica - la enumeración de pedidos no carga mucho el procesador, las operaciones matemáticas cargan mucho el procesador, tiene sentido buscar aumentar el rendimiento del código - no todos los cálculos tienen que ser realizados cada tick
En mql4 hay una comprobación completa de las condiciones, es decir, toda la expresión que esté entre paréntesis if() se comprobará hasta el final, por lo que a veces es razonable dividir las condiciones complejas en varias condiciones:
if(a>b && c>d) puede sustituirse por if(a>b){ if (c>d)..... }
Así que la primera variante del código que sugieres funcionará un poco más rápido, aunque desde la práctica - la búsqueda de órdenes no carga mucho el procesador, las operaciones matemáticas cargan mucho el procesador, tiene sentido buscar aumentar el rendimiento del código - no todos los cálculos necesitan ser realizados cada tick
Intente comprobarlo usted mismo con GetTickCount(), cree un script y ejecute la normalización una vez 10 000 veces y ejecútela dos veces 10 000 veces, entonces podrá evaluar la utilidad que tiene para usted buscar secciones de código donde la normalización se ejecuta a menudo. Acerca de Print() me resulta incluso difícil de responder - ¿va a dar salida a Pronta cada tick? Por lo general, las operaciones de salida ralentizan el Asesor Experto significativamente, los scripts con Comment() se ejecutan 10 veces más que sin salida, pero de nuevo, la pregunta es acerca de la conveniencia - si usted tiene que, usted tiene que.
Ya veo. gracias. pero dime Imprime por ejemplo después de cerrar un pedido:
o la misma normalización en las condiciones:
ralentiza significativamente la ejecución de los EAs?
La operación Print() es una operación con un archivo (en este caso, un archivo de registro). Y estas operaciones son MUY lentas (comparadas con el procesamiento de datos desde la memoria). CONCLUSIÓN: Crear una variable que se inicialice en la función init()
E imprimir por condición de esta variable (esta es UNA opción).
El ejemplo de normalización que has puesto no tiene sentido, si partimos de los objetivos planteados (optimización del código). La normalización es OBLIGATORIA de acuerdo con los requisitos técnicos del servidor de corretaje, para ejecutar una orden de comercio SÓLO para el precio y el STOP.
Hola, cuando un Asesor Experto abre una posición, ¿debo escribir en su código un indicador (condición) en base a las señales del que abre una orden o debo escribir en el Asesor Experto la ruta a la ventana de un instrumento financiero con indicadores instalados?
Buenas tardes. Si alguien sabe dónde se puede descargar un indicador de ZIGZAG que marque el punto en el que aparece un nuevo rayo (por ejemplo, en un color diferente). Si es que hay uno...
¿cómo convertir esta fórmula en puntos?
Me pregunto cómo optimizar el código para acelerar el búho en el probador. Por favor, puedes decirme cómo ejecutar el bucle más rápido, así:
o así:
¿y algún otro consejo para acelerar el EA?
¿cómo convertir esta fórmula en puntos?
En mql4 hay una comprobación completa de las condiciones, es decir, toda la expresión que esté entre paréntesis if() se comprobará hasta el final, por lo que a veces es razonable dividir las condiciones complejas en varias condiciones:
if(a>b && c>d) puede sustituirse por if(a>b){ if (c>d)..... }
Así que la primera variante del código que propones funcionará un poco más rápido, aunque desde la práctica - la enumeración de pedidos no carga mucho el procesador, las operaciones matemáticas cargan mucho el procesador, tiene sentido buscar aumentar el rendimiento del código - no todos los cálculos tienen que ser realizados cada tick
En mql4 hay una comprobación completa de las condiciones, es decir, toda la expresión que esté entre paréntesis if() se comprobará hasta el final, por lo que a veces es razonable dividir las condiciones complejas en varias condiciones:
if(a>b && c>d) puede sustituirse por if(a>b){ if (c>d)..... }
Así que la primera variante del código que sugieres funcionará un poco más rápido, aunque desde la práctica - la búsqueda de órdenes no carga mucho el procesador, las operaciones matemáticas cargan mucho el procesador, tiene sentido buscar aumentar el rendimiento del código - no todos los cálculos necesitan ser realizados cada tick
Ya veo. Gracias:
o la misma normalización en las condiciones:
ralentiza mucho la ejecución de los EAs?
¿retrasa mucho la ejecución de los EA?
Ya veo. gracias. pero dime Imprime por ejemplo después de cerrar un pedido:
o la misma normalización en las condiciones:
ralentiza significativamente la ejecución de los EAs?
La operación Print() es una operación con un archivo (en este caso, un archivo de registro). Y estas operaciones son MUY lentas (comparadas con el procesamiento de datos desde la memoria). CONCLUSIÓN: Crear una variable que se inicialice en la función init()
E imprimir por condición de esta variable (esta es UNA opción).
El ejemplo de normalización que has puesto no tiene sentido, si partimos de los objetivos planteados (optimización del código). La normalización es OBLIGATORIA de acuerdo con los requisitos técnicos del servidor de corretaje, para ejecutar una orden de comercio SÓLO para el precio y el STOP.
Queridos especuladores, ¡ayuda! Buscando un EA que establezca automáticamente SL y TP al abrir una posición.
Se lo agradezco de antemano.