question sur un code de la documentation: IF MyIndex + NbBarLimit
Forums › ProRealTime forum Français › Support ProOrder › question sur un code de la documentation: IF MyIndex + NbBarLimit
- This topic has 4 replies, 2 voices, and was last updated 1 year ago by ZeroCafeine.
-
-
03/21/2023 at 8:24 PM #211895
Hello,
J’ai trouvé ce code dans la documentation et j’ai un peu de mal à comprendre la ligne ” IF MyIndex + NbBarLimit ”
1234567891011121314151617181920212223242526// Définition de la durée de validité de l'ordreONCE NbBarLimit = 10MM20 = Average[20](close)MM50 = Average[50](close)// Si la MM20 croise à la hausse la MM50, nous définissons 2 variables : "MyLimitBuy" et "MyIndex", qui contiennent respectivement le prix de clôture actuel et l'index de la barre concernée par le croisement.IF MM20 CROSSES OVER MM50 THENMyLimitBuy = CloseMyIndex = BarindexENDIFIF BarIndex >= MyIndex + NbBarLimit THENMyLimitBuy = 0ENDIF// Place un ordre au prix correspondant de MyLimitBuy, valable tant que cette variable est supérieure à 0 et que nous ne sommes pas en position long.// Rappel : MyLimitBuy est supérieur à 0 pendant les 10 barres qui suivent le croisementIF MyLimitBuy > 0 AND NOT LongOnMarket THENBUY 1 SHARES AT MyLimitBuy LIMITENDIF// Si un ordre n'est pas exécuté, il est possible de remplacer l'ordre d’achat limite expiré par un ordre d'achat au marché. Le bloc de code vous en donnera la possibilité s'il est ajouté à la suite du bloc précédent :IF MyIndex + NbBarLimit AND MyLimitBuy > 0 AND NOT LongOnMarket THENBUY 1 SHARES AT MARKETENDIFune fois que la variable MyIndex est initier elle sera donc toujours positif, donc la condition toujours vrais ? J’ai un peu du mal à comprendre
merci pour vos lumières 😊
03/22/2023 at 9:47 AM #211909MyIndex est le numéro du chandelier qui a vu le croisement des moyennes mobiles 20 et 50, lignes 8 à 11. Donc si on est sur le chandelier courante (BARINDEX) + NbBarLimit, soit 10 barres plus loin, alors on reset la variable MyLimitBuy et donc on ne pose plus de BUY LIMIT (lignes 19 à 21).
1 user thanked author for this post.
03/22/2023 at 11:53 PM #211956Merci @Nicolas,
Tout à fait votre réponse, mais j’ai peut-être mal formulé ma question, mon incompréhension réside à la ligne 24 du code, je ne comprends pas la première condition qui est “MyIndex + NbBarLimit” :
1IF MyIndex + NbBarLimit AND MyLimitBuy > 0 AND NOT LongOnMarket THENUne fois que la variable MyIndex est initié elle sera toujours positif donc quelque soit la valeur de NbBarLimit alors on aura : MyIndex + NbBarLimit > 0, est-ce qu’il n’est pas possible par exemple de remplacer la ligne 24 par la suivante ? :
1IF MyIndex AND MyLimitBuy > 0 AND NOT LongOnMarket THEN03/23/2023 at 9:33 AM #211968En effet il y a un truc qui va pas, mais je n’arrive pas à saisir la logique de l’exemple, puisque dés qu’on aura dépasser la quantité de chandeliers pour placer des ordres LIMIT, MyLImitBuy repassera à 0.
Aussi, avec ta correction ça signifie qu’on rentre directement au marché sans attendre une expiration, donc placer un ordre LIMIT devient inutile.. Je vais me renseigner sur cet exemple.
1 user thanked author for this post.
04/03/2023 at 5:16 PM #212742Hello
c’est bon j’ai commpris :1IF MyIndex + NbBarLimit AND MyLimitBuy > 0 AND NOT LongOnMarket THENla variable NbBarLimit la variable est déclaré une seule fois avec la fonction Once, ce qui signifie après sa premiere lecture sur la ligne 13 elle sera alors indéfini, ou si on ajoute le deuxième titre avec la variable MyIndex qui ne sera déclaré et donc positif seulement si notre condition de croisement de moyenne mobile a eu lieu
Donc il est bien possible que les deux variables ne soit pas déclaré et ça nous donnerait donc un résultat éliminatoire pour la dernière condition :
1IF 0 + 0 AND MyLimitBuy > 0 AND NOT LongOnMarket THEN -
AuthorPosts