Correction d'un code qui ne respecte pas le cumulateorder
Forums › ProRealTime forum Français › Support ProOrder › Correction d'un code qui ne respecte pas le cumulateorder
- This topic has 4 replies, 2 voices, and was last updated 4 years ago by Nicolas.
-
-
05/05/2020 at 11:03 AM #129996
Bonjour,
Petite interrogation ce matin :
Je teste un code pour prendre position suite à l’accumulation de X bougies vertes/rouges et prendre seulement les gains de la bougie courante (enfin à l’ouverture de la bougie suivante obligatoirement, mais c’est l’idée).
Je ne souhaite pas qu’une position soit à nouveau prise même si la bougie X+1 est elle aussi toujours de la même couleur, mais seulement quand la configuration revient la prochaine fois.
Pour simplifier, voici un extrait du code écourté, seulement en version à la vente, pour montrer le mécanisme :
1234567891011121314151617181920212223242526272829// ParamètresSize = X //position sizeStopLoss = X //stoploss in pointsTakeProfit = X //takeprofit in pointsXcandlesticks = X //consecutive bullish or bearish candlesticks to open a new positioncumulateorder = 0 //(0=false ; 1=true) cumulate or not a new trade if the current candlestick is in the same trend as the pattern// ------------// Configurations des bougiesbearpattern = summation[Xcandlesticks](close<open)=Xcandlesticks//Entrée en position vendeuseonce lastbar = 0if not onmarket and cumulateorder thenif bearpattern thenSELLSHORT Size CONTRACT AT MARKETendiflastbar = barindexendif// Sortie de position vendeuseif lastbar<>0 and barindex-lastbar=1 thenEXITSHORT AT MARKETendif// SL & TPSET STOP PLOSS StopLossSET TARGET PPROFIT TakeProfitQuand je fais cela, cela ne me déclenche aucune position. Quand je mets “… and not cumulateorder” dans la prise de position vendeuse, là ça marche et ça cumule tant que les bougies sont d’une même couleur.
Je ne comprends pas pourquoi si le “not cumulateorder” fonctionne, donc le bout de code aussi, il n’en va pas de même avec simplement “cumulateorder” sachant qu’il est bien renseigné comme false auparavant ?
J’ai essayé aussi avec une variable time et idem rien ne se déclenche.
Merci d’avance pour vos éclaircissements 🙂
05/05/2020 at 12:57 PM #130016Je ne souhaite pas qu’une position soit à nouveau prise même si la bougie X+1 est elle aussi toujours de la même couleur
Dans ce cas créé une distance minimale en chandeliers avec une différence entre BARINDEX et le TRADEINDEX
Je ne comprends pas le problème avec ta variable cumulateorder, c’est un booléen: égale à 0, c’est false, donc dans ton exemple, il n’y aura pas de positions de prise.
05/05/2020 at 3:08 PM #130059Super Nicolas, ça marche mieux comme ça ! Quant à cumulateorder autant pour moi, je n’avais pas bien saisi son fonctionnement.
Petite question supplémentaire induite par la résolution du premier élément : est-ce qu’il est possible de définir une distance minimale en chandeliers en faisant la différence entre une prise de position à l’achat ou à la vente ?
——————————
Par exemple : grâce au code mis à jour, suite au déclenchement d’un ordre de vente après 3 bougies rouges, un autre ordre de vente ne peut être passé par exemple qu’à 6 bougies de distance si la configuration est bien présente encore à ce moment là. Mais si entre temps la tendance s’est inversée, je ne peux pas en l’état prendre un ordre d’achat dès l’ouverture de la 4ème bougie verte suivante (donc à 3 bougies de distance du dernier ordre).
—————————–
En somme pour reprendre un ordre d’achat ou de vente (donc dans le même sens que l’ordre précédent) je voudrais une distance d’au moins 6 bougies admettons, mais s’il y a un retournement du marché et qu’il est question de pouvoir prendre un ordre dans le sens inverse du précédent (un achat si avant j’ai fait une vente) alors il n’y ait pas cette attente de 6 bougies mais seulement la prise en compte de si la configuration est présente ou non (dans ledit exemple après 3 bougies consécutives de la même couleur).
C’est possible ou compliqué à mettre en oeuvre ?
Merci pour ton aide ! (et pour tous ces partages sur le site, dont une bonne part du code du premier post)
05/05/2020 at 3:28 PM #130061Je suis en train de me dire que la solution la plus simple c’est de créer 2 robots (1 pour les positions BUY et l’autre pour les SELL) et de les faire fonctionner ensemble en désactivant la possibilité de prendre 2 positions en même temps au cas où.
Ca devrait faire ce que je désire non ? Car la condition des X chandeliers de distance ne serait alors logiquement valable que pour le robot SELL et n’affecterait pas le robot BUY qui fontionnerait indépendamment et vice versa. C’est correct comme raisonnement en réel ?
05/05/2020 at 3:59 PM #130072C’est possible de faire de la sorte (en compte à risque limité non cependant, pas de hedging possible, même en ayant 2 stratégies). Le stratégies ne communiquant pas entre elles, tu vas devoir créer des conditions pour vérifier qu’il n’y a pas eu de signaux inverses pour autoriser un ordre, toujours sans savoir si l’ordre est effectivement passé au marché dans l’autre stratégie.
-
AuthorPosts
Find exclusive trading pro-tools on