Bonjour à tous :)
Selon le tuto présenté à cette URL : https://www.mql5.com/en/articles/11826
J'essaie de créer un service. Mon code pour démarrer est tout simple :
Malheureusement, je ne sais pas expliquer pourquoi aucune alerte se déclenche. J'ai essayé Print, Printf (CF le tuto), mais je n'arrive pas à afficher les informations d'un service ou que ce soit ...
Savez vous me dire comment je dois m'y prendre ?
2.3 Prohibition on the use of functions in services
The developer provides an exhaustive list of functions not allowed for use:
- ExpertRemove(),
- EventSetMillisecondTimer(),
- EventSetTimer(),
- EventKillTimer(),
- SetIndexBuffer(),
- IndicatorSetDouble(),
- IndicatorSetInteger(),
- IndicatorSetString(),
- PlotIndexSetDouble(),
- PlotIndexSetInteger(),
- PlotIndexSetString(),
- PlotIndexGetInteger().
This is reasonable since services cannot stop the Expert Advisor and work with the timer, since they handle a single Start event. They also cannot work with the functions of custom indicators.
Vous ne pouvez donc pas utiliser ces fonctions la.
Pour les utiliser, je vous suggère à la place de le faire avec un expert advisor, et non un service, en mettant EventSetTimer() dans OnInit(), puis en mettant votre action période dans OnTimer().
Bonjour,
Merci beaucoup de cette réponse, votre aide est précieuse :)
Il y a donc clairement une partie de mon traitement qui se fera avec un expert advisor.
Néanmoins, je viens de tenter de copier/coller la documentation avec ce code très simple :
//+------------------------------------------------------------------+ //| Service program start function | //+------------------------------------------------------------------+ void OnStart() { string program_name=::MQLInfoString(MQL_PROGRAM_NAME); datetime now=::TimeLocal(); ::PrintFormat("Service \"%s\" starts at: %s", program_name,::TimeToString(now, TIME_DATE|TIME_SECONDS)); }
Rien ne s'affiche dans aucun des journaux disponibles ...
J'imagine que je regarde au mauvais endroit ou que je n'ai pas activé une option ?
Au demeurant, je rencontre un autre problème : le lancement / coupure des services via meta editor est très instable (ça se lance parfois et reste actif, d'autres fois ça semble se lancer mais ne reste pas actif ...)
Merci encore de votre aide.
Bonjour,
Merci beaucoup de cette réponse, votre aide est précieuse :)
Il y a donc clairement une partie de mon traitement qui se fera avec un expert advisor.
Néanmoins, je viens de tenter de copier/coller la documentation avec ce code très simple :
Rien ne s'affiche dans aucun des journaux disponibles ...
J'imagine que je regarde au mauvais endroit ou que je n'ai pas activé une option ?
Au demeurant, je rencontre un autre problème : le lancement / coupure des services via meta editor est très instable (ça se lance parfois et reste actif, d'autres fois ça semble se lancer mais ne reste pas actif ...)
Merci encore de votre aide.
Ce code fonctionne bien.
Avez-vous cette directive dans votre code ?
#property service
Bonjour,
Voici ce qui est déclaré :
#property service #property copyright "Copyright 2023, MetaQuotes Ltd." #property link "https://www.mql5.com" #property version "1.00"
J'ai initialisé le fichier avec l'assistant, c'est ce qu'il a créé. J'ai l'impression que le service est actif, mais onStart, il n'affiche rien.
Très difficile de debugguer :)
Bonjour,
Merci beaucoup de votre aide Alain.
Cela fonctionne effectivement très bien dans l'expert tab, mais n'est pas utilisable dans le testeur de stratégies.
![MQL5 - Langage des stratégies de trading intégré au terminal client MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Vous acceptez la politique du site Web et les conditions d'utilisation
Bonjour à tous :)
Selon le tuto présenté à cette URL : https://www.mql5.com/en/articles/11826
J'essaie de créer un service. Mon code pour démarrer est tout simple :
Malheureusement, je ne sais pas expliquer pourquoi aucune alerte se déclenche. J'ai essayé Print, Printf (CF le tuto), mais je n'arrive pas à afficher les informations d'un service ou que ce soit ...
Savez vous me dire comment je dois m'y prendre ?