Bonsoir,
voilà, je souhaiterais avoir de l’aide sur le problème suivant : je voudrais que lorsque la plus value entre le prix d’entrée (le trade price si j’ai bien compris) et le close de la bougie précédente (lorsqu’on est long par exemple) dépasse 10 pips (c’est un exemple) et que la clôture de la bougie suivant se fait en dessous de cette différence, la position soit soldée.
J’ai essayé ce programme mais ça ne fonctionne pas.
limit10 = 10*pipsize
if ((close[1] - tradeprice) > limit10) and (close < limit10) then
sell 1 contract at market
endif
merci d’avance pour votre aide.
Pour débugger, je te suggère de d’abord grapher ta condition:
graph ((close[1] - tradeprice) > limit10) and (close < limit10)
Tu verras qu’elle n’est jamais vérifiée, puisque le Close ne peut jamais être inférieure à 10 pips/points: (close < limit10)
ah oui. Je mets 11 alors ?
Tu n’as pas compris ce que je voulais dire 🙂
Dans cette condition: (close < limit10) , tu testes si le prix est inférieur à 10 points ! Je ne sais pas sur quel instrument tu utilises la stratégie, mais je pense que c’est une erreur 🙄
sur le forex exclusivement.
j’explique de nouveau : je prends une position (par exemple un achat d’euros contre USD.
Je rentre au cours de 1,13830. Je suis sur une UT 15 minutes. La clôture de la bougie suivante est à 1,13882. Puis la clôture de la bougie suivante est à 1,14000 soit un gain de 17 pips donc supérieur à 10 pips par rapport à mon cours d’achat. La clôture de la bougie suivante est 1,1392 soit 9 pips donc en dessous de ma limite de 10 pips. Je voudrais alors que le système sorte de ma position.
En clair, la sortie est déclenchée par le fait que la clôture de la bougie fait passer le gain potentiel en dessous des 10 pips alors que la clôture de la bougie précédente dégageait un gain potentiel supérieur à 10 pips.
Je vois que tu n’as toujours pas compris, dans ton test tu compares le Close qui est de 1.1392 à 0.0010, soit en français :
Est-ce que 1.1392 est inférieur à 0.0010 ?
(Close < limit10) ?
Bref, voilà le code corrigé :
limit10 = 10*pipsize
if (close[1] - tradeprice > limit10) and (close - tradeprice < limit10) then
sell 1 contract at market
endif
Merci. c’est vrai que des fois j’ai la comprenette un peu difficile.
Bonsoir,
voici le problème que j’ai avec ma sortie de position (en copie).
quelqu’un peut il m’aider ?
merci.
voilà les lignes de code pour une position short
limit10 = 10*pipsize
limit15 = 15*pipsize
limit20 = 20*pipsize
limit35 = 35*pipsize
limit50 = 50*pipsize
limit80 = 80*pipsize
limit100 = 100*pipsize
if (tradeprice – close[1] > limit10) and (tradeprice – close < limit10) then
exitshort 1 contract at market
endif
if (tradeprice – close[1] > limit20) and (tradeprice – close < limit15) then
exitshort 1 contract at market
endif
if (tradeprice – close[1] > limit50) and (tradeprice – close < limit35) then
exitshort 1 contract at market
endif
if (tradeprice – close[1] > limit100) and (tradeprice – close < limit80) then
exitshort 1 contract at market
endif
En effet, les clôtures partielles sont possibles en backtest, mais toujours refusées en trading automatique sous ProOrder. Cela sera possible, mais quand je ne sais pas pour le moment, désolé.
Bonsoir,
je ne comprends pas d’où vient ce problème de clôture partielle dans mon code? Y a t il un moyen de solutionner ce problème?
merci.
Je ne comprends pas ? J’ai répondu à ta question, en trading live, on ne peut toujours pas fermer partiellement les positions, d’ou le message d’erreur que tu as posté.
Bonsoir,
oui en effet. Ma question était de savoir quelle partie de mon code (ou pourquoi mon code) génère cette erreur? Je programme bien la vente d’1 contrat (précédée avant d’un “sell short” pour 1 contrat).
je ne sais pas si je suis bien clair.
merci.
Le code génère cette erreur car tu demandes à la plateforme de liquider 1 seul contrat :
[scode]exitshort 1 contract at market[/scode]
il faut ne rien spécifier, puisqu’on ferme l’ensemble des ordres à la fois :
[scode]exitshort at market[/scode]