Bonjour,
Je vous rejoins ce jour avec mon lot de questions, je m’en excuse !
J’ai fais quelques recherches mais n’ayant pas trouvé de réponse concrète je me permets d’ouvrir un nouveau topic.
#1. Dans le cas de plusieurs conditions IF, contenant par exemple un SELL AT xxxxx STOP :
IF 1 = 1 THEN
SELL AT 100 STOP
ENDIF
IF 2 = 2 THEN
SELL AT 200 STOP
ENDIF
IF 3 = 3 THEN
SELL AT 300 STOP
ENDIF
Comment sera exécuté ce code en probacktest/proorder
A savoir, est ce que le programme à l’issue de l’exécution retient le premier SELL ou le dernier SELL ?
Cette question à l’air terriblement stupide, mais j’obtiens des choses un peu contradictoire au niveau des backtests donc j’aimerai une réponse claire et précise (si telle réponse existe).
#2 Je profite de ce mette pour une deuxième question.
BUY 1 SHARES AT MARKET
IF LONGONMARKET THEN
// PEU IMPORTE
ENDIF
Imaginons maintenant ce code s’exécuter en clôture de bougie, est ce que je rentrerai dans le LONGONMARKET durant la même exécution que le BUY ou il faudra attendre l’exécution suivante ?
Autrement dit, est ce que LONGONMARKET est initialisé en global et reste fixe durant toute l’exécution, ou alors il peut varier dans la même instance ? (ce qui revient à savoir si c’est du synchrone ou asynchrone)
Merci beaucoup par avance
Enzo
Le code étant lu de haut en bas, c’est le premier ordre STOP qui sera lu et donc posé en attente.
LONGONMARKET a besoin d’une période pour connaître son état.
Bonjour Nicolas,
Je comprends que le code est lu de haut en bas, mais cela veut dire qu’une fois un SELL envoyé, il ne peut pas être écrasé durant la même exécution ?
Car la réponse du code lu de haut en bas ne réponds pas précisément à la question, est ce que les ordres en cascade s’écrasent (et se remplacent) ou non ?
=> A savoir donc que le dernier SELL écraserait tous les autres d’avant car le programme s’exécute de haut en bas.
Bien qu’il me semble avoir compris que la réponse est non, vu ton message précédent, je m’excuse de bien vouloir être précis.
Merci pour ta rapidité de réponse :)))
Si je lance par exemple ce code en temps réel:
if not longonmarket then
buy at market
endif
IF 1 = 1 THEN
SELL AT close-100*pointsize STOP
ENDIF
IF 2 = 2 THEN
SELL AT close-200*pointsize STOP
ENDIF
IF 3 = 3 THEN
SELL AT close-300*pointsize STOP
ENDIF
C’est bien l’ordre à -100 points qui s’active.
L’idéal ici étant d’inscrire dans une variable la valeur prix à utiliser par une seule et même instruction SELL AT x STOP.
Merci pour cette démonstration par l’exemple Nicolas, c’est clair maintenant.
* Tout à fait pour la variable 😉
Bonjour,
J’ai de nouveau une petite question de boulet.
Peut être (j’en suis sur) que Nicolas, tu as la réponse..
PlusHaut = highest[10](high)
valeur1 = PlusHaut[1]
valeur2 = PlusHaut[2]
Dans le cas du code si dessus, je comprends parfaitement que valeur1 retournera la valeur la plus haute sur les 10 derniers chandeliers.
En revanche, serait-il possible de savoir ce que contient valeur2 ?
(Je ne sais pas comment “tracer”/”afficher” le contenu des variables. Il n’y a pas de logger ou autre ?)
Merci encore
Avec ça la variable Plushaut te donne le plus haut des 10 hauts parmi 10 chandeliers qui sont ton chandelier en cours + les 9 précédents chandeliers. Ici le 10 entre crochets appliqué au mot-clé highest représente un nombre total de chandeliers
Alors que dans valeur1 et valeur2, le nombre entre crochets représente non pas un total de chandeliers mais un numéro de chandelier précédent.
Autrement dit valeur1 égale la variable Plushaut non pas sur le chandelier en cours, mais sur le 1er chandelier précédent (soit le plus haut parmi 10 chandeliers allant du 1er précédent au 10e précédent mais sans celui en cours).
Et valeur2 égale ta variable Plushaut du 2e chandelier précédent (soit le plus haut du groupe de 10 chandeliers entre le 2e précédent et le 11e précédent)
Non, il n’y a pas de log malheureusement dans les backtests, il faut utiliser GRAPH et GRAPHONPRICE.
Sinon tu RETURN les variables dans un indicateur.
Merci à tous les deux c’est bien compris !