[¡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 206
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
querida... no hay necesidad de escribir en letras tan grandes aquí... podrías romperte los ojos :-)
y esto... Antes de hacer preguntas... ¿has probado a leer la Ayuda en el Metaeditor? ¿Todo?... para empezar... para que no hagas preguntas estúpidas sobre tipos y cosas así....
===
Tipo de operación para la función OrderSend(). Puede ser cualquiera de los siguientes valores:
Ahora vamos al grano: digamos que tenemos 3 órdenes y todas son órdenes de mercado. Entonces con 3 iteraciones no llegaremos al bloque 4 en ninguna de ellas. Y después de la última iteración pasaremos inmediatamente al bloque 5, obviando el bloque 4. El bloque 5 contiene la variable Tip, que se declara en el bloque 4. Pero el bloque 4 no se ejecutó. Así que la variable Tip no está declarada. ¿Así que utilizamos la variable antes de declararla?
¿Por qué? El compilador asignó espacio de memoria para la variable durante la primera pasada... y acceder a él no causará un error...
El siguiente punto no está claro: en la primera pasada (suponiendo que las 3 órdenes son de mercado), no llegamos al bloque 4, ya que la condición if(OrderType()<2) se cumple en el bloque 3. Entonces el siguiente iterador continue completa la iteración actual y se salta el bloque 4, que es donde se declara la variable Tip. Significa que la variable Tip no fue declarada durante la primera iteración (es decir, la línea que declara la variable Tip no fue ejecutada)... Y así sucesivamente durante las 3 iteraciones. Es decir, después de la 3ª iteración llegamos al bloque 5, que utiliza la variable Tip, es decir, no fue declarada antes (es decir, tenemos una cadena con su declaración, pero como no hemos llegado al bloque 4, no hemos declarado esta variable...)
Me refería al recorrido del compilador por el texto del programa - habiendo encontrado una definición de variable en cualquier punto de una función - el metacompilador declaró esa variable para su uso posterior - a pesar de que no había ninguna referencia real a la inicialización de la variable... - así es el entorno :-)
Aunque no había ninguna entrada en la condición - el compilador asignó una posición de memoria para la variable... aunque no lo haya inicializado... en Print será = 0
Me refería al recorrido del compilador por el texto del programa - habiendo encontrado una definición de variable en cualquier punto de una función - el metacompilador declaró esa variable para su uso posterior - a pesar de que no había ninguna referencia real a la inicialización de la variable... - así es el entorno :-)
Aunque no había ninguna entrada en la condición - el compilador asignó una ubicación de memoria para la variable... aunque no lo haya inicializado... en Print será = 0
Así que, si lo he entendido bien: el compilador, a diferencia del terminal (a grandes rasgos) no ejecuta bucles, sino que se limita a leer líneas seguidas y a comprobar si hay errores... Es decir, lo principal para ello (que es el criterio de presencia/ausencia de error) es que la línea (posición), donde se utilizó una variable, debe venir DESPUÉS de la línea (posición), donde se declaró esta variable?
se podría decir que sí :-) si se hace una declaración por debajo - y se accede a la variable por encima - el compilador generará un error...
Lo tengo, muchas gracias... ¿Algún consejo sobre las variables de la GV?
¿qué pasa con ellos? - global a nivel de terminal?
almacenan algún tiempo en un archivo variable :-) la fecha de acceso, el nombre y el valor de tipo doble