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
Se trata de 2 terminales en 1 ordenador. A todas las sugerencias del terminal de actualizar - respondo "sí".
El archivo fue transferido a flash desde otro ordenador como .mql5, abierto y compilado por diferentes editores de dos terminales.
De todos modos, según he entendido, necesito actualizar MT...
Si estás actualizando manualmente, también necesitas transferir la carpeta /MQL5, porque contiene un gran número de librerías estándar que estás utilizando.
Como sólo has transferido los ejecutables y tu código fuente como un archivo mq5, has cometido un error.
Actualizado a bild 695. Ha aparecido un error al compilar Object.mqh.
Actualizado a bild 695. Ha aparecido un error al compilar Object.mqh.
¿Actualizó automáticamente o sólo movió los archivos?
Si lo hizo automáticamente, al almacenar los archivos en UserData, copie el directorio /MQL5 desde la raíz del programa al directorio de datos (puede abrirlo desde el menú Archivo).
¿Qué pasó con el calendario económico, existe?
Pregunta adicional: ¿En qué datos se ha basado y cómo se puede "enchufar" a la CC?
Esta es la condición
if( mn < STP || mn >= STP )
- Tal y como está redactado, funcionará para cualquier mn y STP. ¿Por qué tenemos que introducirlo? Y las dos siguientes opciones - hay un corte específico de ciertas situaciones.
Pero todo parece lógico: uno + dos == tri (sin entrar en detalles de los cálculos uno, dos y tres) en las tres variantes.
A eso me refiero. Quiero dividir el espacio común (caso 1) en dos grupos (casos 2 y 3). Lógicamente, la expresión uno + dos == tri debería ser verdadera, pero no lo es. En la primera condición uno=148, y en la segunda 172. Tampoco es un partido para dos y para tri. No sé cuál es el problema.
¿Quizás el problema radica en una condición común? ¿Este código depende de algo más?
Sólo un ejemplo trivial:
condición (a): abrir si la barra en H1 sube. TP=SL=100
condición (b): Abrir si la barra en H1 disminuye. TP=SL=100
Condición adicional: no comprobamos las condiciones por segunda vez, si ya tenemos una posición.
Entonces si habilitamos (a) más (b) abriremos cada vez que se dispare el TP/SL.
si incluimos (a) abriremos en todas las primeras veces más (!!!!) unas cuantas veces más en las que no abrimos porque abrimos antes con la condición (b)
y para incluir sólo la condición (b) de forma similar
Fíjate bien: esta es exactamente la comparación (uno + dos == tri) que se realiza, para cada una de las opciones.
Pues bien, esta es una cuestión diferente, a saber, por qué el valor de uno de la primera variante no es igual al valor de uno de la segunda y tercera variantes.
Usted introduce una condición restrictiva en la segunda y tercera variantes en comparación con la primera variante. Considere por qué, por ejemplo, en la segunda variante el valor de uno aumenta en comparación con la primera variante. No está claro en la parte citada del código hasta ahora.
Al puesto anterior.
En el tercer caso: uno=0, dos=124, tri=124.
Los datos no coinciden, pero deberían hacerlo, porque el segundo y el tercer caso son partes separadas de la primera condición. No puedo entender cuál es el problema.
PS: entrada int STP=200;
1. Elijo tanto el espacio2 (uno) como el espacio3 (dos); 230 = 148 + 82, es decir, espacio2 (uno) = 148 y espacio3 (dos)=82.
2. ... Debería seguir siendo 148, y se convirtió en 172.
3. ... Debería seguir siendo 82, y se convierte en 124.
A eso me refiero: la pregunta para ti espor qué el valor de uno de la primera opción no es igual al valor de uno de la segunda y tercera opción.
Para encontrar un error en esta suposición lógica, sugiero hacer muy simple: imprimir cada caso de aumento de "spacesX" en las tres variantes, comparar los resultados y analizar por qué razón los "valores de spaces2 y spaces3" no son los mismos.
Adenda. ilunga ya ha insinuado que algunas transacciones pueden perderse al pasar de una variante a otra. Tienes una función/método asesino OpenPosition() incrustado en el cuerpo del operador if(). Y funciona en diferentes tiempos dependiendo de la condición comprobada por el operador if().