stratégie eur/usd 2 min
Forums › ProRealTime forum Français › Support ProOrder › stratégie eur/usd 2 min
- This topic has 20 replies, 4 voices, and was last updated 1 year ago by Meta Signals Pro.
-
-
07/13/2022 at 8:32 AM #197199
Bonjour tout le monde
je vous partage une stratégie sur eur/usd en graph 2 min. Merci au passage à nicolas et roberto ou j’ai intégré le break even.
Je voudrais intégrer dans la stratégie la vente partielle.
Voila j’ai suivi chaque jour les prises de postions et j’ai remarqué que souvent il arrive à hauteur de 10 euros( par exemple) et redescend pour cloturer toute la position au break even déclenché qui peut être de 3.5 euros ou autres.Je voudrais intégrer également la cloture du trade quand celui si arrive à 60,80 ou autre bougie si le trade dure trop longtemps.
Si cela peut intéresser quelqu’un et m’inclure cela dans le code ou vous remerciant
eur/usd 2 minute123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156// Définition des paramètres du codeDEFPARAM CumulateOrders = False // Cumul des positions désactivé// 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éenoEntryBeforeTime = 080000timeEnterBefore = 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éenoEntryAfterTime = 192000timeEnterAfter = time < noEntryAfterTime// Empêche le système de placer de nouveaux ordres sur les jours de la semaine spécifiésdaysForbiddenEntry = OpenDayOfWeek = 6 OR OpenDayOfWeek = 0// Conditions pour ouvrir une position en vente à découvertindicator1 = SenkouSpanB[9,26,52]c1 = (close >= indicator1)indicator2 = SenkouSpanB[9,26,52]c2 = (low[1] < indicator2)IF (c1 AND c2) AND timeEnterBefore AND timeEnterAfter AND not daysForbiddenEntry and tally < maxTrades THENsellshort 1 CONTRACT AT MARKETENDIF//---------------------------------------------------------------------------------------------------------------once maxTrades = 3 //maxNumberDailyTradesonce tally = 0if intradayBarIndex = 0 thentally = 0endifnewTrades = (onMarket and not onMarket[1]) or ((not onMarket and not onMarket[1]) and (strategyProfit <> strategyProfit[1])) or (longOnMarket and ShortOnMarket[1]) or (longOnMarket[1] and shortOnMarket) or ((tradeIndex(1) = tradeIndex(2)) and (barIndex = tradeIndex(1)) and (barIndex > 0) and (strategyProfit = strategyProfit[1]))if newTrades thentally = tally +1endif//------------------------------------------------------------------------------------------------------------------------//---------------------------------------------------------------------------------------------------------------//Max-Orders per Dayonce maxOrdersL = 1 //longonce maxOrdersS = 1 //shortif intradayBarIndex = 0 then //reset orders countordersCountL = 0ordersCountS = 0endifif longTriggered then //check if an order has opened in the current barordersCountL = ordersCountL + 1endifif shortTriggered then //check if an order has opened in the current barordersCountS = ordersCountS + 1endif//------------------------------------------------------------------------------------------------------------------------// Stops et objectifsset stop %loss 0.58set target %profit 0.81IF Not OnMarket THEN//// when NOT OnMarket reset values to default values//TrailStart = 1.79 //30 Start trailing profits from this pointBasePerCent = 0.000 //20.0% Profit percentage to keep when setting BerakEvenStepSize = 1 //10 Pip chunks to increase PercentagePerCentInc = 0.000 //10.0% PerCent increment after each StepSize chunkBarNumber = 10 //10 Add further % so that trades don't keep running too longBarPerCent = 0.235 //10% Add this additional percentage every BarNumber barsRoundTO = -0.5 //-0.5 rounds always to Lower integer, +0.4 rounds always to Higher integer, 0 defaults PRT behaviourPriceDistance = 9 * pipsize //7 minimun distance from current pricey1 = 0 //reset to 0y2 = 0 //reset to 0ProfitPerCent = BasePerCent //reset to desired default valueTradeBar = BarIndexELSIF LongOnMarket AND close > (TradePrice + (y1 * pipsize)) THEN //LONG positions//// compute the value of the Percentage of profits, if any, to lock in for LONG trades//x1 = (close - tradeprice) / pipsize //convert price to pipsIF x1 >= TrailStart THEN // go ahead only if N+ pipsDiff1 = abs(TrailStart - x1) //difference from current profit and TrailStartChunks1 = max(0,round((Diff1 / StepSize) + RoundTO)) //number of STEPSIZE chunksProfitPerCent = BasePerCent + (BasePerCent * (Chunks1 * PerCentInc)) //compute new size of ProfitPerCent// compute number of bars elapsed and add an additionl percentage// (this percentage is different from PerCentInc, since it's a direct percentage, not a Percentage of BasePerCent)// (if BasePerCent is 20% and this is 10%, the whole percentage will be 30%, not 22%)BarCount = BarIndex - TradeBarIF BarCount MOD BarNumber = 0 THENProfitPerCent = ProfitPerCent + BarPerCentENDIF//ProfitPerCent = max(ProfitPerCent[1],min(100,ProfitPerCent)) //make sure ProfitPerCent doess not exceed 100%y1 = max(x1 * ProfitPerCent, y1) //y1 = % of max profitENDIFELSIF ShortOnMarket AND close < (TradePrice - (y2 * pipsize)) THEN //SHORT positions//// compute the value of the Percentage of profits, if any, to lock in for SHORT trades//x2 = (tradeprice - close) / pipsize //convert price to pipsIF x2 >= TrailStart THEN // go ahead only if N+ pipsDiff2 = abs(TrailStart - x2) //difference from current profit and TrailStartChunks2 = max(0,round((Diff2 / StepSize) + RoundTO)) //number of STEPSIZE chunksProfitPerCent = BasePerCent + (BasePerCent * (Chunks2 * PerCentInc)) //compute new size of ProfitPerCent// compute number of bars elapsed and add an additionl percentage// (this percentage is different from PerCentInc, since it's a direct percentage, not a Percentage of BasePerCent)// (if BasePerCent is 20% and this is 10%, the whole percentage will be 30%, not 22%)BarCount = BarIndex - TradeBarIF BarCount MOD BarNumber = 0 THENProfitPerCent = ProfitPerCent + BarPerCentENDIF//ProfitPerCent = max(ProfitPerCent[1],min(100,ProfitPerCent)) //make sure ProfitPerCent doess not exceed 100%y2 = max(x2 * ProfitPerCent, y2) //y2 = % of max profitENDIFENDIFIF y1 THEN //Place pending STOP order when y1 > 0 (LONG positions)SellPrice = Tradeprice + (y1 * pipsize) //convert pips to price//// check the minimun distance between ExitPrice and current price//IF abs(close - SellPrice) > PriceDistance THEN//// place either a LIMIT or STOP pending order according to current price positioning//IF close >= SellPrice THENSELL AT SellPrice STOPELSESELL AT SellPrice LIMITENDIFELSE////sell AT MARKET when EXITPRICE does not meet the broker's minimun distance from current price//SELL AT MarketENDIFENDIFIF y2 THEN //Place pending STOP order when y2 > 0 (SHORT positions)ExitPrice = Tradeprice - (y2 * pipsize) //convert pips to price//// check the minimun distance between ExitPrice and current price//IF abs(close - ExitPrice) > PriceDistance THEN//// place either a LIMIT or STOP pending order according to current price positioning//IF close <= ExitPrice THENEXITSHORT AT ExitPrice STOPELSEEXITSHORT AT ExitPrice LIMITENDIFELSE////ExitShort AT MARKET when EXITPRICE does not meet the broker's minimun distance from current price//EXITSHORT AT MarketENDIFENDIF07/16/2022 at 7:02 AM #197343Bonjour à tous,
J’ai partagé une stratégie algo eurusd 2min et je recherche à intégrer dans cette stratégie la vente partielle en pourcentage quand celui si arrive à( par exemple à 15 euros. je voudrais qu’il me vende 0.5% de la position.)
Est ce possible je ne trouve pas de lien qui puisse m’aider?
Dans l’attente de vous lire et merci.
07/16/2022 at 7:34 AM #197347Bjr,
un exemple de syntaxe de vente partielle par Nicolas:
https://www.prorealcode.com/topic/cloture-partielle-v11/#post-160461
1 user thanked author for this post.
07/16/2022 at 8:34 AM #197349Merci,
Je voudrais remplacer pointzise par un pourcentage mais je ne suis pas sur de moi , remplacer par percent suffirai ?
merci a toi
07/16/2022 at 8:39 AM #197350Je voudrais l’intégrer dans ma stratégie peux tu me dire si la synthase est bonne?
1234567891011121314151617181920212223// Définition des paramètres du codeDEFPARAM CumulateOrders = False // Cumul des positions désactivé// 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éenoEntryBeforeTime = 080000timeEnterBefore = 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éenoEntryAfterTime = 192000timeEnterAfter = time < noEntryAfterTime// Empêche le système de placer de nouveaux ordres sur les jours de la semaine spécifiésdaysForbiddenEntry = OpenDayOfWeek = 6 OR OpenDayOfWeek = 0// Conditions pour ouvrir une position en vente à découvertindicator1 = SenkouSpanB[9,26,52]c1 = (close >= indicator1)indicator2 = SenkouSpanB[9,26,52]c2 = (low[1] < indicator2)IF (c1 AND c2) AND timeEnterBefore AND timeEnterAfter AND not daysForbiddenEntry and tally < maxTrades THENsellshort 1 CONTRACT AT MARKETENDIFif longonmarket and close–tradeprice>=0.20*percent and closed=0 thensell 0.5 contract at marketclosed=1endif123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132//---------------------------------------------------------------------------------------------------------------once maxTrades = 3 //maxNumberDailyTradesonce tally = 0if intradayBarIndex = 0 thentally = 0endifnewTrades = (onMarket and not onMarket[1]) or ((not onMarket and not onMarket[1]) and (strategyProfit <> strategyProfit[1])) or (longOnMarket and ShortOnMarket[1]) or (longOnMarket[1] and shortOnMarket) or ((tradeIndex(1) = tradeIndex(2)) and (barIndex = tradeIndex(1)) and (barIndex > 0) and (strategyProfit = strategyProfit[1]))if newTrades thentally = tally +1endif//------------------------------------------------------------------------------------------------------------------------//---------------------------------------------------------------------------------------------------------------//Max-Orders per Dayonce maxOrdersL = 1 //longonce maxOrdersS = 1 //shortif intradayBarIndex = 0 then //reset orders countordersCountL = 0ordersCountS = 0endifif longTriggered then //check if an order has opened in the current barordersCountL = ordersCountL + 1endifif shortTriggered then //check if an order has opened in the current barordersCountS = ordersCountS + 1endif//------------------------------------------------------------------------------------------------------------------------// Stops et objectifsset stop %loss 0.58set target %profit 0.81IF Not OnMarket THEN//// when NOT OnMarket reset values to default values//TrailStart = 1.79 //30 Start trailing profits from this pointBasePerCent = 0.000 //20.0% Profit percentage to keep when setting BerakEvenStepSize = 1 //10 Pip chunks to increase PercentagePerCentInc = 0.000 //10.0% PerCent increment after each StepSize chunkBarNumber = 10 //10 Add further % so that trades don't keep running too longBarPerCent = 0.235 //10% Add this additional percentage every BarNumber barsRoundTO = -0.5 //-0.5 rounds always to Lower integer, +0.4 rounds always to Higher integer, 0 defaults PRT behaviourPriceDistance = 9 * pipsize //7 minimun distance from current pricey1 = 0 //reset to 0y2 = 0 //reset to 0ProfitPerCent = BasePerCent //reset to desired default valueTradeBar = BarIndexELSIF LongOnMarket AND close > (TradePrice + (y1 * pipsize)) THEN //LONG positions//// compute the value of the Percentage of profits, if any, to lock in for LONG trades//x1 = (close - tradeprice) / pipsize //convert price to pipsIF x1 >= TrailStart THEN // go ahead only if N+ pipsDiff1 = abs(TrailStart - x1) //difference from current profit and TrailStartChunks1 = max(0,round((Diff1 / StepSize) + RoundTO)) //number of STEPSIZE chunksProfitPerCent = BasePerCent + (BasePerCent * (Chunks1 * PerCentInc)) //compute new size of ProfitPerCent// compute number of bars elapsed and add an additionl percentage// (this percentage is different from PerCentInc, since it's a direct percentage, not a Percentage of BasePerCent)// (if BasePerCent is 20% and this is 10%, the whole percentage will be 30%, not 22%)BarCount = BarIndex - TradeBarIF BarCount MOD BarNumber = 0 THENProfitPerCent = ProfitPerCent + BarPerCentENDIF//ProfitPerCent = max(ProfitPerCent[1],min(100,ProfitPerCent)) //make sure ProfitPerCent doess not exceed 100%y1 = max(x1 * ProfitPerCent, y1) //y1 = % of max profitENDIFELSIF ShortOnMarket AND close < (TradePrice - (y2 * pipsize)) THEN //SHORT positions//// compute the value of the Percentage of profits, if any, to lock in for SHORT trades//x2 = (tradeprice - close) / pipsize //convert price to pipsIF x2 >= TrailStart THEN // go ahead only if N+ pipsDiff2 = abs(TrailStart - x2) //difference from current profit and TrailStartChunks2 = max(0,round((Diff2 / StepSize) + RoundTO)) //number of STEPSIZE chunksProfitPerCent = BasePerCent + (BasePerCent * (Chunks2 * PerCentInc)) //compute new size of ProfitPerCent// compute number of bars elapsed and add an additionl percentage// (this percentage is different from PerCentInc, since it's a direct percentage, not a Percentage of BasePerCent)// (if BasePerCent is 20% and this is 10%, the whole percentage will be 30%, not 22%)BarCount = BarIndex - TradeBarIF BarCount MOD BarNumber = 0 THENProfitPerCent = ProfitPerCent + BarPerCentENDIF//ProfitPerCent = max(ProfitPerCent[1],min(100,ProfitPerCent)) //make sure ProfitPerCent doess not exceed 100%y2 = max(x2 * ProfitPerCent, y2) //y2 = % of max profitENDIFENDIFIF y1 THEN //Place pending STOP order when y1 > 0 (LONG positions)SellPrice = Tradeprice + (y1 * pipsize) //convert pips to price//// check the minimun distance between ExitPrice and current price//IF abs(close - SellPrice) > PriceDistance THEN//// place either a LIMIT or STOP pending order according to current price positioning//IF close >= SellPrice THENSELL AT SellPrice STOPELSESELL AT SellPrice LIMITENDIFELSE////sell AT MARKET when EXITPRICE does not meet the broker's minimun distance from current price//SELL AT MarketENDIFENDIFIF y2 THEN //Place pending STOP order when y2 > 0 (SHORT positions)ExitPrice = Tradeprice - (y2 * pipsize) //convert pips to price//// check the minimun distance between ExitPrice and current price//IF abs(close - ExitPrice) > PriceDistance THEN//// place either a LIMIT or STOP pending order according to current price positioning//IF close <= ExitPrice THENEXITSHORT AT ExitPrice STOPELSEEXITSHORT AT ExitPrice LIMITENDIFELSE////ExitShort AT MARKET when EXITPRICE does not meet the broker's minimun distance from current price//EXITSHORT AT MarketENDIFENDIF07/17/2022 at 7:54 AM #197387Bonjour à tous, je remais en poste ma demande .
J’ai partagé une stratégie algo eurusd 2min et je recherche à intégrer dans cette stratégie la vente partielle en pourcentage quand celui si arrive à( par exemple à 15 euros. je voudrais qu’il me vende 0.5% de la position.)
J’ai essayé ce que l’on m’a proposé mais cela ne fonctionne pas. rien ne se passe. Si vous pouviez venir à mon aide je pense que cela pourrais bien améliorer les gains.
Et au passage que pensez vous de la stratégie ?
Dans l’attente de vous lire et merci.
07/18/2022 at 9:23 AM #197432Bonjour,
Je ne sais pas ce qu’est ta variable “percent”, à moins que pour toi percent soit un mot-clé du langage probuilder, dans ce cas la réponse est non, ce n’est pas un mot clé, on peut chercher la doc par mot-clé là si on ne veut pas consulter le manuel page par page:
https://www.prorealcode.com/prorealtime-documentation/
Pointsize sert à convertir 20 en points, tu peux vouloir 20 sur le dax (20*1) mais si tu veux 20 pips sur cfd eurusd par exemple alors tu veux 0.002=20*0.0001 car le pointsize dans ce cas est 0.0001
Il manque de caser le closed=0 de la ligne 3 de l’exemple aussi, à mettre dans la boucle où se fait l’entrée pour laquelle on veut autoriser la cloture partielle.
Enfin, merci de consulter attentivement les règles de publication situées le grand cadre jaune en bas de chaque page, auxquelles on adhère quand on clic sur “submit” message. J’ai déjà dû fusionner 3 topics différents au sein du présent fil de discussion ce weekend, je vois qu’en plus de doubler le message contrairement aux règles du forum la question a été reposée encore en plus dans le forum italien, et ce matin encore un nouveau fil de discussion pour poser la même question dans ce même forum français, que je vais supprimer dans quelques instants…
On pose la question une fois, on la reformule si besoin, mais on maintient la conversation à propos d’un même sujet dans le même fil de discussion, on n’ouvre pas un nouveau fil post par post, ces règles servent à garder un minimum d’ordre pour que les utilisateurs puissent ensuite éxécuter des recherches internes au site fil par fil (et avec posts de library aussi). Pour info si besoin, le moteur de recherche interne est soit en page d’accueil du site, soit en haut à droite de chaque page, première ligne du menu déroulant qui apparait si on survole son avatar avec la souris.
1 user thanked author for this post.
07/18/2022 at 9:35 AM #197434Bonjour , autant pour moi .
je pensais que je devais remonter les conversations et recréer des topics.
EXCUSEZ MOI.
07/24/2022 at 10:17 PM #197867Bonsoir à tous
je voudrais cloturer partiellement une vente sur eurusd mais rienvvne se passe.
J’ai pris la formule suivante partager par nicolas.
Pouvez vous m’aider s’il vous plait
vente partielle12345678sellshort 1 CONTRACT AT MArketpartiel=0endif// sortie partielleif longonmarket and close-tradeprice>=0.00001*pointsize and partial=0 thensell countofposition/1 contract at marketpartial = 1endif07/25/2022 at 7:53 AM #197879Bjr,
L’exemple de Nicolas était :
123456789if rsi[14] crosses over 50 thenbuy 2 contracts at marketclosed=0endifif longonmarket and close-tradeprice>=20*pointsize and closed=0 thensell 1 contract at marketclosed=1endifEt tu l’as modifié en :
12345678sellshort 1 CONTRACT AT MArketpartiel=0endif// sortie partielleif longonmarket and close-tradeprice>=0.00001*pointsize and partial=0 thensell countofposition/1 contract at marketpartial = 1endifil manque un if au début pour l’entrée, mais on va supposer que c’était juste le copier-coller, pas une erreur de syntaxe à l’origine du “rien ne se passe”.
ligne 2, typo probablement, avec écrit partiEl alors que les autres lignes sont en partiAl
ligne 1 changée en sellshort (une vad) alors qu’elle était en buy (achat) et que les lignes 5 et 6 utilisant les termes “longonmarket” et “sell” qui sont des termes liés au sens acheteur, pas au sens vendeur (termes pour cet autre sens vendeur: “shortonmarket” et “exitshort”) ne sont pas changées aussi, il faut ou tout l’un ou tout l’autre
ligne 6 vend un nombre countofposition/1 ( que le /1 soit typo ou divise par 1 sans conséquence, peu importe) qui n’a rien de partiel.
Donc il y a une cascade de modifications qui chacune à elle seule peut empêcher que ça fonctionne.
Je repars de l’exemple de Nicolas, et je garde en valeur numérique un achat de 2, et une vente partielle de 1, je garde le flag “closed” au lieu d’un “partiel/partial”. Je ne garde pas la condition d’entrée de Nicolas du premier if, je te laisse le soin de la remplacer par la tienne. La modification pour ton cas est si par exemple gain en fin de bougie de 8 points (soit 16 euros hors spread si tu es à 1 euro le point avec 2 contrats 2×8=16 , vu que j’ai cru comprendre que tu parlais d’environ 15, on est dans les environs voulus), alors on change le 20 en 8
123456789if (mettre ici tes conditions d'achats et éventuellement de vérification de non cumul) thenbuy 2 contracts at marketclosed=0endifif longonmarket and close-tradeprice>=8*pointsize and closed=0 thensell 1 contract at marketclosed=1endif1 user thanked author for this post.
07/28/2022 at 2:20 PM #198039Bonjour JC.
MERCI POUR LE RETOUR.
Comme tu peux voir j’ai réglé mon robot pour des trades à la vente, du coup j’essai d’intégrer la vente partielle.
J’ai essayé d’intégrer les termes que tu viens de me suggérer mais les profits et perte ne change pas est ce que tu peux m’aider à corriger s’il te plait et me dire pourquoi je n’arrive pas à obtenir des rachats de vente à découvert pour ne garder qu’un contrat..
je te joins l’algo
venteeur/usd 3 minutes123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163// Définition des paramètres du codeDEFPARAM CumulateOrders = False // Cumul des positions désactivé// 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éenoEntryBeforeTime = 080000timeEnterBefore = 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éenoEntryAfterTime = 232500timeEnterAfter = time < noEntryAfterTime// Empêche le système de placer de nouveaux ordres sur les jours de la semaine spécifiésdaysForbiddenEntry = OpenDayOfWeek = 6 OR OpenDayOfWeek = 0// Conditions pour ouvrir une position en vente à découvertc1 = (close > close[10])indicator1 = SenkouSpanB[9,26,52]c2 = (close > indicator1)indicator2 = SenkouSpanA[9,26,52]c3 = (close > indicator2)IF (c1 AND c2) AND timeEnterBefore AND timeEnterAfter AND not daysForbiddenEntry and tally < maxTrades THENsellshort 2 CONTRACT AT MArketpartial=0endif// sortie partielleif shortonmarket and close-tradeprice>=8*pointsize and partial=0 thenexitshort countofposition/1 contract at marketpartial = 1endif//---------------------------------------------------------------------------------------------------------------once maxTrades = 3 //maxNumberDailyTradesonce tally = 0if intradayBarIndex = 0 thentally = 0endifnewTrades = (onMarket and not onMarket[1]) or ((not onMarket and not onMarket[1]) and (strategyProfit <> strategyProfit[1])) or (longOnMarket and ShortOnMarket[1]) or (longOnMarket[1] and shortOnMarket) or ((tradeIndex(1) = tradeIndex(2)) and (barIndex = tradeIndex(1)) and (barIndex > 0) and (strategyProfit = strategyProfit[1]))if newTrades thentally = tally +1endif//------------------------------------------------------------------------------------------------------------------------//---------------------------------------------------------------------------------------------------------------//Max-Orders per Dayonce maxOrdersL = 1 //longonce maxOrdersS = 1 //shortif intradayBarIndex = 0 then //reset orders countordersCountL = 0ordersCountS = 0endifif longTriggered then //check if an order has opened in the current barordersCountL = ordersCountL + 1endifif shortTriggered then //check if an order has opened in the current barordersCountS = ordersCountS + 1endif//------------------------------------------------------------------------------------------------------------------------// Stops et objectifsset stop %loss 0.58set target %profit 0.11IF Not OnMarket THEN//// when NOT OnMarket reset values to default values//TrailStart = 1.74 //30 Start trailing profits from this pointBasePerCent = 0.000 //20.0% Profit percentage to keep when setting BerakEvenStepSize = 1 //10 Pip chunks to increase PercentagePerCentInc = 0.000 //10.0% PerCent increment after each StepSize chunkBarNumber = 10 //10 Add further % so that trades don't keep running too longBarPerCent = 0.235 //10% Add this additional percentage every BarNumber barsRoundTO = -0.5 //-0.5 rounds always to Lower integer, +0.4 rounds always to Higher integer, 0 defaults PRT behaviourPriceDistance = 9 * pipsize //7 minimun distance from current pricey1 = 0 //reset to 0y2 = 0 //reset to 0ProfitPerCent = BasePerCent //reset to desired default valueTradeBar = BarIndexELSIF LongOnMarket AND close > (TradePrice + (y1 * pipsize)) THEN //LONG positions//// compute the value of the Percentage of profits, if any, to lock in for LONG trades//x1 = (close - tradeprice) / pipsize //convert price to pipsIF x1 >= TrailStart THEN // go ahead only if N+ pipsDiff1 = abs(TrailStart - x1) //difference from current profit and TrailStartChunks1 = max(0,round((Diff1 / StepSize) + RoundTO)) //number of STEPSIZE chunksProfitPerCent = BasePerCent + (BasePerCent * (Chunks1 * PerCentInc)) //compute new size of ProfitPerCent// compute number of bars elapsed and add an additionl percentage// (this percentage is different from PerCentInc, since it's a direct percentage, not a Percentage of BasePerCent)// (if BasePerCent is 20% and this is 10%, the whole percentage will be 30%, not 22%)BarCount = BarIndex - TradeBarIF BarCount MOD BarNumber = 0 THENProfitPerCent = ProfitPerCent + BarPerCentENDIF//ProfitPerCent = max(ProfitPerCent[1],min(100,ProfitPerCent)) //make sure ProfitPerCent doess not exceed 100%y1 = max(x1 * ProfitPerCent, y1) //y1 = % of max profitENDIFELSIF ShortOnMarket AND close < (TradePrice - (y2 * pipsize)) THEN //SHORT positions//// compute the value of the Percentage of profits, if any, to lock in for SHORT trades//x2 = (tradeprice - close) / pipsize //convert price to pipsIF x2 >= TrailStart THEN // go ahead only if N+ pipsDiff2 = abs(TrailStart - x2) //difference from current profit and TrailStartChunks2 = max(0,round((Diff2 / StepSize) + RoundTO)) //number of STEPSIZE chunksProfitPerCent = BasePerCent + (BasePerCent * (Chunks2 * PerCentInc)) //compute new size of ProfitPerCent// compute number of bars elapsed and add an additionl percentage// (this percentage is different from PerCentInc, since it's a direct percentage, not a Percentage of BasePerCent)// (if BasePerCent is 20% and this is 10%, the whole percentage will be 30%, not 22%)BarCount = BarIndex - TradeBarIF BarCount MOD BarNumber = 0 THENProfitPerCent = ProfitPerCent + BarPerCentENDIF//ProfitPerCent = max(ProfitPerCent[1],min(100,ProfitPerCent)) //make sure ProfitPerCent doess not exceed 100%y2 = max(x2 * ProfitPerCent, y2) //y2 = % of max profitENDIFENDIFIF y1 THEN //Place pending STOP order when y1 > 0 (LONG positions)SellPrice = Tradeprice + (y1 * pipsize) //convert pips to price//// check the minimun distance between ExitPrice and current price//IF abs(close - SellPrice) > PriceDistance THEN//// place either a LIMIT or STOP pending order according to current price positioning//IF close >= SellPrice THENSELL AT SellPrice STOPELSESELL AT SellPrice LIMITENDIFELSE////sell AT MARKET when EXITPRICE does not meet the broker's minimun distance from current price//SELL AT MarketENDIFENDIFIF y2 THEN //Place pending STOP order when y2 > 0 (SHORT positions)ExitPrice = Tradeprice - (y2 * pipsize) //convert pips to price//// check the minimun distance between ExitPrice and current price//IF abs(close - ExitPrice) > PriceDistance THEN//// place either a LIMIT or STOP pending order according to current price positioning//IF close <= ExitPrice THENEXITSHORT AT ExitPrice STOPELSEEXITSHORT AT ExitPrice LIMITENDIFELSE////ExitShort AT MARKET when EXITPRICE does not meet the broker's minimun distance from current price//EXITSHORT AT MarketENDIFENDIF07/28/2022 at 2:49 PM #198045Ligne 28, la modif du mot-clé en exitshort est bonne, mais il y a toujours le problème de la quantité évoqué dans le post précédent avec la présence de countofposition
https://www.prorealcode.com/documentation/countofposition/
countofposition en théorie est négatif si tu le fais intervenir en vente partielle de short, et même s’il ne l’était pas sa valeur absolue vaut le total des positions, pas la quantité partielle souhaitée, la ligne 23 ayant vendu 2 contrats il faudrait tester avec:
1exitshort 1 contract at marketPuis de là, voir si ça va ou s’il faut chercher d’autres anomalies
08/19/2022 at 10:30 AM #199228Hello,
Merci pour le partage. J’ai l’impression qu’on peut en faire quelque chose sur du 10 – 30 secondes…As-tu d’autres systèmes sur ce type d’ut (2m par exemple) ou transposables sur d’autres instruments que NAS?
Merci de ton retour1 user thanked author for this post.
08/20/2022 at 5:56 AM #199263Bonjour,
as tu esseyé sur du 30sec ? J’ai esseyé pendant un temps mais pas assez de recul dans le temps pour voir
Mais oui j’ai algo sur nadas et eur/usd sur sur 2 minu , 3min et du 5 min .
Je peux partager mais il faudrait travailler dessus
08/20/2022 at 8:46 AM #199264Hello,
J’ai mis en test EUR USD 2M sur du 10 secondes. Cela a l’air de fonctionner. Mais pas beaucoup de recul en effet.
Pourrai tu partager NASDAQ 2 minutes par exemple pour commencer? Peut-être serai t-il aussi valable sur du scalping, style 10 secondes ? Je veux bien tester différentes possibilités. Merci de ton retour…
-
AuthorPosts
Find exclusive trading pro-tools on