objectif journalier et ordres cumulés
Forums › ProRealTime forum Français › Support ProOrder › objectif journalier et ordres cumulés
- This topic has 11 replies, 2 voices, and was last updated 7 years ago by Eric78.
-
-
12/01/2017 at 12:18 AM #54454
Bonjour,
nouveau sur le site et en trading, je cherche à coder deux paramètres que je voudrais rajouter à ma stratégie.
1- fixer un objectif de gain journalier (indépendamment du take profit de chaque trade) et ne plus prendre de positions une fois qu’il est atteint (avec éventuellement un stop suiveur pour profiter d’une bonne tendance)2- pour les “cumulateorder” fixer un nombre maximum d’ordres cumulés. Par exemple maximum trois ou quatre ordres.merci à vousEric12/01/2017 at 8:14 AM #544571/ Concernant les objectifs journaliers, tu trouveras sans nul doute un tas de posts à ce sujet dans les forums du site (en utilisant la fonction de recherche dans le menu sous ton avatar). Sinon, il y a ce post du blog dans lequel un code “tout prêt” est disponible pour fixer à la fois l’objectif de gain journalier et aussi celui des pertes acceptées : Objectif de gain et perte journalières
Tu trouveras aussi dans le blog des codes de trailing stop complet à copier/coller dans les stratégies.
2/ On peut limiter le nombre de positions au marché en les testant avec COUNTOFPOSITION par exemple:
1234//limitation à 5 ordres cumulésif countofposition<5 and ConditionAchat thenbuy 1 contract at marketendif1 user thanked author for this post.
12/05/2017 at 6:39 PM #54815Merci pour votre réponse et merci beaucoup pour les ordres cumulés, ça fonctionne.
pour l’objectif journalier je n’arrive pas trouver la bonne formule.
je voudrais qu’il soit calculé en points (pas en euros). et qu’il soit indépendant des take profit des trades.
Voici ce que j’ai fait mais ça ne fonctionne pas. Auriez-vous un conseil.
Merci à vous
// —parameters
MaxDailyProfit=100*pipsize //Max daily profit allowed (in point)// first time we launch the code, the trading is allowed
once TradeAllowed=1// reset the current state of the strateygprofit each new day
If intradaybarindex=0 then
MyProfit=STRATEGYPROFIT
TradeAllowed=1
endif// test if the strategyprofit of the day is currently above the daily profit allowed If
StrategyProfit >= MyProfit+MaxDailyProfit then
sell at market
exitshort at market
TradeAllowed=0
endif12/06/2017 at 3:28 PM #54899Bonjour,
je m’excuse de revenir encore avec ma question mais j’ai beau parcourir le forum je ne trouve pas de solution.
je souhaite programmer un objectif de gain journalier en points (par exemple 50 points)
indépendant des take profit ou des stop loss des trade et indépendant du nombre de trade.avec éventuellement un stop suiveur lié à cet objectif journalier.
j’arrive à le faire stoper aux 50 points mais il reprends des position après.
Quand je rajoute Notradeallowed il ne prend plus aucune position.voici le code que j’essaie où il ne prends aucune position. Je ne comprends pas pourquoi
exemple pour objectif journalier123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566// Définition des paramètres du codeDEFPARAM CumulateOrders = TRUE // Cumul des positions désactivé// Annule tous les ordres en attente et ferme toutes les positions à 0:00, puis empêche toute création d'ordre avant l'heure "FLATBEFORE".DEFPARAM FLATBEFORE = 080000// Annule tous les ordres en attente et ferme toutes les positions à l'heure "FLATAFTER"DEFPARAM FLATAFTER = 220000// Paramètresonce TradeAllowed=1if intradaybarindex=0 thenTradeAllowed=1MyTarget = 50endif// Conditions pour ouvrir une position acheteuseindicator1 = WilderAverage[2](totalPrice)c1 = (close > indicator1)indicator2 = WilderAverage[2](totalPrice)c2 = (close[1] > indicator2[1])indicator3 = WilderAverage[2](totalPrice)indicator4 = Average[55](close)c3 = (indicator3 > indicator4)if TradeAllowed thenIF c1 AND c2 AND c3 THENBUY 1 CONTRACT AT MARKETENDIF// Conditions pour fermer une position acheteuseindicator5 = Average[29](close)c4 = (close CROSSES UNDER indicator5)IF c4 THENSELL AT MARKETENDIF// Conditions pour ouvrir une position en vente à découvertindicator6 = WilderAverage[2](totalPrice)c5 = (close < indicator6)indicator7 = WilderAverage[2](totalPrice)c6 = (close[1] < indicator7[1])indicator8 = Average[55](close)c7 = (close < indicator8)if TradeAllowed thenIF c5 AND c6 AND c7 THENSELLSHORT 1 CONTRACT AT MARKETENDIF// Conditions pour fermer une position en vente à découvertindicator9 = Average[29](close)c8 = (close CROSSES OVER indicator9)IF c8 THENEXITSHORT AT MARKETENDIF// profit journalier atteint : coupe toutes les positions et ne plus en prendre de la journée.SET TARGET pProfit MyTargetsell at marketexitshort at marketTradeAllowed=0ENDIFENDIF12/07/2017 at 8:43 AM #54944Je ne peux pas répondre plus précisément pour le moment mais je viens de trouver 2 pistes:
https://www.prorealcode.com/topic/objectif-journalier-en-point/#post-47455
https://www.prorealcode.com/topic/pause-suite-a-limite-atteinte/
Concernant ton code, tu devrais vérifier les imbrications IF/THEN/ENDIF, je pense qu’il y a un soucis.
12/08/2017 at 1:07 PM #55104Bonjour,merci pour vos réponses et excusez-moi de revenir à la charge. Car ça paraît simple, mais j’ai eu beau chercher dans le manuel probuilder et sur les pistes que vous m’avez suggérées, impossible de trouver quelque chose qui fonctionne. Pourriez-vous m’éclairer et m’aider à trouver la solution. Voici ce que je souhaite faire (pour l’indice dax) :
Je souhaiterais coder un objectif de gain journalier en points,indépendant du nombres de trades et indépendant du stoploss et take profit de chaque trade.Par exemple si l’objectif du jour, de 50 points, est atteint par la stratégie : on sort de position pour la journée (sans attendre la fin d’une bougie).Et la stratégie ne reprends pas de position avant le lendemain.Bien cordialement.Voici ce que j’ai fait mais ça ne marche pas du tout.tentative ordres journaliers12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758// Définition des paramètres du codeDEFPARAM CumulateOrders = FALSE // Cumul des positions désactivé// Annule tous les ordres en attente et ferme toutes les positions à 0:00, puis empêche toute création d'ordre avant l'heure "FLATBEFORE".DEFPARAM FLATBEFORE = 080000// Annule tous les ordres en attente et ferme toutes les positions à l'heure "FLATAFTER"DEFPARAM FLATAFTER = 220000dayprofitmax = 50 // EN POINTS ?daylossmax = 50 // EN POINTS ?if intradaybarindex=0 thentrading=1lastdayprofit=strategyprofitendif// Conditions pour ouvrir une position acheteuseindicator1 = WilderAverage[2](totalPrice)c1 = (close > indicator1)indicator2 = WilderAverage[2](totalPrice)c2 = (close[1] > indicator2[1])indicator3 = WilderAverage[2](totalPrice)indicator4 = Average[11](close)c3 = (indicator3 > indicator4)IF c1 AND c2 AND c3 THENBUY 1 CONTRACT AT MARKETENDIF// Conditions pour fermer une position acheteuseindicator5 = Average[11](close)c4 = (close CROSSES UNDER indicator5)IF c4 THENSELL AT MARKETENDIF// Conditions pour ouvrir une position en vente à découvertindicator6 = WilderAverage[2](totalPrice)c5 = (close < indicator6)indicator7 = WilderAverage[2](totalPrice)c6 = (close[1] < indicator7[1])indicator8 = Average[11](close)c7 = (close < indicator8)IF c5 AND c6 AND c7 THENSELLSHORT 1 CONTRACT AT MARKETENDIF// Conditions pour fermer une position en vente à découvertindicator9 = Average[11](close)c8 = (close CROSSES OVER indicator9)IF c8 THENEXITSHORT AT MARKETENDIFif trading=1 and (strategyprofit > lastdayprofit+dayprofitmax or strategyprofit < lastdayprofit-daylossmax) thentrading=0sell at marketexitshort at marketendif12/14/2017 at 2:25 PM #55670Entre 2 bougies il ne peut rien se passer puisque le code n’est lu qu’une seule fois par barre, à sa fermeture. Cela devrait changer avec la mise à jour que l’on attend tous, dans le courant de l’année prochaine.
Donc, au mieux on pourrait placer un takeprofit adapté en fonction des profits déjà réalisés et fermés pour correspondre à un gain journalier de 50 points. Mais il faudra quoiqu’il arrive attendre une lecture du code pour indiquer à la stratégie qu’il faut s’arrêter complètement.
12/14/2017 at 6:23 PM #55693Merci pour votre réponse. Merci de m’avoir accordé un peu de votre temps. Je comprends mieux pourquoi je n’arrivais pas à trouver…
Donc ce n’est pas possible pour le moment, c’est bien embêtant.Cela dit un stoploss et un takeprofit se font déjà au milieu d’une bougie. Donc il se passe bien quelque chose en dehors des barres.
J’attends avec impatience la nouvelle mise à jour…Alors, je ne voudrais pas abuser, mais comment faire pour placer un take profit adapté en fonction des profits déjà réalisés.
Puisqu’ils peuvent être calculés à chaque bougie.De tout ce que j’ai déjà essayé voici ce qui s’en rapproche mais ça ne s’arrête pas où je voudrais.
Je ne comprends d’ailleurs pas pourquoi ça s’arrête quand ça s’arrête ni pourquoi ça ne s’arrête pas quand ça ne s’arrête pas…Le maxdailyprofit ne correspond ni aux points ni aux € qui apparaissent sur la courbe des gains.
CordialementEricessai objectif journalier123456789101112131415161718192021222324252627282930313233// DAX M10DEFPARAM CumulateOrders = TRUE // Cumul des positionsDEFPARAM FLATBEFORE = 080000DEFPARAM FLATAFTER = 220000// ---parametersMaxDailyProfit= 15 //Max daily profit allowed (in money)MaxDailyLoss=150 //Max daily loss allowed (in money)// first time we launch the code, the trading is allowedonce TradeAllowed=1// reset the current state of the strateygprofit each new dayIf intradaybarindex=0 thenMyProfit=STRATEGYPROFITTradeAllowed=1endifIf StrategyProfit>=MyProfit+MaxDailyProfit or Strategyprofit<=MyProfit-MaxDailyLoss thenEXITSHORT AT MARKETTradeAllowed=0endif// Ouvrir une position Shortif TradeAllowed=1 and close < Average[3](close) AND Average[3](close)< Average[5](close) and Average[5](close) < Average[19](close) THENSELLSHORT 1 SHARES AT MARKETENDIF// Sortie shortIF close crosses over Average[9](close) THENexitshort AT MARKETENDIFSET STOP pLOSS 21SET TARGET pProfit 7112/14/2017 at 7:39 PM #55704Les ordres se coupent en gain ou en perte avec les niveaux de prix indiqués en Takeprofit et stoploss, parce qu’ils sont inscrits dans le carnet du courtier. Là c’est indépendant du code bien entendu.
Je regarderai demain le problème mentionné, si jamais j’oubliai, merci de répondre à nouveau au sujet.
12/18/2017 at 9:02 PM #5602212/19/2017 at 8:54 AM #56040Voilà le code ajusté. J’ai ajouté un takeprofit automatique en argent ($profit), calculé suivant l’objectif quotidien et le profit/perte déjà connu de la journée en cours. Cela semble fonctionner correctement, merci de vérifier et de faire un retour.
123456789101112131415161718192021222324252627282930313233343536373839404142// DAX M10DEFPARAM CumulateOrders = TRUE // Cumul des positionsDEFPARAM FLATBEFORE = 080000DEFPARAM FLATAFTER = 220000// ---parametersMaxDailyProfit= 15 //Max daily profit allowed (in money)MaxDailyLoss=150 //Max daily loss allowed (in money)// first time we launch the code, the trading is allowedonce TradeAllowed=1// reset the current state of the strateygprofit each new dayIf intradaybarindex=0 thenMyProfit=STRATEGYPROFITDailyProfit=0TradeAllowed=1endif//compute live daily profit & automatic takeprofitdailyprofit = strategyprofit-myprofitautotakeprofit = MaxDailyProfit-dailyprofitIf StrategyProfit>=MyProfit+MaxDailyProfit or Strategyprofit<=MyProfit-MaxDailyLoss thenEXITSHORT AT MARKETTradeAllowed=0endif// Ouvrir une position Shortif TradeAllowed=1 and close < Average[3](close) AND Average[3](close)< Average[5](close) and Average[5](close) < Average[19](close) THENSELLSHORT 1 SHARES AT MARKETENDIF// Sortie shortIF close crosses over Average[9](close) THENexitshort AT MARKETENDIFSET STOP pLOSS 21SET TARGET $Profit autotakeprofit//graph dailyprofit//graph autotakeprofit coloured(100,52,69)//graph tradeallowed12/19/2017 at 7:11 PM #56101Bonjour,
merci pour le code. Je l’ai testé et malheureusement ça ne marche pas très bien.
ça semble fonctionner pour le maxdailyloss.
Mais pour le maxdilyprofit ça ne marche pas du tout. Par exemple si je le mets à 40,
il y a une bougie où je suis à 60 de profit puis la suivante où je suis à 110 puis la suivante où je suis à 130 et ça ne s”arrête toujours pas.
Puis parfois ça s’arrête et je ne sais pas pourquoi.cordialement
-
AuthorPosts
Find exclusive trading pro-tools on