ProRealTime
Pour discuter sur l’interface de ProRealTime Software, nos configurations graphiques...

Stop Profit à X en fonction d'un gain à Y

par fxbravo » 30 août 2018 13:31

Bonjour tout le monde,

Je me posais la question de savoir s'il était possible de mettre un Stop profit à +X (à minima en prenant en compte le coût du SLG) quand le trade est à +Y (genre + 10)?

Pour le moment je fais ça manuellement, mais c'est ennuyeux car il faut être devant son PC ou son iPhone. Du coup je rate de belles expos ou ballades :lol:

Ce besoin est lié au fait que je souhaite lancer des pyramides en swing (faible levier) à des niveaux définis mais avec un SLG assez large (genre 80 points). Je précise qu'un Stop suiveur n'a que peu d'intérêt pour moi dans ce type de configuration, le but est juste d'être à minima à 0 (coût du SLG compris).

Est-ce possible dans prt, et si oui, comment?

Merci d'avance pour vos retour :top:

Re: Stop Profit à X en fonction d'un gain à Y

par Lysan » 30 août 2018 15:35

Si ta position n'est pas ouverte par proorder donc ouverte manuellement, cela ne sera pas automatisable d'après mes maigres connaissances. Après il faut que je cherche si on a accès a la variable taille de point du stop garanti mais pas le temps je suis au travail. J'espère que d'autres ont la reponse sujet interressant

Re: Stop Profit à X en fonction d'un gain à Y

par fxbravo » 30 août 2018 17:01

Merci Lysan :top:

En effet, position posée "manuellement" avec un ordre stop.

Re: Stop Profit à X en fonction d'un gain à Y

par Toto le Héros » 30 août 2018 22:01

Bonjour fxbravo,
Sur prt c'est possible bien entendu. "Evidemment" aussi, il faut donc que ta position soit ouverte en automatique comme l'indique Lysan.
Cela étant si tes niveaux sont définis, on peut "facilement" imaginer que ce soit un programme très simple qui déclenche (ou 1 programme par niveau) : atteinte du niveau défini si je comprends bien ton post (le programme contiendrait la condition seuil de déclenchement de l'ordre stop ou limite à l'atteinte du seuil).
Ensuite c'est assez simple de dire au programme de bouger le SL initial (j'imagine qu'il y en a un) et le ramener à la valeur que tu souhaites. Cela se fera si la condition ("genre +10") est réalisée en clôture. La question qu'il te faut te poser c'est en quelle ut tu souhaites que cette condition soit validée.
En espérant avoir éclairé la situation....

Re: Stop Profit à X en fonction d'un gain à Y

par fxbravo » 31 août 2018 08:24

Salut Toto,

Merci pour ton retour. En effet, c'est exactement ça que je veux faire.

Si tu peux m'aider sur le code à rentrer dans prt, c'est avec plaisir que j'accepte (surtout sur la condition de remontée du stop).

Petite question: la condition ne peut se faire qu'à la clôture de la Bougie? pas sur la Bougie en cours? Si par exemple le programme tourne sur H1, et que la position s'ouvre en début de Bougie, le programme ne respectera la condition qu'à H+1?

Re: Stop Profit à X en fonction d'un gain à Y

par Toto le Héros » 31 août 2018 10:18

Je te prépare le code dans la journée.
Le principe du trading automatique (sur prt en tous cas) est en effet que la condition est vérifiée uniquement à la clôture de la Bougie (et c'est une très bonne chose en pratique... mais ce n'est pas l'objet de ce post...)
Cela dit, dans ton cas, tu peux mettre une ut courte (genre 1 minute par exemple, voire moins.... pas moins de 15 secondes suivant mon expérience). Le programme ne peut déclencher en-cours de Bougie que des ordres STOP ou LIMITE, mais pas modifier des stops par exemple.
Dans mon code je vais faire une condition d'entrée avec un ordre stop (si tu as besoin d'un ordre limite en fait, ce sera simple à changer)
A+

Re: Stop Profit à X en fonction d'un gain à Y

par fxbravo » 31 août 2018 10:43

Super! Merci toto :top:

Re: Stop Profit à X en fonction d'un gain à Y

par fxbravo » 31 août 2018 12:08

+1 -!

Re: Stop Profit à X en fonction d'un gain à Y

par Toto le Héros » 31 août 2018 16:17

Les codes sont prêts. Je dis les codes parce qu'il y en a 1 pour le LONG et 1 pour le short. Les 2 peuvent tourner en même temps sans problème si prt est configuré pour accepter des positions dans les 2 sens en même temps.

Quelques commentaires avant envoi :
- le(s) code(s) reprennent je crois fidèlement ton idée. Il y a 4 variables faciles à identifier dans le programme :
ENTREE= c'est le seuil de déclenchement où tu souhaites rentrer sur le marché (çà place un ordre stop en attente). Tu saisis "à la main" dans le code la valeur que tu souhaites.
SEUIL= c'est le gain minimum à atteindre pour déclencher la protection (+10 dans ton post initial)
SL= c'est le Stop Loss INITIAL (80 points dans ton post initial) - je l'ai réglé à 10 pour mes tests, je te laisse modifier
TP=c'est le Target Profit - je l'ai réglé à 20 pour mes tests, je te laisse modifier
PROTECT c'est le gain que tu vas sécuriser dès que la condition de seuil est validée en clôture (j'ai réglé à +1)

J'ai fait des tests sur la version "short" en ut=1min. Ça fonctionne bien. (Je n'ai pas testé la version "LONG") Quoiqu'il arrive il est évidemment recommandable de tester en DEMO les 2 versions pendant plusieurs jours avant d'envisager du réel.

La prise de position se fait donc par un ordre stop à un seuil que tu définis. (ENTREE)
La sortie peut intervenir sur les cas suivants :
- Atteinte du Target Profit
- Atteinte d'un des 2 stop loss (suivant que la condition de seuil a été atteinte avant ou non)
- Coupure de fin de journée. (Je l'ai réglée à 21h30 et le système ne peut pas prendre de position après 17h30, ni avant 9h00 : tout çà est au début du code et bien commenté ainsi que l'impossibilité d'ouvrir une position le samedi ou le dimanche)
Tant qu'aucun de ces 3 cas n'intervient, la position est ouverte. Tu peux couper manuellement via le bouton STOP de l'interface de trading automatique mais je ne le conseille jamais... enfin au cas où çà existe...). De ce fait, le code est conçu pour ne prendre qu'UNE et UNE SEULE POSITION. C'est à dire que quand une clôture de position a eu lieu, il n'en reprendra pas sans que tu STOP la stratégie (bouton évoqué juste avant, mais là tu le fais alors que le programme ne tourne pas... Il te faudra ensuite mettre la stratégie à la corbeille (icône de poubelle à côté du STOP) et la recharger...
J'espère c'est assez clair. Je serai au salon du trading au besoin si tu y es aussi pour en discuter Live!
En attendant je suis dispo sur cette file pour assurer le SAV...

Re: Stop Profit à X en fonction d'un gain à Y

par Toto le Héros » 31 août 2018 16:19

CODE short :
//-------------------------------------------------------------------------
// Main code : fxb short
//-------------------------------------------------------------------------

// Définition des paramètres du code
DEFPARAM CumulateOrders = False // Cumul des positions désactivé
// Annule tous les ordres en attente et ferme toutes les positions à l'heure "FLATAFTER"
DEFPARAM FLATAFTER = 213000

// Empêche le système de placer des ordres pour entrer sur le marché ou augmenter la taille d'une position avant l'heure spécifiée
noEntryBeforeTime = 090000
timeEnterBefore = time >= noEntryBeforeTime

// Empêche le système de placer des ordres pour entrer sur le marché ou augmenter la taille d'une position après l'heure spécifiée
noEntryAfterTime = 173000
timeEnterAfter = time < noEntryAfterTime

// Empêche le système de placer de nouveaux ordres sur les jours de la semaine spécifiés
daysForbiddenEntry = OpenDayOfWeek = 6 OR OpenDayOfWeek = 0

//Variables
ENTREE=12395//Seuil de déclenchement pour entrer à la vente sur le marché
SEUIL=10//Gain minimum déclenchant la protection de la position
SL=10//Stop Loss INITIAL
TP=20//Target Profit
PROTECT=1//Nouveau Stop sécurisant la position
once lock=0//lock bloquera le stop de protection

// Conditions pour ouvrir une position vendeuse
IF close>ENTREE and NOT shortonmarket and timeEnterBefore AND timeEnterAfter AND not daysForbiddenEntry and STRATEGYPROFIT=0 THEN
SELLSHORT 1 CONTRACT AT ENTREE STOP
EXITSHORT AT ENTREE-TP LIMIT
EXITSHORT AT ENTREE+SL STOP
ENDIF

IF shortonmarket then
EXITSHORT AT TRADEPRICE-TP LIMIT
if close<=(TRADEPRICE-SEUIL) or lock=1 then
lock=1
EXITSHORT AT TRADEPRICE-PROTECT STOP
else
EXITSHORT AT TRADEPRICE+SL STOP
ENDIF
endif

Re: Stop Profit à X en fonction d'un gain à Y

par Toto le Héros » 31 août 2018 16:19

//-------------------------------------------------------------------------
// Main code : fxb long
//-------------------------------------------------------------------------

// Définition des paramètres du code
DEFPARAM CumulateOrders = False // Cumul des positions désactivé
// Annule tous les ordres en attente et ferme toutes les positions à l'heure "FLATAFTER"
DEFPARAM FLATAFTER = 213000

// Empêche le système de placer des ordres pour entrer sur le marché ou augmenter la taille d'une position avant l'heure spécifiée
noEntryBeforeTime = 090000
timeEnterBefore = time >= noEntryBeforeTime

// Empêche le système de placer des ordres pour entrer sur le marché ou augmenter la taille d'une position après l'heure spécifiée
noEntryAfterTime = 173000
timeEnterAfter = time < noEntryAfterTime

// Empêche le système de placer de nouveaux ordres sur les jours de la semaine spécifiés
daysForbiddenEntry = OpenDayOfWeek = 6 OR OpenDayOfWeek = 0

//Variables
ENTREE=12395//Seuil de déclenchement pour entrer à l'achat sur le marché
SEUIL=10//Gain minimum déclenchant la protection de la position
SL=10//Stop Loss INITIAL
TP=20//Target Profit
PROTECT=1//Nouveau Stop sécurisant la position
once lock=0//lock bloquera le stop de protection

// Conditions pour ouvrir une position acheteuse
IF close<ENTREE and NOT longonmarket and timeEnterBefore AND timeEnterAfter AND not daysForbiddenEntry and STRATEGYPROFIT=0 THEN
BUY 1 CONTRACT AT ENTREE STOP
SELL AT ENTREE+TP LIMIT
SELL AT ENTREE-SL STOP
ENDIF

IF longonmarket then
SELL AT TRADEPRICE+TP LIMIT
if close>=(TRADEPRICE+SEUIL) or lock=1 then
lock=1
SELL AT TRADEPRICE+PROTECT STOP
else
SELL AT TRADEPRICE-SL STOP
ENDIF
endif

Re: Stop Profit à X en fonction d'un gain à Y

par fxbravo » 31 août 2018 16:47

:top: toto

Je vais tester ça semaine prochaine et te ferais un retour.

:merci: encore pour ton partage, c'est super :top:

On se verra du coup au salon ;)

Re: Stop Profit à X en fonction d'un gain à Y

par fxbravo » 31 août 2018 17:12

Petite question: à quoi sert exactement la fonction "lock"?

Car tu mets dans le code l'explication suivante: once lock=0//lock bloquera le stop de protection

et plus bas, dans les conditions d'éxécution, le lock=1.

Sinon, j'ai testé et ça ouvre bien la position. Mais le Stop n'est pas passé de -80 à +2 qand ça a dépassé les +10 en gain (c'est monté à 11.4, mais le SL est resté à -80).

J'ai sûrement du omettre une variable, je vais continuer à creuser.

Sinon, encore :merci:, et en plus le code est super propre :top:

Re: Stop Profit à X en fonction d'un gain à Y

par fxbravo » 31 août 2018 17:37

test en cours ;)
auto-trade.JPG
auto-trade.JPG (105.1 Kio) Vu 407 fois

Re: Stop Profit à X en fonction d'un gain à Y

par fxbravo » 31 août 2018 18:03

Je rencontre quelques problèmes:

- quand un ordre auto a été stoppé par le marché (soit en gain, soit en perte si le palier ne s'est pas déclenché), je supprime le "robot" et j'en rajoute un avec un nouveau niveau de prix dans le code.

Et bien, ca n'ouvre pas de nouveau trade! C'est peut-être la démo qui plante ceci dit.

Si jamais tu avais des pistes Toto, je suis preneur :top:

Re: Stop Profit à X en fonction d'un gain à Y

par Toto le Héros » 03 sept. 2018 10:02

Pour répondre à tes questions :
- la fonction "lock" intervient à partir du moment où le stop est sécurisé. Elle évite que si on repasse en dessous du seuil, le stop initial se remette en place
- concernant le cas monté à 11.4 et modification du stop non déclenchée, es-tu sûr que le seuil (10 je suppose) a été atteint EN CLÔTURE de Bougie dans l'ut de ton robot ?
- le redémarrage du robot avec un nouveau prix ne devrait pas poser de problème... je l'ai testé sur la version short
(PS : j'ai fait mes tests sur le DAX mais çà devrait fonctionner sur le DOW aussi)

Si tu relances un test, dis moi s'il te plait. Je peux lancer le même en parallèle à tout hasard. Je surveille cette file... ;)

Re: Stop Profit à X en fonction d'un gain à Y

par fxbravo » 03 sept. 2018 10:21

Salut toto,

Merci beaucoup pour tes réponses, claires et précises :top:

Sur le cas du seuil non déclenché, en effet la Bougie n'avait pas été clôturée. Du coup je pense tester l'algo sur du 1s et pas du 1min.

Je te tiendrais au courant des tests effectués.

En tout cas, un grand merci encore pour ton aide, c'est :top:

Re: Stop Profit à X en fonction d'un gain à Y

par plataxis » 03 sept. 2018 10:34

Toto le Héros a écrit :Cela dit, dans ton cas, tu peux mettre une UT courte (genre 1 minute par exemple, voire moins.... pas moins de 15 secondes suivant mon expérience).

Re: Stop Profit à X en fonction d'un gain à Y

par Toto le Héros » 03 sept. 2018 10:35

D'expérience 1 seconde ne fonctionne pas car trop court. (l'algo n'a pas le temps de réactualiser les positions)
15s devrait fonctionner. Peut-être 10 à tester.

Re: Stop Profit à X en fonction d'un gain à Y

par fxbravo » 03 sept. 2018 10:42

Ok, :top: Je vais tester ça!

Sujets similaires
Adaptation des Take-Profit/SL en fonction des Points-Pivots
par Elliott » 19 août 2019 15:43 (4 Réponses)
HELP [PRT - STREAM DECK] Stop profit déclenche un ordre stop
Fichier(s) joint(s) par JPM55 » 27 juin 2022 07:38 (11 Réponses)
Gain de 1pt avec quel stop ?
par Valentino » 31 août 2015 16:29 (14 Réponses)
PRT: affichage préalable du stop gain et perte
Fichier(s) joint(s) par max38250 » 22 sept. 2020 14:53 (6 Réponses)
stop et take profit à chaque trade?
par GDX23 » 27 oct. 2012 09:56 (8 Réponses)
Transformer un take profit en stop suiveur
par finplus » 08 mai 2016 17:17 (6 Réponses)
ratio [ target profit / stop loss ] scalping
Fichier(s) joint(s) par chrono » 30 sept. 2016 14:58 (5 Réponses)
Stop loss / take profit et volatilité ?
par TDTrading » 02 juin 2018 09:29 (4 Réponses)
Stop profit sur prt ig
par tradanto » 14 juil. 2018 02:02 (3 Réponses)
Mettre un stop profit sur un compte à risque limité
par thomas88 » 24 août 2018 10:27 (22 Réponses)