mql5 - ligne verticale après un certain temps depuis la dernière transaction - page 6

 
Je pense l'avoir trouvé - j'ai joint le fichier :)
La ligne se déplace selon l'algorithme spécifié en fonction du nombre d'heures spécifié depuis la clôture de la dernière transaction. Je l'ai décalé non pas de 1/2/24 heures mais de 1/2/12 heures, car la journée entière est trop importante pour le répit. Dans tous les cas, ces variables seront déplacées vers des paramètres externes pour plus de commodité. Glitch j'ai annoncé plus tôt avec ACID_NW pas même regardé, plus tard dans le processus de test et de détection possible de nouveaux glitches sera déjà comprendre
 
Ensuite, j'afficherai dans Commentaire l'heure de clôture de la dernière transaction et l'heure à laquelle la ligne est décalée, c'est-à-dire le moment où je peux reprendre le trading après une pause. Il semble que cela devrait être assez simple, étant donné que les variables avec les données nécessaires ont déjà été créées et calculées - il suffit de convertir le format des secondes en date, mais pour une raison quelconque, cela ne fonctionne pas tout de suite :(
 
renatmt5:
Ensuite, j'afficherai dans Commentaire l'heure de clôture de la dernière transaction et l'heure à laquelle la ligne est décalée, c'est-à-dire le moment où je peux reprendre le trading après une pause. Il semble que cela devrait être assez simple, étant donné que les variables avec les données nécessaires ont déjà été créées et calculées - il suffit de convertir le format des secondes en date, mais pour une raison quelconque, cela ne fonctionne pas tout de suite :(
TimeToString()
 

Sergey, merci ! C'est exactement ce que j'ai essayé, mais pour une raison quelconque, je me suis retrouvé avec zéro. Il ne m'a pas fallu longtemps pour comprendre où je me suis trompé - je ne pense pas que ce sera un gros problème.

 
J'ai lu sur un autre forum une explication concernant ACID_NW: "Si, à la fin de la journée de négociation, le montant des fonds de bonus sur votre compte dépasse la limite autorisée, le montant excédentaire sera automatiquement transféré sur votre compte de bonus. Lors du transfert, vous verrez les abréviations suivantes dans le commentaire de la transaction de solde : _ACID_NW, où ACID signifie "Automatic Adjustment" et NW "Bonus Funds".
Comme j'ai un problème avec l'indicateur à cause de cela - l'indicateur réinitialise les données sur la dernière transaction et le résultat du jour précédent, l'option la plus simple que je vois est de simplement supprimer l'argent du bonus du compte. Si je comprends bien, alors par définition cet _ACID_NW ne se produira pas ? Au cours du processus de négociation, les nouveaux fonds de bonus ne seront pas crédités sur le compte de négociation, mais ils seront crédités sur le compte de bonus ?
 
renatmt5:
J'ai également lu à propos de ACID_NW dans l'explication du forum"Si, à la fin d'une journée de négociation, le montant des fonds de bonus sur votre compte dépasse la limite autorisée, le montant excédentaire sera automatiquement transféré sur votre compte de bonus. Lors du transfert, vous verrez les abréviations suivantes dans le commentaire de la transaction de solde : _ACID_NW, où ACID signifie "Automatic Adjustment" et NW "Bonus Funds".
Comme j'ai un problème avec l'indicateur à cause de cela - l'indicateur réinitialise les données sur la dernière transaction et le résultat du jour précédent, l'option la plus simple que je vois est de simplement supprimer l'argent du bonus du compte. Si je comprends bien, alors par définition cet _ACID_NW ne se produira pas ? Au cours du processus de négociation, les nouveaux fonds de bonus ne seront pas crédités sur le compte de négociation, mais ils seront crédités sur le compte de bonus ?

Prenez votre temps. Exécutez le scriptHistorique des transactions et des commandes.

Saisissez les dates Du jour et Au jour. Laissez la sortie d'information par défaut (elle sera sortie dans le nom du fichier).

Après cela, pour voir et ouvrir le fichier texte, vous devez

  • Étape 1 : sélectionnez le menu Fichier et choisissez "Ouvrir le dossier de données" ;
  • Étape 2 : Dans l'explorateur qui s'ouvre, allez successivement dans le dossier "MQL5\Files".

Collez toutes les informations du fichier dans le message sous forme de code (appuyez sur Alt+S).

 
J'ai fait une sortie pour un jour - je ne peux pas la mettre en code, trop de caractères. Sauvegarder avec un fichier ou réduire l'intervalle à quelques heures pour capturer une transaction et l'ACID_NW qui s'ensuit?
 

Correction du problème, à cause duquel l'indicateur ne calculait pas le bénéfice de la dernière transaction et le jour de la dernière transaction sur un nouveau jour. Il s'avère que le problème ne réside pas dans l'opération_ACID_NW, mais dans le fait que la valeur de la variable from_date (date initiale, à partir de laquelle l'historique des transactions a été chargé) était incorrecte. Dans le code, il était décrit comme "from_date=iTime(Symbol(),PERIOD_D1,0)", c'est-à-dire, comme je l'ai compris, le point de départ - le début du jour actuel. Et il faut télécharger l'historique pendant 24 heures, sinon les résultats d'hier ne sont pas inclus. Pour simplifier, je ne l'ai pas fait pour les dernières 24 heures, mais depuis le début d'hier. 24 heures, et depuis le début d'hier, c'est-à-direfrom_date = iTime(Symbol(),PERIOD_D1,1) - tout a été correctement calculé !

 

Les gars, s'il vous plaît, conseillez-nous sur la sortie de la valeur de la variable datatime.

J'ai une variable avec la chaîne de temps last_deal_day=time[rates_total-1]-fromlastdeal_seconds ;

Lorsque j'édite la valeur de cette variable Comment("last_deal_day = ",last_deal_day) j'édite la date et l'heure comme "2019.03.21 02:48:19"
Comment puis-je diviser cette valeur en deux variables pour éditer la date et l'heure séparément ?

 
renatmt5:

Les gars, s'il vous plaît, conseillez-nous sur la sortie de la valeur de la variable datatime.

Ma variable est définie par la date last_deal_day=time[rates_total-1]-fromlastdeal_seconds ;

Lorsque j'édite la valeur de cette variable Comment("last_deal_day = ",last_deal_day) la date et l'heure comme "2019.03.21 02:48:19" sont éditées.
Comment puis-je diviser cette valeur en deux variables pour sortir la date et l'heure séparément ?

TimeToString


    Comment(TimeToString(last_deal_day,TIME_DATE)+" "+TimeToString(last_deal_day,TIME_SECONDS)