[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 168

 
DhP:

Comment rendre ce cycle plus "facile" ? Il faut beaucoup de temps pour compter.
 if(iHigh(NULL,60,i)>LOWprice && LOWprice>iLow(NULL,60,i)) if(LOWprice> bid) CountH++ else CountL++; 
 
Dites-moi, pourquoi avez-vous besoin de barres "plus d'un an" ? Pourquoi avez-vous besoin de barres "sur un an" si vous n'avez réellement besoin que de données "sur une certaine zone" ? Trouvez un outil qui définit la "taille de la parcelle", puis utilisez le nombre de barres égal à la "taille de la parcelle".
 
splxgf:
Oui, c'est plus "coloré" et plus correct.
 
DDFedor:
Dites-moi, pourquoi avez-vous besoin de barres "plus d'un an" ? Pourquoi avez-vous besoin de barres "sur un an" si vous n'avez réellement besoin que de données "sur une certaine zone" ? Trouvez un outil qui définit la "taille de la parcelle", puis utilisez le nombre de barres égal à la "taille de la parcelle".
Je ne comprends pas...
 
Je ne sais pas si c'est beau ou correct, mais cela permet de se débarrasser du double appel iHigh,iLow... Je suis trop paresseux pour y penser maintenant, si vous comprenez la logique du code, peut-être y aura-t-il d'autres options.
 
splxgf:
Je ne sais pas si c'est beau ou correct, mais cela permet de se débarrasser du double appel iHigh,iLow... Je suis trop paresseux pour y penser maintenant, si vous comprenez la logique du code, peut-être y aura-t-il d'autres options.


ici :

          if(LOWprice> bid)if(iHigh(NULL,60,i)>LOWprice && LOWprice>iLow(NULL,60,i))CountH++;  
          if(LOWprice<=bid)if(iHigh(NULL,60,i)>LOWprice && LOWprice>iLow(NULL,60,i))CountL++;

pas de double appel iHigh,iLow - il y a un contrôle supplémentaire if(LOWprice<=bid) - nous devrions utiliser else

 
splxgf:
Je ne sais pas ce qu'il en est de la beauté et de la correction, mais cela permet d'éviter les doubles iHigh, iLow... Je suis trop paresseux pour y penser maintenant, mais si je comprends la logique du code, il y aura peut-être d'autres options.

Pour la tête fraîche de demain :

Une double boucle (while et for) sélectionne les prix supérieurs et inférieurs à l'offre et compte combien de fois le prix "pénètre" les barres horaires au cours de l'année.

Le prix qui a traversé le plus de barres est le niveau de résistance le plus fort.

Nous avons donc deux niveaux forts dans la fourchette de 600 points. Au-dessus et en dessous de l'offre.

 

Sinon, je créerais un grand tableau (60 kilo-octets ne sont pas de trop et peuvent être sacrifiés au nom de la rapidité) de niveaux de prix et je le remplirais avec le nombre de croisements par les barres horaires. Il serait appelé une fois init et à l'apparition d'une nouvelle barre horaire les niveaux nécessaires seraient incrémentés, et dans tous les autres cas le tableau serait choisi pour le prix nécessaire avec un simple cycle.

 
abolk:


si par programme - lors de l'ouverture d'un ordre - il y a un magik et un commentaire - vous pouvez crypter les informations sur la condition spécifique sous laquelle l'ordre est ouvert dans le magik ou le commentaire.

en général, le stop n'est pas déclenché par une condition, mais lorsque le prix atteint un niveau de prix - l'ordre peut être fermé par une condition

Et comment revenir au commentaire déjà écrit après n barres après l'avoir écrit ?


En général, comment puis-je obtenir des informations sur le dernier ordre clôturé ?

 
Xaoss1990:

Comment revenir sur un commentaire déjà écrit, n barres après l'avoir écrit ?

En général, comment puis-je obtenir des informations sur le dernier ordre clôturé ?


la commande est sélectionnée https://docs.mql4.com/ru/trading/OrderSelect - soit par une boucle, soit par une sélection par ticket.

puis en utilisant la fonction Order*(), le paramètre d'ordre respectif est recherché.

Raison: