Errores, fallos, preguntas - página 1035

 
A100:
¿Has visto alguna vez la salida como "palabra Hola"?

Vuelve a leer con atención lo que te he escrito. Cálculo, no salida.

Esta es una expresión i += ++i +++

 

Foro sobre trading, sistemas de trading automatizados y pruebas de estrategias de trading

Bichos, errores, preguntas

MetaDriver, 2013.08.03 17:55

"

Si quieres estar seguro de que tienes una entrada en el lado derecho de la pantalla.

Para mis propósitos no siempre es adecuado, pero en el caso general se eliminarían muchos "problemas de fin de semana".

ParaExpertos en trading, sistemas de trading automatizados y pruebas de estrategias de trading.

Bichos, errores, preguntas

MetaDriver, 2013.08.03 18:02

...

También sería útil "comando" forzado programáticamente la puesta a cero de todos los prev_calculados para el símbolo seleccionado. Con la posterior generación de garrapatas sería un buen combo.

Señores, ¿hay algo en sus planes sobre este tema?


 
TheXpert:

Vuelve a leer con atención lo que te he escrito. Cálculo, no deducción.


Tienes razón al separar los momentos: el cálculo de los argumentos de la función, la sustitución de esos argumentos y el cálculo de la propia función. Este script - muestra que tanto los argumentos se calculan de izquierda a derecha como la propia expresión de izquierda a derecha:

int f( int x )  { Print( __FUNCTION__ + "(" + x + ")" ); return ( x ); }

void OnStart()
{
        int a = 0x0;
        int b = f(a+=1) << f(a+=2) << f(a+=3);
	Print( "b=" + b );
}
Результат:
f(1)
f(3)
f(6)
b=512
 
¿Puede decirme la diferencia entre externo y estático, cuál es la duración global?
//Test.mqh
extern int e1;
static int s1;

#import "testLib.ex5"
        void f();
#import
//test.mq5
#include "Test.mqh"

void OnStart()
{
        e1 = 10;
        s1 = 10;
        f();
}

//testLib.mq5

#property library
#include "Test.mqh"

void f() export
{
        Print( "e1=" + e1 );
        Print( "s1=" + s1 );
}
Результат:
e1 = 0 //не понятно
s1 = 0 //нормально
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров
  • www.mql5.com
Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров - Документация по MQL5
 
Silent:
¿No es eso?

No - usando una clase estándar no inicializada allí.

Todas mis clases son autodidactas. Y no entiendo - por qué dentro del método de la clase funciona bien, y en OnInit() - no.

Actualización: muy interesante... ;-) Si el Asesor Experto se ejecuta en MetaEditor bajo el depurador - todo funciona bien. Además, EX5 (1,5 veces más grande de lo habitual) compilado bajo el depurador también funciona bien. Pero tan pronto como EA es recompilado en modo normal - comienza a tener fallos. Al parecer, tendré que abrir una nueva solicitud en Service Desk.

 
A100:
¿Pueden los entendidos decirme la diferencia entre externo y estático, cuál es la vida útil global?

En su caso, ha decidido que dos conjuntos de variables, descritos independientemente en dos archivos diferentes, se fusionen en una sola representación. En realidad no es así.

Al añadir un archivo mqh, se definen explícitamente conjuntos separados de variables en cada archivo de inclusión. A grandes rasgos, no pongas las definiciones de las variables en los archivos de cabecera, ya que serán de alcance.

 
Quería utilizar una (única) variable en varios módulos, pero no sé cómo. Quitó el .mqh.
10 //testLib.mq5
20 #property library
30 extern int e1;
40 void f() export
50 {
60         Print( "e1=" + e1 );
70 }
10 //test.mq5
20 extern int e1;        
30 #import "testLib.ex5"
40          void f();
50 #import
60 void OnStart()
70 {
80         e1 = 10;
90         f();
100 }

Resultado de salida: e1=0 no ha cambiado. ¿A dónde fue e1=10? Si e1 es diferente en los distintos módulos, ¿significa que la funcionalidad estática y externa es idéntica? Y si no, ¿dónde está mi error?
 
A100:
Quería utilizar una (única) variable en varios módulos, pero no sé cómo. El resultado de salida: e1=0 no ha cambiado.
Existe una clase de memoria externa específica para su caso. Prueba con
 
stringo:
Existe una clase de memoria externa específica para su caso. Prueba con
Por favor, dame un ejemplo - o señala un error en el mío - En un módulo asigno e1 = 10, llamo a e1 en el segundo módulo, pero es cero allí
 
A100:
Quería utilizar una (única) variable en varios módulos, pero no sé cómo. Quitó la salida del .mqhP: e1=0 no cambió. ¿A dónde fue e=10? Si e1 es diferente en los distintos módulos, ¿significa que la funcionalidad estática y externa es idéntica? Y si no, ¿dónde está mi error?
Bueno, debería ser inicializado sólo una vez. Es externo.
Razón de la queja: