Erreurs, bugs, questions - page 2336

 
Nikolai Semko :
Au fait, j'ai remarqué que le profileur a cessé de fonctionner sur les gros programmes. :((

Que sont les grands programmes ?

Je l'utilise sans aucun problème sur la Build 1953.

 
Alain Verleyen:

Que sont les grands programmes ?

Je l'utilise sans aucun problème sur la Build 1953.

Oui, mes excuses. J'ai fait une mauvaise conclusion.
J'avais une version 1950 et le profilage ne fonctionnait pas sur tous les indicateurs.
Amélioré à la construction de 1954. Maintenant le profilage fonctionne.

 

Il y a toutes sortes de nuances avec les variables statiques. Quelle est la raison de ce comportement sur les deux plateformes ?

#property strict

int f()
{
  static const string Symb = _Symbol;
  
  Print(Symb);
  
  return(0);
}

const int Init = f(); // Пусто

void OnStart()
{
  f(); // Не пусто
}
 
L'historique du site n'a pas été mis à jour depuis le 30 novembre ...
 

Forum sur le trading, les systèmes de trading automatisé et les tests de stratégies de trading

Bugs, bugs, questions

fxsaber, 2018.11.09 15:34

Dans le testeur, quel événement est généré en premier, le tic-tac ou la minuterie ?

Par exemple, Timer doit être appelé à 12:00:00.000. Et il y a un tic-tac avec la même heure. Lequel est déclenché en premier, OnTimer ou OnTick ?

Malheureusement, ce n'est pas toujours le cas. Si un niveau en attente est déclenché sur un tick, OnTick est appelé en premier et seulement ensuite OnTimer.

@Slava, pensez-vous que cette situation est correcte ?

 
fxsaber:

Il y a toutes sortes de nuances avec les variables statiques. Quelle est la raison de ce comportement sur les deux plateformes ?

Parce que ce n'est pas du C++. Il y a une logique spéciale ici : Init est initialisé avant Symb

 
A100:

Parce que ce n'est pas du C++. Il y a une logique spéciale ici : Init est initialisé avant Symb

J'ai besoin de comprendre cette logique ou de la lire quelque part.

 
fxsaber:

J'aimerais comprendre cette logique ou la lire quelque part.

void f()
{
static a;
}
static b;

signifie en fait

void f()
{
}
static b;
static a;

d'abord le statique autoportant, et dans {} ensuite

 
A100:

signifie en fait

tout d'abord, les statiques autoportants, bien, dans {} alors

Je l'ai, merci !

 

Aux développeurs. Veuillez corriger un bogue dans MQL4.

L'échelle fixe créée manuellement via F8, onglet "Général", la case à cocher "Fixer l'échelle 1:1" ne correspond pas aux valeurs d'une fonction similaire ChartSetInteger(chart_ID,CHART_SCALEFIX_11,0,value).

Comment se reproduire. Si le script de l'application est exécuté sur le graphique, la fonction ci-dessus sera appelée. Le champ Commentaire aura les valeurs suivantes :

Comment("résultat = ", résultat, " ; WindowPriceMax = ", WindowPriceMax, " ; WindowPriceMin = ", WindowPriceMin) ;

Ils seront également visibles si vous appuyez sur F8, onglet Général, voir les champs - "Fixer le maximum", "Fixer le minimum". Enregistrez ces valeurs (1).

Ensuite, annulez l'échelle fixe en décochant la case "Fix scale", la case "Fix scale 1:1" sera automatiquement décochée.

Fixez manuellement l'échelle par F8, onglet Général, en cochant "Fixer l'échelle 1:1", vous décochez automatiquement la case "Fixer l'échelle".

Confirmez l'action en appuyant sur OK. Appuyez à nouveau sur F8 et enregistrez les valeurs "Fix maximum", "Fix minimum" (2).

Comparez les valeurs enregistrées (1) et (2).

Par exemple, pour moi, après que le script fonctionne :

Fixer le maximum - 112.004
Assurer le minimum - 111.420

Après le réglage manuel :

Secure high - 112.004
Assurer le minimum - 111.398

PS : J'ai vérifié à nouveau. Il semble que ce ne soit pas un bug de MQL4, mais du terminal 4.00 Build 1147 16 Nov 2018
Dossiers :