Code de fermeture partielle - besoin d'aide
Page 1 sur 2 12 DerniéreDerniére
Résultats de 1 é 10 sur 12

Sujet : Code de fermeture partielle - besoin d'aide

  1. #1
    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.

  2. #2
    Hmmmmmm ...... Que faire si je v?rifie la taille du lot avant d'ex?cuter le corps de la fonction principale, comme ?a? Est-ce que ?a va le faire? 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) (OrderLots () == Lots)) {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; }}}}/ ------------------------------------------- -----------------------

  3. #3
    Au prochain tick, EA ex?cute ? nouveau la fonction de fermeture partielle. mettre un drapeau, o? apr?s la fermeture partielle effectu?e, EA ne rappellera plus cette fonction.

  4. #4

    Citation Envoy? par ;
    Au prochain tick, EA ex?cute ? nouveau la fonction de fermeture partielle. mettre un drapeau, o? apr?s la fermeture partielle effectu?e, EA ne rappellera plus cette fonction.
    Merci, mais ?tant donn? que plus de trades sont ouverts, la fonction PartialTradeProfit () doit ?tre ex?cut?e encore et encore pour g?rer les nouveaux trades.

  5. #5

    Citation Envoy? par ;
    {quote} Merci, mais ?tant donn? que plus de trades sont ouverts, la fonction PartialTradeProfit () doit ?tre ex?cut?e encore et encore pour g?rer les nouveaux trades.
    Peut-?tre que vous n'avez pas compris ce que je veux dire. mettre un drapeau d?j? fait la fermeture partielle. d'apr?s ce que je comprends, vous ne voulez faire qu'une fermeture partielle une fois sur chaque commande, n'est-ce pas?

  6. #6

    Citation Envoy? par ;
    {quote} Vous n'avez peut-?tre pas compris ce que je veux dire. mettre un drapeau d?j? fait la fermeture partielle. d'apr?s ce que je comprends, vous ne voulez faire qu'une fermeture partielle une fois sur chaque commande, n'est-ce pas?
    Oui, merci, c'est ce que je veux. Comment mettez-vous un tel drapeau sur un m?tier?

  7. #7
    1 pi?ce (s) jointe (s)
    Citation Envoy? par ;
    {quote} Oui, merci, c'est ce que je veux. Comment mettez-vous un tel drapeau sur un m?tier?
    quand vous fermez partiellement un trade, il obtient un nouveau ticket n ce nouvel ?change billett? n partiellement ferm? il y a un commentaire dans la section commentaire en disant pour un flottant de # ancien num?ro de ticket pour un ferm? ? # nouveau num?ro de ticket pour ne pas fermer partiellement si le commerce flottant a un caract?re # dans la section des commentaires alors le probl?me sera r?solu
    bonne chance je l'ai fait en d?monion pour montrer u. commerce flottant partiellement ferm?

  8. #8
    Citation Envoy? par ;
    {devis} quand vous fermez partiellement une transaction, vous obtenez un nouveau ticket modifier le code ur pour ne pas fermer d partiellement si le commerce flottant a le caract?re # dans la section des commentaires, alors le probl?me sera r?solu
    bonne chance je l'ai fait en d?monion pour montrer u. trade flottant partiellement ferm? {image}
    Merci, j'ai modifi? le code pour ressembler ? ci-dessous, ST ne semble pas tr?s prometteur, bien que
    Il est comme s'il fermait partiellement les premiers trades et le reste continue simplement ind?pendamment du profit (partiel) du 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 (StringFind (OrderComment (), #, 0) gt; = 0) break; 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; }}}}/ ------------------------------------------- -----------------------

  9. #9

  10. #10

    Citation Envoy? par ;
    J'utilise un script au lieu de EA, sans aucun probl?me. Vous pouvez essayer ce {fichier} {fichier}
    Merci, l'utilisez vous aussi sur plusieurs m?tiers, ou juste un seul?

Régles des messages

  • Vous ne pouvez pas cr?er de sujets
  • Vous ne pouvez pas r?pondre aux sujets
  • Vous ne pouvez pas importer de fichiers joints
  • Vous ne pouvez pas ?diter vos messages
  •  
  • Les BB codes sont Activés
  • Les Smileys sont Activés
  • Le BB code [IMG] est Activé
  • Le code [VIDEO] est Activé
  • Le code HTML est Désactivé
Le site d'sundytrading utilise des cookies
Le site d'sundytrading utilise des cookies pour vous assurer la meilleure expérience sur notre site ; certains sont déjà effectifs. Vous pouvez consulter plus de détails sur leurs usages ici. Veuillez cliquer sur le bouton à droite pour accepter nos cookies. Si vous continuez à utiliser le site internet d???sundytrading, nous considérerons que vous acceptez nos cookies.