Errores, fallos, preguntas - página 1783

 
A100:

Pregunta: ¿Cuándo se llamará a OnDeinit->M5?

Mi respuesta: ¡Nunca!

Su respuesta anterior: de forma asíncrona y con retraso

Han pasado más de 30 minutos y todavía no se llama a OnDeinit->M5

Y ahora vamos a cambiar el código del Asesor Experto (cambiar el orden ligeramente) ...

Resultado:

2017.02.06 01:31:45.002 OnInit->M5
2017.02.06 01:31:48.340 OnDeinit->M5: 1 ¡Llamado inmediatamente y sin retraso!
2017.02.06 01:31:48.409 OnInit->M15

Archivos adjuntos:
Test.mq5  2 kb
 
A100:

Han pasado más de 30 minutos y todavía no hay ninguna llamada a OnDeinit->M5

Y ahora vamos a cambiar el código del Experto (cambiar el orden ligeramente) ...

Adjunte el código, por favor.
 
Renat Fatkhullin:
Adjunte el código, por favor.
Adjunto al último post con el mismo nombre. En realidad, la llamada estática ha sido sustituida por una dinámica y el resultado es fundamentalmente diferente
 
A100:
Adjunto al último post con el mismo nombre. En realidad se ha sustituido una llamada estática por una dinámica y el resultado es fundamentalmente diferente
Gracias, vamos a investigarlo.

Parece que en el primer caso la ausencia de OnDeinit y la variable estática, que se nos olvidó llamar al destructor en el resultado, nos jugó una mala pasada en la optimización.
 
Alexey Kozitsyn:
¿Puede aclarar de qué hilos estamos hablando? ¿No funcionan todos los indicadores del mismo símbolo en el mismo hilo?
Sí. Los hilos diferentes serán si el gráfico cambia el símbolo, no el marco temporal.

Si sólo cambiamos el marco temporal, la nueva copia del indicador se calculará en el mismo hilo que el anterior.

Pero tampoco podemos confiar en que la orden Deinit en M5 se procese antes que la orden Init en M15
 
Slawa:
Si sólo cambiamos el marco temporal, la nueva copia del indicador se calculará en el mismo hilo que el anterior.

Pero aquí no podemos confiar en que el comando Deinit en M5 se procesará antes que el comando Init en M15.
Por favor, añádelo a la Ayuda, por favor.
 
Slawa:

Hola,

por favor, preste mucha atención al mensaje https://www.mql5.com/ru/forum/166358/page4#comment_4064293

Esto es muy importante,

hay un nuevo error 1158, ¿no está en la ayuda?

cannot set millisecond timer (500)
cannot set millisecond timer (500)
  • www.mql5.com
Здравствуйте, клиент прислал лог файл, в котором я увидел такую запись cannot set millisecond timer (500) что она значит? и почему...
 

Error de ejecución

Violación de acceso en 0x030A00AD leído a 0x00000005 en 'Test_s.ex5'

//Test_s.mq5 //Скрипт
class A {};
#import "TestA.ex5"
        A *error();
#import
class B { protected:
    B( const string& name ) : name( name ) {}
    virtual int g( const MqlParam& param[] ) const { return ::IndicatorCreate( NULL, PERIOD_CURRENT, IND_CUSTOM, ::ArraySize( param ), param ); }
        const string name;
bool f( int h ) const
{
        if ( ::ChartIndicatorAdd( 0, 0, h ) )
                return true;
        error();
        return false;
}
};
class C : protected B { protected:
    C( int h, string name ) : B( name ), h( h ) { f( this.h ); }
        const int h;
};
class D : C { public:
    D( string path ) : C( g( path ), path ) {}
int g( const string& path )
{
        MqlParam param[ 1 ];
        param[ 0 ].type         = TYPE_STRING;
        param[ 0 ].string_value = path;
        return g( param );
}
};
void OnStart() { D d( "Test_i" ); }
//TestA.mq5
#property library
class A {};
A * error() export { return NULL; }

Todos los archivos (excepto el Indicador) se encuentran en la carpeta MQL5\Scripts.

El indicador en sí no es necesario, pero puede descargarse, por ejemplo, dehttps://www.mql5.com/ru/forum/1111/page1803#comment_4063671

Ошибки, баги, вопросы
Ошибки, баги, вопросы
  • www.mql5.com
Форум алго-трейдеров MQL5
 
fxsaber:
Póngalo en Ayuda, por favor.
Mire aquí - Programas en marcha

Para ver un resumen de los programas de MQL5, consulte la siguiente tabla:

Programa

Ejecución

Nota

Guión

En su propio hilo, tantos scripts como hilos de ejecución haya para ellos

Un script en bucle no puede interrumpir el trabajo de otros programas

Experto

En su propio hilo, tantos expertos - tantos hilos de ejecución para ellos

Un experto en bucle no puede interrumpir el trabajo de otros programas

Indicador

Un hilo de ejecución para todos los indicadores de un símbolo. Tantos símbolos con indicadores - tantos hilos de ejecución para ellos

Un bucle sin fin en un indicador detendrá todos los demás indicadores en este símbolo

 
A100:

Se escriben de la forma B'1111111111111111111111111111'.

Por desgracia, no estoy familiarizado con este formato.

El experimento demostró que el número en el búfer gráfico se representa con las mismas reglas que el doble, es decir, que no es posible pasar un número tan largo por el búfer gráfico, lo que resulta frustrante.

Razón de la queja: