Toute question des nouveaux arrivants sur MQL4 et MQL5, aide et discussion sur les algorithmes et les codes. - page 1636

 
Alexey Viktorov #:
C'était plutôt le contraire. Dans OnDeInit(), l'Expert Advisor n'a pas eu le temps de supprimer tous les objets par la boucle. Il en a été question ici sur le forum. La solution est sans ambiguïté, il faut tout supprimer par préfixe...

Le préfixe n'est-il pas sans cycle ?

 
Valeriy Yastremskiy #:

Le préfixe n'est-il pas sans cycle ?

int  ObjectsDeleteAll( 
   long           chart_id,   // идентификатор графика 
   const string     prefix,   // префикс имени объекта 
   int       sub_window=-1,   // индекс окна 
   int      object_type=-1    // тип объекта для удаления 
   );
ObjectsDeleteAll - Графические объекты - Справочник MQL4
ObjectsDeleteAll - Графические объекты - Справочник MQL4
  • docs.mql4.com
ObjectsDeleteAll - Графические объекты - Справочник MQL4
 
Alexey Viktorov #:

Oh, mec... Tu sais, c'est juste le bon vieux temps, tu sais ?

Oui, c'est ce que je fais. En règle générale, n'enlevez rien de superflu, seulement le vôtre).

 
Alexey Viktorov #:
C'était plutôt le contraire. Dans OnDeInit(), l'Expert Advisor n'a pas eu le temps de supprimer tous les objets par la boucle. Ce sujet a été abordé ici sur le forum. La solution est sans ambiguïté, supprimez tout par préfixe...

C'est exactement le contraire,ObjectsDeleteAll n'a pas eu le temps de tout supprimer car il a été interrompu par deinit).

alors qu'une simple boucle efface tout - le terminal attend le programme.


ps.ObjectsDeleteAll est la même boucle, pas différente de la boucle personnalisée.

 
Comment travailler avec un fichier dans le programme mql5 sans écrire le fichier sur le disque, mais en travaillant uniquement en RAM, pour accélérer. Je veux transférer des données d'un programme mql5 à un programme sur mon ordinateur.
 
pribludilsa #:
Comment travailler avec un fichier dans le programme mql5 sans écrire le fichier sur le disque, mais en travaillant uniquement en RAM, pour accélérer. Je veux transférer des données d'un programme mql5 à un programme sur mon ordinateur.

Sans écrire sur le disque , vous pouvez essayer BD SQLite, mais je ne l'ai pas fait et je ne suis pas très sûr de réussir. En général, vous devez expérimenter.

 
Alexey Viktorov #:

Sans écrire sur le disque , vous pouvez essayer BD SQLite, mais je ne l'ai pas fait et je ne suis pas très sûr de réussir. En général, vous devez expérimenter.

Merci.
 
Valeriy Yastremskiy #:

Il est préférable de donner la raison, à propos du déplacement, bien fait, je voulais écrire).

C'est ce sur quoi je comptais - soit la personne voudra réfléchir à la raison, soit quelqu'un d'autre le lui dira la deuxième (troisième, cinquième) fois - c'est plus facile à comprendre (surtout si la personne veut comprendre, montre de l'intérêt).

 
Artyom Trishkin #:

Le cycle de suppression doit être inversé :

et ceci s'applique non seulement à la suppression des objets graphiques, mais en général à la suppression de tout objet dans les listes du terminal.

Est-ce parce que les objets sont systématiquement stockés dans un tableau ?

Si vous supprimez chaque groupe d'objets séparément par un cycle (Flèche vers le bas et Flèche vers le haut), ils sont supprimés correctement du graphique.

for(ushort i=0; i < n_arrow_down ; i++) {
      Print("ObjectName ",ObjectName(i),", i-down = ",i);
      ObjectDelete("ArrowDown"+IntegerToString(i, 4, '0'));
    }
    for(ushort i=0; i < n_arrow_up ; i++) {
      Print("ObjectName ",ObjectName(i),", i-up = ",i);
      ObjectDelete("ArrowUp"+IntegerToString(i, 4, '0'));
    }
Alors que la sortie des cycles est la même que dans le premier cas :
.
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName , i-up = 21
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName , i-up = 20
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName , i-up = 19
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName , i-up = 18
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName , i-up = 17
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName , i-up = 16
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName , i-up = 15
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName , i-up = 14
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName , i-up = 13
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName , i-up = 12
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName , i-up = 11
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName ArrowUp0020, i-up = 10
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName ArrowUp0018, i-up = 9
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName ArrowUp0016, i-up = 8
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName ArrowUp0014, i-up = 7
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName ArrowUp0012, i-up = 6
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName ArrowUp0010, i-up = 5
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName ArrowUp0008, i-up = 4
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName ArrowUp0006, i-up = 3
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName ArrowUp0004, i-up = 2
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName ArrowUp0002, i-up = 1
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName ArrowUp0000, i-up = 0
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName ArrowUp0017, i-down = 18
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName ArrowUp0015, i-down = 17
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName ArrowUp0013, i-down = 16
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName ArrowUp0011, i-down = 15
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName ArrowUp0009, i-down = 14
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName ArrowUp0007, i-down = 13
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName ArrowUp0005, i-down = 12
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName ArrowUp0003, i-down = 11
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName ArrowUp0001, i-down = 10
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName ArrowDown0018, i-down = 9
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName ArrowDown0016, i-down = 8
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName ArrowDown0014, i-down = 7
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName ArrowDown0012, i-down = 6
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName ArrowDown0010, i-down = 5
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName ArrowDown0008, i-down = 4
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName ArrowDown0006, i-down = 3
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName ArrowDown0004, i-down = 2
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName ArrowDown0002, i-down = 1
2021.09.30 15:15:59.721 2021.01.04 07:56:37  test EURUSD,M1: ObjectName ArrowDown0000, i-down = 0
 
MakarFX #:
Pourquoi avez-vous besoin de supprimer à travers une boucle ?
Je ne savais pas qu'il existait un ObjectsDeleteAll, et maintenant je veux aller au fond des choses.