[ARCHIVE] Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 3. - page 308

 
Quelle est l'heure actuelle aux États-Unis ? Quelle est l'heure d'ouverture/de fermeture aux États-Unis ? Quelle est l'heure d'ouverture/de fermeture au Japon ? Rien qu'avec l'abolition de l'heure d'hiver, c'est un peu flou... et est-ce que l'Europe, l'Asie, les USA règlent leurs horloges ?
 
Elenn:
La solution est vraiment originale, nous devrions l'essayer. Mais lorsque le tableau est réinitialisé, les données ne seront-elles pas perdues à cause de la réinitialisation ?
.

Si vous augmentez la taille du tableau, les données précédemment saisies ne seront pas perdues. Et les cellules "capturées" (nouvelles) contiendront les déchets de la RAM. Et si vous réduisez le tableau, les données qui se trouvaient dans les cellules réduites seront irrémédiablement perdues. Il s'agit des bases de la programmation.
 
vilard:

Combien de temps faut-il pour qu'un ordre en attente MODE_TRADE devienne un ordre MODE_HISTORY ?

En un rien de temps. Les commandes en cours ne sont pas enregistrées dans l'historique.

Dès qu'il est transformé en ordre de marché et qu'il est fermé - alors il deviendra historique, mais avec un type d'ordre de marché.

Par exemple :

S'il y avait OP_BUYSTOP, il a été converti en OP_BUY. Après sa fermeture, il sera placé dans l'histoire.

MAIS, après la conversion de OP_BUYSTOP en OP_BUY, l'OP_BUYSTOP d'origine ne sera plus dans l'historique.

 
001:

Bonsoir, veuillez me conseiller. Il y a deux valeurs d'indicateur sur des barres différentes. Comment tracer une ligne à travers eux et comment l'utiliser dans l'indicateur ? Merci !

La ligne qui les sépare peut être dessinée à l'aide de l'objet OBJ_TREND. La première coordonnée est le temps et le prix de la première barre, la deuxième coordonnée est le temps et le prix de la deuxième barre.

Fonction :

//+----------------------------------------------------------------------------+
void SetTLine(color cl, string nm, datetime t1=0, double p1=0, datetime t2=0, double p2=0, int st=0, int sz=0) {
   if (ObjectFind(nm)<0) ObjectCreate(nm, OBJ_TREND, 0, 0, 0, 0, 0);
   ObjectSet(nm, OBJPROP_TIME1    , t1);
   ObjectSet(nm, OBJPROP_PRICE1   , p1);
   ObjectSet(nm, OBJPROP_TIME2    , t2);
   ObjectSet(nm, OBJPROP_PRICE2   , p2);
   ObjectSet(nm, OBJPROP_COLOR    , cl);
   ObjectSet(nm, OBJPROP_STYLE    , st);
   ObjectSet(nm, OBJPROP_WIDTH    , sz);
   ObjectSet(nm, OBJPROP_RAY      , 0);
}
//+----------------------------------------------------------------------------+

J'espère que tout y est clair.

cl - couleur de l'objet, nm - nom de l'objet, t1, p1 - coordonnées d'origine, t2, p2 - coordonnées de fin, st - style de ligne, sz - taille.

Vous pouvez également ajouter un rayon : 1 - rayon, 0 - segment. La dernière ligne de cette fonction définit un segment. Au lieu de 0, vous pouvez mettre le nom du paramètre à passer.

Quant à la manière de l'utiliser (cette ligne) dans l'indicateur, vous devez savoir ce dont vous avez besoin. Mais les données qui s'y trouvent (la ligne) peuvent être obtenues en utilisant la fonction standard

