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

 
Artyom Trishkin #:

Hmmm...

À un moment donné, l'appel de fonction est bloqué par le sous-système. Peut-être que tu ne devrais pas attendre, mais juste abandonner jusqu'à la prochaine connexion ?

Le service ne se connecte que lorsque le terminal est lancé, ou lorsque le service lui-même est lancé. Par conséquent, si vous quittez, le prochain appel se fera lors du redémarrage de l'un des deux... mais les deux se font manuellement...

 
Alexey Viktorov #:

Le service ne se connecte que lorsque le terminal est lancé, ou lorsque le service lui-même est lancé. Par conséquent, si vous quittez, la prochaine connexion se fera lorsque vous redémarrerez l'un des deux... mais les deux se font manuellement...

Je l'ai. Le service tourne-t-il en boucle ? Ou dans un minuteur ?

 
Artyom Trishkin #:

Je l'ai. Je veux dire, est-ce que le service fonctionne en boucle ? Ou dans un minuteur ?

Le service fonctionne comme un script. La seule différence est que le service démarre avec le démarrage de MT, et le script, vous savez... En conséquence, si quelque chose ne fonctionne pas, il ne fonctionnera pas jusqu'à ce que MT soit redémarré. Il s'avère qu'il est souhaitable de faire une pause et de répéter... Je pense que oui.

 
Alexey Viktorov #:

Le service fonctionne comme un script. La seule différence est que le service démarre lorsque la MT démarre, alors que le script, vous savez... En conséquence, si quelque chose ne fonctionne pas, il ne fonctionnera pas jusqu'à ce que la MT soit redémarrée. Il s'avère qu'il est souhaitable de faire une pause et de répéter ... Je pense que oui.

Vous n'avez pas compris ma question. Ou peut-être que je ne me fais pas bien comprendre ¯_(ツ)_/¯

 
Artyom Trishkin #:

Vous n'avez pas compris ma question. Ou peut-être que je ne me fais pas bien comprendre ¯_(ツ)_/¯

L'un des deux. Mais le service ne fonctionne pas dans la boucle et ne fonctionne pas dans le timer.

 
Alexey Viktorov #:

L'un des deux. Mais le service ne fonctionne pas dans une boucle et ne fonctionne pas dans un timer.

Vous voulez dire qu'il ne se déclenche qu'une seule fois lorsque vous démarrez le terminal ? Non. Comment alors ?

 
Artyom Trishkin #:

Vous voulez dire qu'il ne se déclenche qu'une seule fois lorsque vous démarrez le terminal ? Non. Comment alors ?

J'ai utilisé ce service jusqu'à ce que je trouve une solution ou qu'il soit possible de désactiver l'affichage de l'historique des transactions sur un graphique.

//+------------------------------------------------------------------+
//| Service program start function                                   |
//+------------------------------------------------------------------+
void OnStart()
 {
  long currChart = ChartNext(0);
  while(currChart >= 0)
   {
    ObjectsDeleteAll(currChart, "autotrade");
    currChart = ChartNext(currChart);
   }
 }
//+------------------------------------------------------------------+

J'ose dire que cela fonctionne avec succès. Je suis trop paresseux pour le chercher. C'est beaucoup plus facile de le répéter.

Ce service

//+------------------------------------------------------------------+
//| Service program start function                                   |
//+------------------------------------------------------------------+
void OnStart()
 {
  Print("Запуск произведён успешно");
 }
//+------------------------------------------------------------------+

Il s'imprime une fois au démarrage du terminal. Il est donc facile à vérifier.

 
Alexey Viktorov #:

Jusqu'à ce que je trouve une solution ou qu'il soit possible de désactiver l'affichage de l'historique des transactions sur le graphique, j'utilisais le service suivant

J'ose dire que cela fonctionne avec succès. Je suis trop paresseux pour trouver où j'ai écrit à ce sujet auparavant. C'est beaucoup plus facile de le répéter.

Ce service

Il s'imprime une fois au démarrage du terminal. C'est donc facile à vérifier.

Vous voulez dire que le service n'imprime qu'une seule fois au démarrage du terminal ? Comme un script ? Seul le script est exécuté manuellement ou par programme, et le service est exécuté au démarrage du terminal. C'est comme ça ? Et, dites-vous que le service ne fonctionne plus ? C'est-à-dire qu'il ne se déclenche qu'UNE seule fois ?

 
JRandomTrader #:

Par exemple, comme ceci.

Les macros sont globales.

pouvez-vous expliquer où vous devez les écrire ?

dans la classe ou dans le conseiller

 
Artyom Trishkin #:

Voulez-vous dire que le service est exécuté UNE SEULE fois lorsque vous démarrez le terminal ? Vous aimez le scénario ? Seul le script est exécuté manuellement ou par programme, et le service est exécuté lorsque le terminal est chargé. C'est comme ça ? Et, dites-vous que le service ne fonctionne plus ? C'est-à-dire qu'il ne fonctionne qu'UNE seule fois ?

Artem, pourquoi me demander de te prouver quelque chose ? Écrivez une ligne et vérifiez.

Raison: