Questions "pour" du conducteur de vélo - page 16

 
RaptorUK:

Les positions et les indices sont la même chose et ils vont de 0 à 9. Il n'y a rien qui soit de 1 à 10... expurgez-le de votre cerveau.

Cela doit être rectifié, pronto.

Si les indices et les numéros de position sont identiques, alors c'est vrai...

Dix tickets au total dans le pool d'ordres des transactions actives :

les numéros de position des tickets sont les suivants : 0,1,2,3,4,5,6,7,8,9

les numéros de position des tickets indexés sont les suivants : |0|1|2|3|4|5|6|7|8|9|

Si c'est effectivement le cas, le numéro de position d'un billet peut être zéro (0).

Veuillez confirmer les déclarations ci-dessus ou indiquer le contraire.


Merci.

 
WhooDoo22:

Cela doit être rectifié, pronto.

Si les indices et les numéros de position sont identiques, alors c'est vrai...

Dix tickets au total dans le pool d'ordres des transactions actives :

les numéros de position des tickets sont les suivants : 0,1,2,3,4,5,6,7,8,9

les numéros de position des tickets indexés sont les suivants : |0|1|2|3|4|5|6|7|8|9|

Si c'est effectivement le cas, le numéro de position d'un billet peut être zéro (0).

Nous en avons déjà parlé... un ordre a un numéro de ticket... un ordre a également une position dans le Trading pool pour les ordres ouverts/en attente ou dans le History pool pour les ordres clôturés...

Si nous avons 10 ordres ouverts, les positions des ordres sont de 0 à 9 ou 0,1,2,3,4,5,6,7,8,9 ou |0|1|2|3|4|5|6|7|8|9| end, Fin, done

 
RaptorUK:

Nous sommes déjà passés par là... un ordre a un numéro de ticket... un ordre a aussi une position dans le Trading pool pour les ordres ouverts/en attente ou dans le History pool pour les ordres fermés...

Si nous avons 10 ordres ouverts, les positions des ordres sont de 0 à 9 ou 0,1,2,3,4,5,6,7,8,9 ou |0|1|2|3|4|5|6|7|8|9| end, Fin, done


Merci.
 

Bonjour Forum de la communauté MQL4,

Actuellement, je tente de sauvegarder les valeurs de prix pour les clôtures d'ordres. J'ai essayé d'inclure la fonction OrderProfit() mais je ne l'aime pas. Je l'utiliserai si toutes les autres solutions échouent. J'aimerais sauvegarder le prix de clôture de l 'ordre :) en utilisant plutôt la fonction OrderClosePrice(). Une fois que tous les prix de clôture des ordres sont enregistrés, je pourrais regrouper les résultats par paires. Une fois regroupés en paires, additionnez chaque groupe puis divisez chaque groupe par deux pour obtenir leur moyenne. Une fois la moyenne de toutes les paires calculée, regroupez les résultats et répétez le processus. Une fois que toutes les paires ont été moyennées et qu'il ne reste qu'un seul total, je soustrais l'écart de ce total et si le résultat est supérieur ou égal (>=) au prix d'ouverture de l'ordre, un booléen reste faux. Si le résultat est inférieur au prix d'ouverture de l'ordre, un booléen serait initialisé à vrai.

Quelqu'un a-t-il déjà été confronté à ce problème ? Si c'est le cas, pouvez-vous nous fournir quelques avertissements à garder à l'esprit ?

Merci de votre compréhension.

 
WhooDoo22:

Quelqu'un a-t-il déjà emprunté cette voie ? Si oui, pouvez-vous nous donner quelques conseils à garder à l'esprit ?

Ne le faites pas... lisez ce dont vous avez besoin dans le pool historique, tout y est. Gardez les choses simples... si vous sauvegardez les données dans un tableau, vous devez aussi les sauvegarder dans un fichier pour pouvoir les récupérer en cas de panne de MT4 ou de PC... etc, etc, etc...

HEADACHE
 

Ah oui, la piscine historique. "No-brainer !". T'es un vrai pro Simon ! Hahaha ! ;) Pourquoi n'y ai-je pas pensé en premier, hein ?

Tu vas faire de moi une "rock-star du codage MQL4" ! Hahahaha !

Merci à vous

 

Simon,

J'ai examiné la documentation sur les opérateurs "Break" et "Continue". D'après ce que je peux voir, un opérateur 'Break' termine un cycle 'while' ou 'for' en passant le contrôle du programme à la ligne de code suivante sous le cycle 'while' ou 'for'. Un opérateur 'Continue' arrête de lire le corps du cycle 'while' ou 'for' de l'opérateur et transmet le contrôle du programme à l'expression du cycle 'while' de l'opérateur OU à l'expression 2 si le cycle 'for' ne possède pas d'expression 3 ou à l'expression 3 si le cycle 'for' possède l'expression 3.

Que pensez-vous de cette question ?

Je vous remercie.

 
WhooDoo22:

Simon,

J'ai examiné la documentation sur les opérateurs "Break" et "Continue". D'après ce que je peux voir, un opérateur 'Break' termine un cycle 'while' ou 'for' en passant le contrôle du programme à la ligne de code suivante sous le cycle 'while' ou 'for'. Un opérateur 'Continue' arrête de lire le corps du cycle 'while' ou 'for' de l'opérateur et transmet le contrôle du programme à l'expression du cycle 'while' de l'opérateur OU à l'expression 2 si le cycle 'for' ne possède pas d'expression 3 ou à l'expression 3 si le cycle 'for' possède l'expression 3.

Que pensez-vous de cette question ?

Merci.

En résumé : utilisez continue à l'intérieur d'une boucle pour revenir au point d'entrée. Utilisez break pour sortir de la boucle immédiatement.

Une dernière chose, break et continue sont des opérations d'optimisation du code, vous n'en avez jamais vraiment besoin. De plus, utilisez-les avec précaution car ils peuvent conduire à des bogues difficiles à détecter.

Comme presque toujours en programmation, un simple exemple en dit plus que 1000 mots :

for(int i=0;i<10;i++){
 Print("1");
 continue;
 Print(2);
}

//Prints: 1111111111

for(int i=0;i<10;i++){
 Print("1");
 break;
 Print(2);
}

//Prints: 1

 

Michael, merci pour votre explication en mots et en code. Les deux sont explicatifs.

Merci

Raison: