Símbolos personalizados. Errores, fallos, preguntas, sugerencias. - página 32

 

CustomTicksReplace y CustomTicksAdd no conservan los indicadores TICK_FLAG_BUY y TICK_FLAG_SELL. En consecuencia, los indicadores de tipo Delta no funcionarán en un símbolo personalizado. ¿Por qué los desarrolladores decidieron no guardar estas banderas?

 

MT5 3041. El servicio crea y actualiza cotizaciones de instrumentos personalizados (tanto de ticks como de barras).

He descubierto queSymbolInfoDouble y SymbolInfoTick llamados en el Asesor Experto que se ejecuta en este gráfico"cuelgan" en algún momento: en la visión general del mercado las cotizaciones cambian, el gráfico se actualiza, iClose y CopyTicksRange obtienen datos reales, pero SymbolInfoXXX da información obsoleta.

En el proceso de análisis llegó al código más simple, que pretendía detectar estos "cuelgues", pero mucho antes demostró el problema desde el otro lado:¡SymbolInfoXXX simplemente se retrasa implacablemente en comparación con iClose! Se puede ver a simple vista:


Ejecute dicho EA en su gráfico de castum, por favor:

int OnInit(void)
{
        EventSetMillisecondTimer(10);
        return(INIT_SUCCEEDED);
}

void OnDeinit(const int reason)
{
        EventKillTimer();
        Comment("");
}

void OnTimer(void)
{
        MqlTick tick;
        SymbolInfoTick( _Symbol, tick );

        Comment( "SymbolInfoInteger( _Symbol, SYMBOL_TIME ) = ", TimeToString( SymbolInfoInteger( _Symbol, SYMBOL_TIME ), TIME_SECONDS ),
                                        "\nSymbolInfoDouble( _Symbol, SYMBOL_BID ) = ", SymbolInfoDouble( _Symbol, SYMBOL_BID ),
                                        "\ntick.time = ", TimeToString( tick.time, TIME_SECONDS ),
                                        "\ntick.bid = ", tick.bid,
                                        "\niClose[0] = ", iClose( _Symbol, PERIOD_CURRENT, 0 ) );
}

(Se puede cambiar OnTimer por OnTick, el efecto es el mismo)

¿Tiene usted retrasos similares?

 
Andrey Khatimlianskii #:

¿Tiene frenos similares?

No puedo comprobarlo ya que no tengo los caracteres personalizados actualizados.

 
Alain Verleyen #:

Ya se ha hablado de ello.

Establece primero SYMBOL_VOLUME_MAX

 
Andrey Khatimlianskii de un instrumento personalizado (tanto ticks como barras).

He descubierto que SymbolInfoDouble y SymbolInfoTick, llamados en el Asesor Experto que se ejecuta en este gráfico, en algún momento "se cuelga ": en la visión general del mercado las cotizaciones cambian, el gráfico se actualiza, iClose y CopyTicksRange obtienen datos reales, pero SymbolInfoXXX da información obsoleta.

En el proceso de análisis llegó al código más simple, que pretendía detectar estos "cuelgues", pero mucho antes demostró el problema desde el otro lado: ¡SymbolInfoXXX simplemente se retrasa implacablemente en comparación con iClose! Se puede ver a simple vista:


Ejecute dicho EA en su gráfico de castum, por favor:

(OnTimer puede ser cambiado por OnTick, no cambia la esencia)

¿Tiene usted retrasos similares?

Por favor, indíqueme qué servicio utiliza para actualizar las garrapatas. Espero poder ayudar de alguna manera y poder ayudarte.

 
Slava #:

Slava, ¿SymbolInfoDouble y SymbolInfoTick deben ser lentos/deficientes?

¿Está sonando?

Escribiendo el código que mide la frenada, ¿el efecto visual no es suficiente?

 
Andrey Khatimlianskii #:

SymbolInfoXXX es increíblemente lento en comparación con iClose. Se puede ver a simple vista.

Debo haber dicho algo estúpido ya que nadie responde.

A veces funciona bien, la información del gráfico se actualiza casi de forma sincronizada. Y a veces SymbolInfoXXX se cuelga durante decenas de segundos, se puede ver sin ninguna medida.

Hay algo que falla en el mecanismo de recepción de datos de la herramienta castrum. Además, el problema es sólo con las funciones SymbolInfoXXX, iClose y CopyTicksRange funcionan bien.

 
Andrey Khatimlianskii #:

Y a veces SymbolInfoXXX se cuelga durante decenas de segundos, se puede ver esto sin ninguna medición.

Hay algo que falla en el mecanismo de obtención de datos de la herramienta castum... Además, el problema es sólo con las funciones SymbolInfoXXX, iClose y CopyTicksRange funcionan bien.

SymbolInfoXXX debe estar sacando algo del servidor, porque tiene una velocidad de ejecución variable. Por supuesto, este comportamiento de esta función es muy confuso en general. Significa, que algunos métodos están tratando directamente de obtener algún retroceso. Tengo iTime que funciona y no funciona en Custom. Todavía no puedo entender en qué principio

 
Andrey Khatimlianskii #:

Y el problema es sólo en las funciones SymbolInfoXXX, iClose y CopyTicksRange funcionan bien.

Probé su prueba, todo es exactamente lo mismo - se retrasa un par de segundos. no en la costumbre, pero en los futuros de plata

Instrumento Silv-12.21. ММВБ, corredor БКС. Pero supongo que no importa.

 
RusPro #:

SymbolInfoXXX debe estar sacando algo del servidor, ya que la velocidad de ejecución es variable. En general, por supuesto, este comportamiento de la función es confuso. Resulta que algunos métodos se utilizan directamente, mientras que otros se utilizan hacia atrás. Tengo iTime que funciona y no funciona en Custom. Todavía no puedo entender qué principio funciona.

No hablo de herramientas personalizadas, sino de castum. Por definición, toda la información sobre ellos está disponible en el terminal y nada debe ir al servidor.