Programmation trading automatique avec PRTBand
Forums › ProRealTime forum Français › Support ProOrder › Programmation trading automatique avec PRTBand
- This topic has 16 replies, 3 voices, and was last updated 1 year ago by Nicolas.
-
-
03/18/2023 at 12:27 PM #211709
Bonjour,
j’ai un indicateur (sur DAX) que j’aimerai pouvoir intégrer dans un trade automatique mais je n’arrive pas à programmer le code, si quelqu’un pouvait m’aider par avance merci. De plus j’aimerai aussi y intégrer un SL/TP automatique.
Ci après le code actuel de l’indicateur à intégrer :
1234567891011121314151617a = PRTBandsShortTermif a>a[1] and a[1]<a[2] and trend<=0 then //la ligne fait un crochet de bas en hauttrend=1r=0g=255elsif a<a[1] and a[1]>a[2] and trend>=0 then //la ligne fait un crochet du haut vers le bastrend=-1r=255g=0endifsignal = trend<>trend[1] //tendance s'inverseif signal and trend>0 thendrawarrowup(barindex,prtbandsdown) coloured(r,g,0)elsif signal and trend<0 thendrawarrowdown(barindex,prtbandsup) coloured(r,g,0)endifreturn03/19/2023 at 10:47 AM #211727Bonjour
Pouvez-vous donner une copie d’écran comment l’indicateur se présente.
La lecture succinte de votre code semble dessiner des objects mais pas indiquer des valeurs. Une possibilité, si j’ai bien compris semble être de retourner une valeur appelée sortie +1, 0 ou -1
- initialiser sortie à 0 avant la ligne signal = trend<>trend[1]… il manque pour moi un if
- +1 lorsque on est dans la ligne drawarrowup(barindex,prtbandsdown) coloured(r,g,0), juste rajouter sortie = 1
- -1 lorsque on est dans la ligne drawarrowdown(barindex,prtbandsup) coloured(r,g,0)
- et retourner en dernière ligne signal
le code des dernières lignes serait donc
===========================
Signal = 0
if signal = trend<>trend[1] then
//tendance s’inverseif signal and trend>0
// drawarrowup(barindex,prtbandsdown) coloured(r,g,0)… on peut pas dessiner en même tempssortie = 1
elsif signal and trend<0 then//drawarrowdown(barindex,prtbandsup) coloured(r,g,0)
sortie = -1
endif
return sortieSi vous avez appelé votre indicateur MonSignal il faut l’afficher pour vérification dans une nouvelle fenêtre en dessous des cours
Dans votre Backtest ou dans votre Code pour proorder, il suffit d’appeler via l’instruction call par exemple
Decision = call “MonSignal”
et ensuite prendre les décisions
if Decision = 1 and Not onMarket then
Buy 1 share at market
elsif Decision = -1 and Not onMarket then
Sellshort 1 share at Market
J’esoère que j’aurai pu vous être utile
03/19/2023 at 4:04 PM #211737Bonjour et merci pour votre aide,
je vais essayer d’être plus précis:
ci joint le code épuré sans objet ni couleur à intégrer,
a = PRTBandsShortTerm
if a>a[1] and a[1]<a[2] and trend<=0 then trend=1=> passer à l’achat en positionnant SL et TP
elsif a<a[1] and a[1]>a[2] and trend>=0 then trend=-1
=> passer à l’achat en positionnant SL et TP
endif
Par contre je ne sais absolument pas coder, si vous pouviez m’écrire la totalité du code vous seriez au Top, par avance merci.
03/20/2023 at 9:13 AM #211760Ci-dessous le code qui permet de passer à l’achat dés que la ligne du PRTBands Short term monte et de passer à la vente dés qu’elle descend:
1234567891011121314defparam cumulateorders=falsea = PRTBandsShortTermif a>a[1] and a[1]<a[2] and trend<=0 thentrend=1buy 1 contract at marketset target pprofit 100set stop ploss 30elsif a<a[1] and a[1]>a[2] and trend>=0 thentrend=-1sellshort 1 contract at marketset target pprofit 100set stop ploss 30endif1 user thanked author for this post.
03/20/2023 at 3:31 PM #21181403/21/2023 at 8:22 AM #211856Tout fonctionne bien et je vous en remercie, en revanche j’aimerai quelques derniers réglages.
En effet, étant donné que j’utilise ce code en UT très courtes 30 secondes, il se peut que durant ces 30 secondes rien ne se passe (ni TP, ni SL) et à ce moment là il faudrait rajouter une condition “remise à zéro/reset” à la fin de la bougie précédente pour redémarrer la nouvelle.
Par avance merci,
03/21/2023 at 8:28 AM #21185703/21/2023 at 10:44 AM #211865Oui, si possible. C’est à dire que l’UT étant très courte, en fonction des mouvements haut/bas il y a des dysfonctionnement, donc j’ai pensé qu’en ré initialisant la bougie à sa clôture, on repart “propre” pour la suivante. Je ne sais pas si ça a du sens….je ne suis pas vraiment spécialiste.
03/21/2023 at 1:23 PM #211873Le robot va ouvrir un ordre d’achat dés que la ligne passe du rouge au vert et vice versa pour une vente. Cette condition est testée à fin de bougie (donc ici une seule fois toutes les 20 secondes). C’est peut être ce comportement que tu voudrais modifier ? C’est à dire agir durant la bougie de 20 secondes si la couleur change ?
03/21/2023 at 1:49 PM #21187503/22/2023 at 3:08 PM #21192903/24/2023 at 2:40 PM #212057Très bien, dans ce cas, il faudra lancer le code ci-dessous sur une unité de temps plus petite que celle déclarée à la ligne 3 (à modifier à convenance).
Il faut bien sûr s’attendre à ce qu’il y ai plusieurs ordres qui s’ouvrent et se ferment durant le même chandelier de 20 secondes selon le changement de couleur qui s’opérera durant la bougie.
1234567891011121314151617defparam cumulateorders=falsetimeframe(20 secondes)a = PRTBandsShortTermtimeframe(default)if a>a[1] and a[1]<a[2] and trend<=0 thentrend=1buy 1 contract at marketset target pprofit 100set stop ploss 30elsif a<a[1] and a[1]>a[2] and trend>=0 thentrend=-1sellshort 1 contract at marketset target pprofit 100set stop ploss 30endif03/25/2023 at 2:18 PM #212101Merci pour votre réponse, je vais regarder ça de plus près et mettre en test.
De plus, j’ai vu sur le forum que vous aviez travaillé aussi sur “des moyennes ATR” :
cet indicateur me semble très judicieux, mais je ne comprends pas bien comment l’intégrer dans ma stratégie, c’est à dire comment déclencher une prise de position aussi lorsque cette moyenne ATR atteint un certain niveau et quel niveau ?Merci beaucoup03/25/2023 at 2:27 PM #21210203/27/2023 at 2:25 PM #212200Il faudra ajouter la condition à tester à la ligne 7 pour les achats et 12 pour les ventes.
Puisque cette moyenne évolue différemment selon l’unité de temps et le sous jacent, on ne peut pas vraiment définir de seuil universel, à voir .. ?
-
AuthorPosts
Find exclusive trading pro-tools on