Bonjour,
J'ai ?crit une fonction qui ferme la moiti? (ou peu importe) de la position, cependant, apr?s la fermeture partielle, elle ferme ?galement la seconde et je ne sais pas trop pourquoi.
J'ai lu du code de Google, mais je n'ai rien trouv? d'utile, je vais continuer ? googler mais j'ai d?j? d?couvert qu'il y avait des gens formidables ici et j'esp?re que j'aurai une r?ponse dans tous les cas.
[MODIFIER]
Au fur et ? mesure de l'ouverture de transactions, cette fonction doit ?tre r?p?t?e pour s'assurer que les nouveaux trades sont partiellement ferm?s, pas seulement les trades initiaux.
C'est la fonction
Code ins?r?/ --------------------------------------------- --------------------- /| B?n?fice partiel du commerce |/ ----------------------------------------------- ---------------------- void PartialTradeProfit () {int totOrders = 0; bool ok = true; for (int i = 0; ilt; OrdersTotal (); i ) {if (OrderSelect (i, SELECT_BY_POS, MODE_TRADES) == false) break;/if (OrderSymbol () == Symbol () (OrderMagicNumber () == MagicNumber) (OrderComment () == TradeComment) (OrderType () == OP_BUY || OrderType () == OP_SELL)) if (OrderSymbol () == Symbol () (OrderMagicNumber () == MagicNumber) (OrderType () == OP_BUY || OrderType () == OP_SELL)) {if ((OrderProfit () OrderCommission () OrderSwap ()) gt; = PartialTP ) {int type = OrderType (); switch (type) {case OP_BUY: ok = OrderClose (OrderTicket (), PartialLots, Bid, 3, clrBlue); Pause; case OP_SELL: ok = OrderClose (OrderTicket (), PartialLots, Ask, 3, clrRed); Pause; }} if (! ok) {if (TryAgain lt; MaxTries) {Sleep (3000); TryAgain ; PartialTradeProfit (); } Alert (Close a ?chou? sur OrderSymbol () : en raison d'une erreur: IntegerToString (GetLastError ()) . TryAgain: (cha?ne) TryAgain); } else {TryAgain = 1; }}}}/ ------------------------------------------- -----------------------
Et c'est comme ?a qu'on l'appelle
Code ins?r?/ --------------------------------------------- --------------------- /| Fonction Expert OnTick |/ ----------------------------------------------- ------------------- void OnTick () {if (MarketInfo (Symbol (), MODE_SPREAD) lt; MaxSpread) {DoMagic (); }}/ --------------------------------------------- --------------------- / ------------------------- ----------------------------------------- /| Fonction de magie |/ ----------------------------------------------- ------------------- void DoMagic () {if (NotDisabled) {if (IsNewBar ()) {if (DoPartialClose) {PartialTradeProfit (); } OpenExtraTrades (); AllThingies (); IsFirstieUpDown (); if (ReverseFractalsEntries || TrendFractalsEntries) {FractalThingies (); }}}}/ ------------------------------------------- -----------------------
Je pensais qu'une fois la taille de la position r?duite par rapport ? ce qu'elle ?tait, non? Peut-?tre que je devrais r?activer le TradeComment car le commentaire est modifi? ? partir de xxxxx et non le TradeComment initial?
Merci d'avance.