Questions des débutants MQL5 MT5 MetaTrader 5 - page 766

 
Aleksey Vyazmikin:

Je propose de ne pas s'écarter du concept qui, si j'ai bien compris, consiste à copier une certaine quantité de données de barres au début du code, puis à travailler avec ces données - ou bien suggérez-vous une exception ?

Et, qu'est-ce qui vous fait penser que je suis un programmeur ?

Je ne pense pas qu'il soit nécessaire de deviner - ce qui sera plus rapide, parfois la réponse peut ne pas être évidente - seule l'expérience peut donner une réponse à de telles questions.

Alors vous êtes le bienvenu ici.

 
Vitaly Muzichenko:

Vous devez supprimer les objets avec un ticket qui sont déjà dans l'historique, mais pas ceux qui sont encore sur le marché.

Vous avez besoin d'un ticket pour une position fermée, mais vous ne pouvez pas l'obtenir avec PositionSelect().

 
Vitaly Muzichenko:

vous devez supprimer les objets avec un ticket qui sont déjà dans l'historique, mais pas ceux qui sont encore sur le marché

Duplicata :

Et si la tâche était "inversée" ?

Supprimez les objets tickets dont les positions sont déjà hors du marché... ou NE PAS supprimer les objets du ticket, qui ne sont pas encore dans l'historique, et supprimer le reste... Ce qui est fondamentalement la même chose.

 
Ivan Ivanov:

En bref, vous avez besoin du ticket d'une position déjà fermée, mais vous ne pouvez pas l'obtenir avec PositionSelect().

Voici un script, qui renvoie tous les tickets de position fermés pour une période historique donnée.

void OnStart()
{ ulong DealTicket; // for Function : replace void with ulong
  ulong PositionTicket;
  if ( HistorySelect(TimeCurrent()-30*24*60*60,TimeCurrent()) ) // Select History = 30 days
  { if ( HistoryDealsTotal()>0 )
    { int DealIndex=HistoryDealsTotal()-1;
      while ( DealIndex>=0 )
      { DealTicket=HistoryDealGetTicket(DealIndex); // select Deal 
        if ( HistoryDealGetInteger(DealTicket,DEAL_ENTRY)==DEAL_ENTRY_OUT ) // Deal close Position
        { PositionTicket=HistoryDealGetInteger(DealTicket,DEAL_POSITION_ID);
          Print("\n DealTicket = "+IntegerToString(DealTicket));
          Print("PositionClosedByDeal = "+IntegerToString(PositionTicket));
          // if ( some condition ) // for Function : Your selection
          // return (PositionTicket); // for Function : Enable return
        }
        DealIndex--;
      }
      // Print("Warning = Nothing selected from History"); // for Function : remove //
    }
    else Print("Warning = Empty History (select longer History)");
  }
  else Print("Error = "+IntegerToString(GetLastError())+" = Not loaded History");
  // return (-1); // for Function : Enable return
}

Le code indique comment le convertir en une fonction (en anglais)

 
Ivan Ivanov:

Voici le script qui renvoie le ticket de toutes les positions fermées pour une période d'historique donnée.

Le code montre comment le convertir en une fonction (en anglais)

Le plus intéressant est qu'il a été mentionné dès le départ :

Forum sur le trading, les systèmes de trading automatisé et les tests de stratégie

Questions des débutants MQL5 MT5 MetaTrader 5

Artyom Trishkin, 2017.07.24 23:33

Avez-vous essayé de rechercher une transaction fermée (OUT) ? L'ordre était là - vous pouvez le voir.

Mais Vitaly n'a pas compris le sens de ce qui était écrit. Et il ne m'a même pas demandé de le répéter.
 
Artyom Trishkin:

Ce qui est intéressant, c'est que cela a déjà été mentionné tout de suite :

Mais Vitaly n'a apparemment pas saisi le sens de l'écrit. Et il ne m'a même pas demandé de le répéter.

Merci Artyom, j'ai décidé de laisser ça pour plus tard, j'ai demandé pendant que je dormais ;)


Ivan Ivanov:

Voici le script qui renvoie le ticket de toutes les positions fermées pour une période d'historique donnée.

Le code indique comment le convertir en une fonction (en anglais)

Merci pour le code, ça m'a aidé.


Problème résolu !

 
Artyom Trishkin:

Ce qui est intéressant, c'est que cela a déjà été mentionné dès le départ :

Mais Vitaly ne semblait pas saisir le sens de ce qui était écrit. Et il n'a même pas redemandé.

Au modérateur :

L'homme voulait le code (idée de mise en œuvre). Et il n'y en avait pas, mais il a été envoyé à Freelance.

 
Ivan Ivanov:

Au modérateur :

La personne veut le code (idée de mise en œuvre). Et là, il n'a PAS été battu, mais envoyé en freelance.

Le modérateur a-t-il un nom ?
Je connais Vitaly. Il lui suffit de montrer la bonne direction. Le code est pour les fainéants et les abrutis. Et ce n'est pas Vitaly qui a été envoyé en free-lance. Mais quelqu'un qui n'est pas un programmeur.
Une idée de mise en œuvre est une idée, un algorithme.
Et la mise en œuvre est un code, et pas toujours le bon.

 
Artyom Trishkin:
Le modérateur a-t-il un nom ?
Je connais Vitaly. Il lui suffit de montrer la bonne direction. Le code est pour les fainéants et les abrutis. Et ce n'est pas Vitaly qui a été envoyé en freelance. Mais pour quelqu'un qui n'est pas un programmeur.
L'idée de mise en œuvre est une idée, un algorithme.
Et la mise en œuvre est un code, et pas toujours le bon.

Est-ce que quelqu'un qui n'est pas un programmeur a un nom ?

Oui, je ne suis pas un programmeur de formation, mais je m'efforce chaque jour de maîtriser cette compétence difficile.

 
Aleksey Vyazmikin:

Est-ce que quelqu'un qui n'est pas un programmeur a un nom ?

Oui, je ne suis pas un programmeur de formation, mais je travaille chaque jour pour maîtriser cette compétence qui n'est pas facile.

Ah, voilà. Vous avez toujours envie d'apprendre la programmation ? Essayez ensuite de comprendre ce qui est proposé et ne vous faites pas passer pour un examinateur. Sans vouloir vous offenser, c'est ainsi que j'ai compris toutes les objections et questions concernant CopyRates().

Je ne suis pas non plus un programmeur de formation. Quand j'étudiais, cette spécialité n'existait pas et je comptais sur un arithmomètre "Felix".