ObjectGet("nom de l'objet",propriété obligatoire de l'objet) ;

 
artmedia70:

Vous pouvez tracer une ligne entre eux en utilisant l'objet OBJ_TREND. La première coordonnée est le temps et le prix de la première barre, la deuxième coordonnée est le temps et le prix de la deuxième barre.

Fonction :

J'espère que tout y est clair.

cl - couleur de l'objet, nm - nom de l'objet, t1, p1 - coordonnées d'origine, t2, p2 - coordonnées de fin, st - style de ligne, sz - taille.

Vous pouvez également ajouter un rayon : 1 - rayon, 0 - segment. La dernière ligne de cette fonction définit un segment. Au lieu de 0, vous pouvez mettre le nom du paramètre à passer.

Quant à la manière de l'utiliser (cette ligne) dans l'indicateur, vous devez savoir ce dont vous avez besoin. Cependant, les données qui s'y trouvent (la ligne) peuvent être obtenues en utilisant la fonction standard

ObjectGet("nom de l'objet", la propriété de l'objet nécessaire) ;


Merci beaucoup ! Une autre question, si je peux me permettre. Comment travailler (j'ai besoin de savoir quelle valeur prend la tendance sur une certaine barre), comment travailler la tendance dans l'EA. Je veux transférer une partie de l'indicateur vers l'Expert Advisor (calculs).
 
Bonjour ! !! Je ne peux pas accéder au compte ! C'est quoi cette "erreur commune" ?
 
Il y a encore un problème avec l'ordinateur ?
 
Elenn:
La solution est vraiment originale, nous devrions l'essayer.


Je vais juste vous citer un petit texte du tutoriel Delphi. Ça ne fait pas de mal de le savoir.

Les "tableaux dynamiques" sont des structures de données dynamiques, le programme doit donc prévoir de les supprimer explicitement de la mémoire de l'ordinateur lorsque vous avez fini de les utiliser. Le processus de suppression des variables dynamiques inutiles de la mémoire de l'ordinateur est parfois appelé " collecte de déchets".

Une variante qui fonctionne dans MQL4 consiste à redimensionner un tableau dynamique à une longueur nulle en utilisant la fonction ArrayResize() https://docs.mql4.com/ru/array/ArrayResize lorsque le programme a fini de travailler avec lui.

 
drknn:


Je pense que je vais vous citer un petit bout de texte tiré du tutoriel Delphi. C'est bon à savoir.

Les "tableaux dynamiques" sont des structures de données dynamiques, le programme doit donc prévoir de les supprimer explicitement de la mémoire de l'ordinateur lorsque vous avez fini de les utiliser. Le processus de suppression des variables dynamiques inutiles de la mémoire de l'ordinateur est parfois appelé " collecte de déchets".

Une variante qui convient au langage MQL4 consiste à redimensionner un tableau dynamique à une longueur nulle à l'aide de la fonction ArrayResize() https://docs.mql4.com/ru/array/ArrayResize après avoir fini de travailler avec lui.

Tout cela est vrai : le nettoyage des ordures est une bonne règle de base...

Mais dans ce contexte, comment déterminer si nous devons nettoyer les "déchets" maintenant ou vice versa : ce ne sont pas des déchets, mais des données nécessaires pour d'autres calculs.

Si je comprends bien, deinit() devrait être utilisé pour nettoyer la poubelle, mais... il est exécuté non seulement lorsque le graphique d'un instrument commercial est supprimé, lorsque le conseiller expert en est retiré, mais aussi lorsque le TF est modifié. Dans ce cas, toutes les données accumulées pour la TF seront perdues et le conseiller expert recommencera à travailler avec un tableau zéro lorsqu'il reviendra à l'horizon temporel précédent. La même chose se produira si nous modifions l'un des paramètres de l'EA.

Il s'avère que dans certaines situations, le "scavenging" est un processus logique complexe, plutôt que de simplement changer la taille d'un tableau.

 
001:

Merci beaucoup ! Une autre question, si je peux me permettre. Comment travailler(j'ai besoin de savoir quelle valeur prend la tendance sur une certaine barre), comment travailler avec la tendance dans l'EA. Je veux transférer une partie de l'indicateur vers l'Expert Advisor (calcul).

ObjectGetValueByShift() pour vous aider.

Et comment vous allez travailler avec elle - vous seul le savez...

Raison: