Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. En ninguna parte sin ti - 6. - página 135
![MQL5 - Lenguaje de estrategias comerciales para el terminal de cliente MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
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
Buenas tardes, si no es muy difícil, por favor aconsejar a un novato:
1) ¿Cómo declarar un array de tamaño igual al valor de alguna variable? (si i=7 declarar array double Muss[7] y así sucesivamente);
2) ¿Por qué se considera que una matriz en una función definida por el usuario se declara y utiliza adecuadamente si la condición es siempre falsa?
while (false){
Alerta("aaaaaaaaaaa" );
static double Buf_max [9000000];
static double Buf_min [9000000];}
3) ¿Existe alguna diferencia en la función de usuario y en general entre un simple array y un array estático?
Buenos días, si no es muy difícil, por favor aconsejar a un novato:
1) ¿Cómo declarar un array de tamaño igual al valor de alguna variable? (Si i=7 declarar array double Muss[7] y así sucesivamente);
...
1) ArrayResize()
tal cosa:
si llama a MarketInfo(Symbol(),MODE_TRADEALLOWED), devuelve - 1=comercio permitido.
Pero si pasa el ratón por encima del símbolo en la visión general del mercado, aparecerá un tooltip con el texto - Trade: Close.
¿cuál es el truco aquí?
realmente no me deja comerciar, pero ¿por qué MODE_TRADEALLOWED devuelve un valor erróneo?
¿Cuántas veces has ejecutado el indicador? Parece que varias veces (la ciclicidad se nota en sus resultados).
Añade una impresión más a deinit con algún "separador", establece la condición de entrada o rehazlo en el script para que no se ejecute más de una vez, entonces estará más claro.
Gran idea))
Lo hice más simple, así:
El comienzo en el cuaderno de bitácora es así:
Ni siquiera hay ciclos. No hay orden. La salida no es nada consistente.
Gran idea))
Lo hice más simple, así:
El comienzo en el cuaderno de bitácora es así:
Ni siquiera hay ciclos. No hay orden. La salida no es nada consistente.
Has complicado un poco las cosas, en la fase de pruebas todo se puede hacer en 1-2 líneas, dependiendo de la variante. Es posible hacer todo en el Inite. No se ha estipulado el orden de salida.
Has complicado un poco las cosas, en la fase de comprobación todo se puede hacer en 1-2 líneas, dependiendo de la variante. Es posible hacer todo en el Inite. El orden de salida no estaba estipulado.
¿Te refieres a introducir una bandera para que los bucles se ejecuten una vez y ya está? No dejo de ejecutar... Así es como funciona:
Sin embargo, en esencia, el código debería funcionar como en INITA, de una vez por todas. Entonces la variable booleana Status_run se pondrá inmediatamente en falso y la condición if no se volverá a ejecutar... Pero mi registro no se queda sin salida por alguna razón.
¿Te refieres a introducir una bandera para que los bucles se ejecuten una vez y ya está? No dejo de correr... Así es como funciona:
Aunque en esencia, el código debería funcionar como en INITE, una vez y ya está. Entonces la variable booleana Status_run se pondrá inmediatamente en falso y la condición if no se volverá a ejecutar... Pero por alguna razón no se me acaba la salida en el registro.
Afirmaste que los bucles daban resultados erróneos y te ofrecí una forma de comprobarlo. Si funciona como necesita, entonces debe seguir su algoritmo, y si no, debe cambiarlo durante la comprobación.
PS "Status_run" debe ser creado antes de start(), es una variable global.
Gurús, un consejo. He puesto la variable bool Flag=true; para empezar,
Abro un trato
si ( condición)
{
Opn_S = true;
Bandera=falsa;
}
Hay una pregunta sobre la bandera, si la bandera devuelvefalso cuando se abre y hay esta bandera en la condición de apertura. ¿Cuánto tiempo se mantiene la verdad o la falsedad pasada a la bandera, se pone a cero al día siguiente?
Gurús, un consejo. He puesto la variable bool=true; para empezar,
Abro un trato
si ( condición)
{
Opn_S = true;
Bandera=falsa;
}
Hay una pregunta sobre la bandera, si la bandera devuelvefalso cuando se abre y hay esta bandera en la condición de apertura. ¿Cuánto tiempo se mantiene la verdad o la falsedad pasada a la bandera, se pondrá a cero al día siguiente?
No lo hará, con cada nuevo tick el valor de Flag será verdadero . https://book.mql4.com/ru/variables/types
O bien declarar la variable de forma global - por ejemplo, al principio de un programa, fuera de todas las funciones.
O hacer la variable estática - static bool flag=true; .
No lo hará, con cada nuevo tick el valor de Flag será verdadero . https://book.mql4.com/ru/variables/types
O bien declarar la variable globalmente - al principio del programa, fuera de todas las funciones.
O hacer la variable estática - static bool flag=true; .