Erreurs, bugs, questions - page 1885

 
fxsaber:
Pourquoi un tel code EX5

pèse 5Kb ?

Protection contre la décompilation ?
 
fxsaber:
Localisation du bug sur Metaquotes-Demo

Le script est en pleine réflexion.

Reproductible.

Probablement parce que le graphique en ticks de cet outil est "en attente de mise à jour".

Lorsque le script s'arrête, le put -1 dans le log est affiché, c'est-à-dire qu'il ne s'accroche pas, mais attend que le terminal réponde.

 
fxsaber:
Localisation du bug sur Metaquotes-Demo

Le script est en pleine réflexion.

Tout fonctionne correctement (selon la documentation) :
Dans les Expert Advisors et les scripts, CopyTicks() peut attendre jusqu'à 45 secondes pour le résultat : Contrairement à l'indicateur, chaque expert et script travaille dans son propre thread, et peut donc attendre jusqu'à 45 secondes pour la fin de la synchronisation. Si pendant ce temps, les ticks ne seront pas synchronisés dans le volume nécessaire, CopyTicks() ne retournera que les ticks disponibles par timeout, et la synchronisation continuera.
2017.05.11 14:41:31.154 Scripts script test_bug (EURUSD,M1) chargé avec succès
2017.05.11 14:42:14.742 Scripts script test_bug (EURUSD,M1) supprimé

 

La longue attente pour les ticks sera corrigée - cela se manifeste sur les personnages morts qui n'ont pas eu de ticks depuis longtemps.

Il fonctionnera instantanément

 
Renat Fatkhullin:

La longue attente pour les ticks sera corrigée - cela se manifeste sur les personnages morts qui n'ont pas eu de ticks depuis longtemps.

Ça marchera instantanément.

Quels coûts temporels doivent être considérés comme normaux ?

Vérifié SymbolInfoTick (96 caractères).

#define _CS(A) ((!IsStopped()) && (A))
#define  TOSTRING(A) #A + " = " + (string)(A)

void OnStart()
{
  ulong MaxInterval = 0;
  MqlTick Tick;
  
  while (_CS(true))
  {
    const ulong StartTime = GetMicrosecondCount();
    
    for (int i = SymbolsTotal(true) - 1; _CS(i >= 0); i--)
      SymbolInfoTick(SymbolName(i, true), Tick);

    const ulong Interval = GetMicrosecondCount() - StartTime;              
    
    if (Interval > MaxInterval)
    {
      MaxInterval = Interval;
      
      Print(TOSTRING(MaxInterval));
    }
  }
}

J'ai trouvé

MaxInterval = 7631

Normal ?

 
fxsaber:

Quels coûts temporels doivent être considérés comme la norme ?

Vérifié SymbolInfoTick (96 caractères)

Je l'ai eu.

Norm ?

45 secondes par instrument mort.
 
Andrey Khatimlianskii:
45 secondes par instrument mort.
Seuls ceux qui sont vivants sont intéressants. Une par une, 100 pièces.
 

Est-ce que c'est normal ?

La même valeur est renvoyée pour différentes situations.

Je comprends que je doive vérifier, mais des choses arrivent...

postes

impression du résultat


Dossiers :
posi.mq5  2 kb
 
Alexandr Bryzgalov:

Est-ce que c'est normal ?

La même valeur est renvoyée pour différentes situations.

Je comprends que je doive vérifier, mais des choses arrivent...

postes

impression du résultat



Et quelle est la question ?

Où peut-on voir que sous le chiffre "i" il y a une position avec tel ou tel billet, pour tel ou tel symbole ? En général, en plus de l'affichage du numéro de série, il faut également sortir le ticket et le symbole.


 
Vladimir Karputov:


Alors quelle est la question ?

Où peut-on voir que sous le chiffre "i" il y a une position avec tel ou tel billet, pour tel ou tel symbole ? En général, outre la simple édition du numéro de séquence, vous éditez également le ticket et le symbole.


Est-il normal que pour des situations différentes, une même fonction donne la même valeur ?

ZS : au fait, il y avait une question dans le post.

Le fait est que, si je sélectionne acheter, la fonction (PositionGetInteger(POSITION_TYPE)) renvoie 0.

Et si vous sélectionnez une position inexistante, la fonction retournera également 0.