Cualquier pregunta de los recién llegados sobre MQL4 y MQL5, ayuda y discusión sobre algoritmos y códigos - página 1802
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
Dobro. Permítanme ponerlo en términos rusos simples.
Vas a pescar.
O puedes coger todo lo que necesites de la despensa (OnInit) directamente, pescar sin dar vueltas y, cuando llegues a casa, poner todo en la despensa y la nevera (OnDeinit).
Esposible que lo sepa aquí en el foro. Sólo hay que escuchar y oír lo que se dice a veces.
De lo contrario, te hacen una pregunta, te responden, dices "tonterías" y haces lo que piensas.
Primero hay que reflexionar sobre la cuestión, hacer preguntas y luego empezar a editar.
¿Sabe que lo más sencillo en programación es imprimir el código? Y la mayor parte del desarrollo es pensar en la lógica.
Es una analogía ridícula. En ese caso, hagamos que todas las variables, objetos de clase, etc. sean globales y no se creen a petición, o tal vez un objeto gráfico sea otra cosa (ciertamente no una caña de pescar o una red :)) ? Así que mi planteamiento es bastante racional y justificado, lo que pasa es que mql o metatrader mete la pata.
De esta manera la señal se perderá
O estoy siendo obtuso, o no hay condición si hay órdenes abiertas Y hay señal y la barra ya es nueva.
Si las señales son largas, más de un múltiplo de barra, también funcionará en el primer tick de la barra.
La única cuestión es cuándo abrir una orden, cuando aparece la señal o en el primer tick de la siguiente barra.O estoy siendo obtuso, o no hay condición si hay órdenes abiertas Y hay señal y la barra ya es nueva.
Si las señales son largas, más de un múltiplo de barra, también funcionará en el primer tick de la barra.
La única cuestión es cuándo debe abrirse la orden, en el momento de la señal o en el primer tick de la siguiente barra.El código ahora se ve así:
Antes de abrir, compruebe si hay una posición abierta en esta vela. Si no, ábrelo.
En principio, una orden abierta se cerraría normalmente en los ticks de una barra ya abierta. MakarFX y Artem han señalado correctamente. Por lo tanto, lo correcto sería hacer esto:
En principio, una orden abierta se cerraría normalmente en los ticks de una barra ya abierta. MakarFX y Artem han señalado correctamente. Por lo tanto, lo correcto es esto:
Artem tiene razón, debería ser así
Tienes razón, Artem, debería ser así.
El resultado será el mismo aquí. Sólo que el código es más complicado. Estás escribiendo el mismo código en dos funciones diferentes. Y será menos legible. Aunque, cada uno escribe como quiere o se siente cómodo...
Aquí pasan muchas cosas.
Una posición abierta tiene una hora de apertura. La hora de apertura se puede comparar con la hora de una vela - para saber si la hora de apertura de la posición está dentro de la vela (y ésta es la vela actual).
¿Y por qué siempre se averigua el número de pedidos en todos los ejemplos? Y si hay cero pedidos, entonces los abres. Esto limita mucho las posibilidades.
En general, sólo deberíamos centrarnos en el número de órdenes/posiciones para una dirección de estrategia muy estrecha.
El resultado aquí será el mismo. Sólo el código es más confuso. Estás escribiendo el mismo código en dos funciones diferentes. Y será menos legible. Aunque, cada uno escribe como quiere o se siente cómodo...
Su código
(Se ha abierto un bar y no se ha hecho ningún pedido)
comprobado para una señal - no hay señal
... esperamos el siguiente bar.
Has repetido el mismo error que la última vez
P.D.
esto es
debe llevarse a cabo después de la apertura de la ordenTienes razón, Artem, debería ser así
En su código, si una posición está abierta, otra no se abrirá por la señal contraria. Es decir, en primer lugar, cuando entra la señal, hay que comprobar si hay una posición contraria y cerrarla.
Pero, de nuevo, todo esto limita mucho las posibilidades de mejorar las estrategias.
Deberíamos evitar vincularnos a la presencia/ausencia de órdenes (especialmente en cuatro - órdenes pendientes (que es correcto) y posiciones (que es incorrecto)).
No, es correcto y necesario tener a mano el número de órdenes y posiciones por sus tipos. Pero es un error basarse en la ausencia de órdenes sólo para las señales.
En general, la forma correcta es tener funciones para contar órdenes y posiciones (una función que llene la estructura cuando el número de órdenes y posiciones cambie), funciones para abrir/cerrar posiciones, funciones para fijar órdenes y funciones de alarma. Funciones de varias redes de arrastre y obtención de datos de indicadores. Plus - capacidad de comparar los datos de una posición (abierta o cerrada) con algunos valores.
Cualquier estrategia puede construirse a partir de este conjunto.