Bonsoir,
Je suis face à un problème. J’ai un indicateur qui va générer des signaux de vente et d’achat. J’aimerais que mon algo puisse cumuler plusieurs positions s’il y a plusieurs signaux dans un même sens.
J’ai d’abord changé le cumul d’ordre en true. A partir de là c’est bon l’algorithme prend tous les signaux. Sauf que si par exemple il prend un trade à l’achat et que ensuite il y un signal à la vente dans ce cas il va fermer ma position à l’achat pour pouvoir ouvrir un short. (ce que je ne veux pas).
Ce que je veux est que l’algorithme :
- soit hedge (en ayant des positions dans 2 sens).
2. Soit que l’algorithme ignore le signal de vente car il est déjà à l’achat et toujours en position (car tp et sl pas encore atteint). > Pour cette option tout ce que j’avais trouvé c’est de mettre la condition suivante : “AND NOT ONMARKET”. Sauf que du coup il ne peut plus cumuler plusieurs positions dans un même sens.
Si jamais une des deux options proposées ci-dessus est possible, est-il possible de faire en sorte que l’algorithme si en perte sur une première position puis en gain sur une deuxième position (dans le même sens) puisse décider de fermer si la moyenne des 2 positions est gagnante de X points.
Exemple concret sur le Dax.
Premier signal d’achat de mon indicateur à 13500 pts.
Le cours descend à 13450 pts > Second signal d’achat sur les 13450 pts.
Ducoup l’on se retrouve à 2 positions avec un prix moyen d’entré à 13475. >>>>>>> Comment faire pour que l’algo ferme les 2 positions si le cours remonte à 13480 ?
Merci d’avance pour vos réponses et votre aide précieuse. (surtout à Nicolas!)
1/ hedging pas possible
Pour éviter de prendre une position short si on est long, alors tester si on déjà long avec :
if not longonmarket then
//pim pam poum, on vend!
endif
Le prix moyen des positions en cours est POSITIONPRICE, donc tu peux placer un ordre de vente pour ton cumul d’achat comme ceci :
takeprofit = 10 //taille du takeprofit en point
sell at positionprice+takeprofit*pointsize limit
Bonjour merci, à quel partie de mon code dois-je mettre la ligne “sell at positionprice+takeprofit*pointsize limit”
sachat que mon code à cette forme là :
// Conditions pour ouvrir une position acheteuse
IF NOT LongOnMarket AND VosConditions THEN
BUY 1 CONTRACTS AT MARKET
ENDIF
// Conditions pour fermer une position acheteuse
If LongOnMarket AND VosConditions THEN
SELL AT MARKET
ENDIF
// Conditions pour ouvrir une position en vente à découvert
IF NOT ShortOnMarket AND VosConditions THEN
SELLSHORT 1 CONTRACTS AT MARKET
ENDIF
// Conditions pour fermer une position en vente à découvert
IF ShortOnMarket AND VosConditions THEN
EXITSHORT AT MARKET
ENDIF
// Stops et objectifs : entrez vos stops et vos objectifs ici
Edit par modérateur: code ci-dessus reformaté par modérateurs, merci d’utiliser le bouton “insert PRT code” pendant la création de vos messages pour afficher le code au bon format
Autant pour moi j’ai trouvé.
La ligne “sell at positionprice+takeprofit*pointsize limit” fonctionne très bien pour cloturer tous les achats.
Quelle est la ligne similaire pour cloturer tous les shorts ?
J’ai essayé de remplacer le “sell” par “exitshort” mais cela ne semble pas fonctionner
Pour fermer les positions de vente en gain, il faut bien entendu que le niveau de sortie des positions soit en dessous du prix moyen 🙂
exitshort at positionprice - takeprofit*pointsize limit