Symboles personnalisés. Erreurs, bogues, questions, suggestions. - page 32

 

CustomTicksReplace et CustomTicksAdd ne conservent pas les indicateurs TICK_FLAG_BUY et TICK_FLAG_SELL. Par conséquent, les indicateurs de type Delta ne fonctionneront pas sur un symbole personnalisé. Pourquoi les développeurs ont-ils décidé de ne pas sauvegarder ces drapeaux ?

 

MT5 3041. Le service crée et met à jour des cotations d'instruments personnalisées (ticks et barres).

J'ai constaté queSymbolInfoDouble et SymbolInfoTick appelés dans l'Expert Advisor fonctionnant sur ce graphiquese "bloquent" à un moment donné : dans la vue d'ensemble du marché, les cotations changent, le graphique est mis à jour, iClose et CopyTicksRange obtiennent des données réelles, mais SymbolInfoXXX donne des informations périmées.

Dans le processus d'analyse il est venu au code le plus simple, qui était destiné à détecter ces "hangs", mais beaucoup plus tôt a démontré le problème de l'autre côté :SymbolInfoXXX est tout simplement retardé implacablement par rapport à iClose ! Vous pouvez le voir à l'œil nu :


Exécutez un tel EA sur votre graphique de castum, s'il vous plaît :

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 ) );
}

(OnTimer peut être changé en OnTick, cela ne change pas l'essence)

Avez-vous des décalages similaires ?

 
Andrey Khatimlianskii #:

Avez-vous des freins similaires ?

Je ne peux pas vérifier car je n'ai pas mis à jour les caractères personnalisés.

 
Alain Verleyen #:

On en a déjà parlé.

Définir d'abord SYMBOL_VOLUME_MAX

 
Andrey Khatimlianskii pour un instrument personnalisé (ticks et barres).

J'ai constaté que SymbolInfoDouble et SymbolInfoTick, appelés dans l'Expert Advisor fonctionnant sur ce graphique, à un moment donné "raccroche " : dans l'aperçu du marché, les cotations changent, le graphique est mis à jour, iClose et CopyTicksRange obtiennent des données réelles, mais SymbolInfoXXX donne des informations périmées.

Dans le processus d'analyse il est venu au code le plus simple, qui était destiné à détecter ces "hangs", mais beaucoup plus tôt a démontré le problème de l'autre côté : SymbolInfoXXX est tout simplement retardé implacablement par rapport à iClose ! Vous pouvez le voir à l'œil nu :


Exécutez un tel EA sur votre graphique de castum, s'il vous plaît :

(OnTimer peut être changé en OnTick, cela ne change pas l'essence)

Avez-vous des décalages similaires ?

Veuillez me faire savoir quel service vous utilisez pour mettre à jour les tics ? J'espère que je peux vous aider d'une manière ou d'une autre et que je peux vous aider.

 
Slava #:

Slava, est-ce que SymbolInfoDouble et SymbolInfoTick doivent ralentir ou s'arrêter ?

Est-ce qu'il joue ?

Écrire un code qui mesure le freinage, l'effet visuel ne suffit pas ?

 
Andrey Khatimlianskii #:

SymbolInfoXXX est juste incroyablement lent comparé à iClose ! Vous pouvez le voir à l'œil nu.

J'ai dû dire quelque chose de stupide puisque personne ne répond.

Parfois, cela fonctionne bien, les informations du graphique sont mises à jour de manière presque synchrone. Et parfois SymbolInfoXXX se bloque pendant des dizaines de secondes, vous pouvez le voir sans aucune mesure.

Il y a un problème dans le mécanisme de réception des données de l'outil castrum. De plus, le problème ne concerne que les fonctions SymbolInfoXXX, iClose et CopyTicksRange fonctionnent bien.

 
Andrey Khatimlianskii #:

Et parfois SymbolInfoXXX se bloque pendant des dizaines de secondes, vous pouvez le constater sans aucune mesure.

Il y a quelque chose qui ne va pas dans le mécanisme d'obtention des données des outils de castum... De plus, le problème ne concerne que les fonctions SymbolInfoXXX, iClose et CopyTicksRange fonctionnent bien.

SymbolInfoXXX doit tirer quelque chose du serveur, car sa vitesse d'exécution est variable. Bien sûr, le comportement de cette fonction est très déroutant en général. Ainsi, certaines méthodes arrivent directement au serveur et d'autres passent par l'arrière. J'ai un iTime qui fonctionne et qui ne fonctionne pas sur mesure. Je ne peux pas encore comprendre sur quel principe

 
Andrey Khatimlianskii #:

Et le problème ne concerne que les fonctions SymbolInfoXXX, iClose et CopyTicksRange fonctionnent bien.

J'ai essayé votre test, tout est exactement le même - des décalages de quelques secondes. pas sur custom, mais sur silver futures

Instrument Silv-12.21. ММВБ, courtier БКС. Mais je suppose que ça n'a pas d'importance.

 
RusPro #:

SymbolInfoXXX doit tirer quelque chose du serveur, car la vitesse d'exécution est variable. En général, bien sûr, ce comportement de la fonction est déroutant. Il s'avère que certaines méthodes sont utilisées directement, tandis que d'autres sont utilisées à rebours. J'ai un iTime qui fonctionne et qui ne fonctionne pas sur mesure. Je ne comprends pas encore sur quel principe il fonctionne.

Je ne parle pas d'outils personnalisés, je parle de castum. Par définition, toutes les informations qu'ils contiennent sont accessibles dans le terminal et rien ne doit aller au serveur.

Raison: