Toute question des nouveaux arrivants sur MQL4 et MQL5, aide et discussion sur les algorithmes et les codes. - page 1859

 
Владимир Казаков #:
Et dites-moi, y a-t-il une différence de vitesse de traitement entre un tableau statique et un tableau dynamique ?

Si vous comparez la manipulation de deux très grands tableaux, statique et dynamique, il peut y avoir ou non une différence... En utilisation normale, il n'y a pratiquement aucune différence.

 

Mihail Matkovskij, Andrey Sokolov, merci les amis, pour cette réponse claire et rapide !

Il y a vraiment eu une erreur avec OP_SELL, OP_BUY (confusion due à une inattention). J'ai tout normalisé par nDigits, ajouté une vérification par OrderSend pour les erreurs. J'espère que tout fonctionnera. Je ne peux pas le vérifier maintenant, le marché est fermé ;)). Maintenant jusqu'à lundi

 
Mihail Matkovskij #:

Si vous comparez 2 très grands tableaux, statique et dynamique, il peut y avoir ou non une différence... En utilisation normale, il n'y a pratiquement aucune différence.

Malheureusement, il y a...

La différence dans l'utilisation des deux fonctions :

double foo(someargs..) {
   double tmpdata[];
   ArrayResize(tmpdata,100);
   ...
}
static double tmpdatabar[100];
double bar(someargs..) {
   ...
}

sera significatif.

Si vous connaissez à l'avance la taille maximale du tableau et qu'elle n'est pas trop grande 🚲.

il est préférable de l'étaler à l'avance

 
Владимир Казаков #:
Y a-t-il une différence de vitesse de traitement entre un tableau statique et un tableau dynamique ?

Qu'entend-on par "traitement" ?

Dans tous les cas, l'existence d'une différence et son importance pour un cas particulier peuvent être révélées par le profilage.

 
Maxim Kuznetsov #:

historiquement, il y a eu des situations où l'offre d'achat est arrivée non normalisée

sont-ils venus avec plus de caractères que sur le symbole ?

 

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

Toutes les questions des débutants sur MQL4 et MQL5, conseils et discussions sur les algorithmes et les codes.

Maxim Kuznetsov, 2022.01.15 11:29

il y a malheureusement...

la différence dans l'utilisation des deux fonctions :

double foo(someargs..) {
   double tmpdata[];
   ArrayResize(tmpdata,100);
   ...
}
static double tmpdatabar[100];
double bar(someargs..) {
   ...
}

serait important.

si on connaît à l'avance le volume maximal d'un tableau et qu'il n'est pas trop grand 🚲.

il est préférable de le distribuer à l'avance.

Et qui fait ça quand on a besoin de vitesse, je suis gêné de le demander ?

Voici comment procéder :

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

Toutes les questions des débutants sur MQL4 et MQL5, aide et discussion sur les algorithmes et les codes.

Mihail Matkovskij, 2022.01.15 10:24

input int     trendSlowCountBar=9;

double  MAslowTrend[];

int OnInit() {
  ArrayResize(MAslowTrend, trendSlowCountBar, 0);
  ...
  return(INIT_SUCCEEDED);
}

Vous pouvez l'utiliser comme n'importe quel tableau, quel que soit le type de tableau.

Ce sont des choses simples ! Mais non. Je vais expliquer dans une centaine de pages ce qui est déjà évident...

 
Andrey Sokolov #:

Ceux-ci ont-ils été livrés avec plus de marques que sur le symbole ?

? ???

Quel genre de signes ?

 
Maxim Kuznetsov #:

? ???

Quels signes ?

Maintenant, cela prouvera toujours ce que la demande et l'offre viennent faire. Et dans la nouvelle construction, il y aura un échec et le prix ne sera pas normalisé. Ou peut-être les développeurs décideront-ils de changer le concept (puisque SL et TP doivent être normalisés, il est possible de faire des prix d'entrée sur le même principe). Et ils écriront qu'il faut maintenant normaliser le Ask and Bid. Et ensuite il commencera à courir. Il va commencer à réécrire toutes ses demandes. Et ceux à qui il a écrit des demandes de freelance ne seront pas satisfaits (car les commandes ne s'ouvriront plus normalement) et exigeront des améliorations.

 
Andrey Sokolov #:

ceux qui sont arrivés avec plus de marques que sur le symbole ?

Oui, c'est ce qui s'est passé. En général, tous les nombres à virgule flottante qui vont vers le serveur - doivent être normalisés - c'est un axiome de bon ton et de fonctionnement stable (indépendamment de ce qui a été ou n'a pas été dit, ou de ce qui est écrit dans la documentation ... (Aujourd'hui dit une chose, demain une autre)).

Si vous devez construire un objet graphique sur le terminal, vous n'avez pas besoin de le normaliser, mais si vous le demandez sur le serveur, vous devez

 
Mettez-vous dans le bain... Si le serveur n'accepte pas les valeurs de prix ou de taille de lot non normalisées, il ne peut pas en avoir non plus.