Achetez la limite et atteignez la limite au bon moment. Trade Scheduler - limitation du travail de l'Expert Advisor Expert des Ordres en Attente

Aujourd'hui, nous allons parler du robot Trade Scheduler, qui a une fonction très intéressante. Lorsque vous utilisez des systèmes automatisés dans le trading Forex, avez-vous remarqué que certains jours de la semaine ou à certaines heures, ils sont plus susceptibles de générer des pertes ? Par exemple, le premier jour de la semaine, le conseiller ouvre très peu de transactions, et la plupart d'entre elles ne sont pas non plus rentables. Dans de tels cas, il est logique de désactiver le conseiller avant samedi et de l'activer mardi. Vous pouvez effectuer cette opération simple manuellement, mais vous pouvez aussi facilement oublier de désactiver ou d'activer le conseiller au bon moment.

La solution à ce problème (et à quelques autres) pourrait être utiliser le robot Trade Scheduler, qui ne négocie pas lui-même, mais permet de limiter le temps de travail des autres conseillers selon un planning, établi sur la base d'une analyse du travail de ces conseillers.

Avant de procéder à des ajustements sur le mode de fonctionnement horaire, il est nécessaire de savoir à quels moments il s'échange le plus souvent dans le rouge. Dans ce cas, le service MyFXbook vous aidera, qui fournit des statistiques de trading détaillées du système par jour de la semaine et par heure. La période de trading optimale pour analyser le fonctionnement du système est de 3 mois. Pour le réaliser, vous devez démarrer la surveillance sur le service. Vous pouvez en savoir plus sur l'installation du robot sur MyFXbook. A titre d'exemple, regardons les résultats des travaux de l'expert, dont le suivi est consultable en cliquant sur l'image :

Riz. 1. Suivi du travail du conseiller Transient Zones 2.0 sur le service MyFXbook.

En option, pour ceux qui ne disposent pas encore d'un historique de trading suffisant du robot pour une analyse sur un compte réel, mais qui peuvent en même temps être testés, n'hésitez pas à télécharger le rapport reçu du service vers le service.

Après avoir téléchargé et traité le suivi, vous devez vous rendre dans la section statistiques avancées, onglet Quotidien. Vous trouverez ici des informations sur les quantités relatives par jour de la semaine. Dans notre exemple, le plus grand nombre de transactions perdantes se produit le jeudi et le vendredi, ce qui signifie que ces jours-là, il serait raisonnable de suspendre le travail de l'Expert Advisor. La raison de ce comportement peut résider dans les conditions du marché, qui de nos jours ne sont pas adaptées à la stratégie du robot, et ses calculs sont moins précis :


Riz. 2. Le ratio de transactions rentables et non rentables du conseiller Transient Zones 2.0 pour la semaine.

Après avoir analysé par jour, vous pouvez analyser l'efficacité du travail par heure. Pour ce faire, vous devez accéder à l'onglet Horaire et voir quand le nombre relatif de transactions perdantes est plus élevé :


Riz. 3. Nombre relatif de transactions perdantes et rentables par heure.

Conclusion : il serait sage d'arrêter le processus de trading le jeudi, le vendredi et, les autres jours, de bloquer son travail dans les deux premières heures de la nouvelle journée, et pendant la journée pendant les heures où prédominent les transactions perdantes - en particulier à 12 heures. , 13, 14h . Autrement dit, laissez-le fonctionner la nuit de 2 heures à 8 heures incluses et de 13 heures à 21 heures pendant la journée. Le résultat du travail du conseiller devrait s'améliorer considérablement.

Installation et configuration de l'expert.

L'installation du conseiller auxiliaire Trade Scheduler s'effectue par analogie avec tout autre conseiller ; plus de détails à ce sujet sont écrits. À partir du lien ci-dessous, vous pouvez télécharger l'archive avec l'expert :

Télécharger trade-scheduler.rar (téléchargements : 139)

Décompressez l'archive trade-scheduler.rar et copiez le fichier expert TradeScheduler v2.3.ex4 dans le dossier data_directory\MQL4\Experts\. Pour ouvrir le répertoire de données, sélectionnez Ouvrir le répertoire de données dans le menu Fichier. Ensuite, le terminal redémarre et le conseiller se trouve ensuite dans la fenêtre Navigateur - Conseillers.

Lors de l'installation de l'Expert Advisor sur une carte, la durée de fonctionnement requise est spécifiée dans la fenêtre des paramètres par jour de la semaine et par heure. L'heure est réglée en fonction de l'heure du terminal, qui est également l'heure. Pour chaque jour, il y a 3 paramètres d'entrée. Le premier paramètre est responsable de l'activation/désactivation du robot un certain jour de la semaine, le deuxième paramètre est l'heure de début du trading, le troisième est l'heure d'arrêt. L'heure est indiquée au format heures : minutes :


Riz. 4. Paramètres d'entrée spécifiés après analyse du fonctionnement du conseiller.

Il existe également un paramètre supplémentaire CloseBeforeSwitchOFF dans les paramètres. Lorsqu'il est défini sur CloseAll, toutes les transactions seront automatiquement fermées avant que le robot ne soit éteint. Lorsque CloseAllProfitable - seules les commandes rentables seront fermées, lorsque Non - les transactions ne seront pas clôturées. Le paramètre Slip est responsable du glissement maximum autorisé.

Assurez-vous que le trading automatique et l'importation de fonctions à partir de DLL sont autorisés dans le terminal. Une version du conseiller est installée pour un terminal.

Conclusion.

Vouloir améliorer les performances votre conseiller ? Essayez la méthode de limitation de son fonctionnement et analysez les résultats. Si les statistiques montrent que votre expert « perd constamment » à un certain moment de la journée, il existe alors une tendance sur le marché qu'il ne peut pas traiter. Suspendez le trading pendant cette période défavorable et augmentez sa rentabilité !

Ce conseiller est idéal pour ceux qui négocient par niveaux et pour toute stratégie utilisant des ordres limités en attente. Le conseiller passera les ordres au bon moment à la bonne distance du prix actuel ! Dans les paramètres du robot, vous pouvez définir des stop loss, prendre des bénéfices sur les commandes, ainsi que le lot de chaque commande. Tout est réglé pour chaque commande séparément. Vous pouvez placer uniquement une limite d'achat, ou une limite de vente, ou les deux ordres ensemble !

Le conseiller est prêt à travailler sur n'importe quel instrument de trading, dans n'importe quel terminal de trading Metatrader 4. Le robot est également prêt à travailler sur plusieurs paires de devises à la fois. Autrement dit, vous pouvez ouvrir n'importe quel nombre de paires et y installer un conseiller, en attribuant à chacune son propre nombre magique et ses propres paramètres d'heure. Après quoi, chaque couple travaillera strictement individuellement. Si vous travaillez encore manuellement avec des ordres limités, ce robot est fait pour vous !

  • Limite d'achat- S'il faut définir un ordre d'achat limité.
  • Lot_buy_limit- Limite d'achat des ordres de lot.
  • R_buy_limite- Distance entre le prix actuel et l'ordre d'achat limité en points.
  • Stop_Loss_buy_limit- Ordres limités d'achat stop loss.
  • Take_Profit_buy_limit- Limite d'achat des ordres Take Profit.
  • SELL_limite- S'il faut définir un ordre de vente limité.
  • Lot_sell_limit- Limite de vente des ordres de lots.
  • R_sell_limite- Distance entre le prix actuel et l'ordre limite de vente en points.
  • Stop_Loss_sell_limit- Limite de vente des ordres stop loss.
  • Take_Profit_sell_limit- Limite de vente des ordres de prise de profit.
  • Glissement- Glissement maximum en points.
  • Fermer_Commandes- Clôture de la deuxième commande lors de l'ouverture de la première.
  • Fois- Durée de vie de la commande en quelques minutes.
  • Heure_Début- Passer des commandes par heure ?
  • Heure_Heure- Heure d'ouverture des commandes 0-23
  • Heure_Minute- Minute pour l'ouverture des ordres 0 à 59. Par exemple, heure = 5, minute 40, ce qui signifie qu'à 5h40 les ordres seront passés en fonction du prix du moment.
  • Expert_I- numéro magique pour déterminer vos ordres et trader multi-devises.

De l'article, vous apprendrez :

Bonjour, chers lecteurs et invités du blog. Aujourd'hui, nous parlerons de la manière dont il existe des conseillers auxiliaires qui passent des ordres temporels et en attente, ainsi que de la manière dont les transactions sont clôturées.

Meilleur courtier

Un conseiller qui ouvre les ordres toutes les heures ou selon l'heure est un outil qui aide dans diverses situations de trading. En général, autant que je sache, l'intérêt pour de tels conseillers effectuant des actions similaires existe depuis longtemps. Et en 2006, de tels robots existaient, et en 2008, sur la base des demandes, vous pouvez suivre l'intérêt pour eux, et maintenant les demandes pour produire de tels experts continuent d'apparaître. Dans le même temps, les nouveaux arrivants sont souvent aidés par des commerçants expérimentés, et pas seulement des commerçants, mais aussi ceux qui sont engagés dans le commerce. Dans l’ensemble, c’est une bonne tradition. Elle repose généralement sur un échange mutuel. Le débutant propose des idées, et l'expérimenté obtient le droit d'utiliser l'idée et crée un code expert qu'il partage avec son partenaire.

Lorsque les conditions se présentent pour faire appel à ces experts

Cependant, rentrons dans le vif du sujet ! Mon histoire d'aujourd'hui est celle d'un expert qui sait passer des commandes au bon moment. Il est utilisé à diverses fins. Par exemple, il existe des systèmes de trading strictement liés au début d'une bougie ou d'une session. Par exemple, il existe et, selon mes modestes recherches, un certain semblant de telles ondes existe dans la réalité, mais elles apparaissent à des moments différents, et il existe des périodes de durées différentes. Vous pouvez par exemple les retrouver sur USDCAD sur Mn.

Il y a chaque mois des bougies qui se ressemblent beaucoup. En janvier par exemple, depuis six ans, il y a une tendance à la hausse ou une tendance à la baisse, ce n’est pas la question. Afin de percevoir des revenus grâce à cette approche, vous devez passer une commande dans une direction déterminée par la méthode de recherche au début du mois et la supprimer à la fin, et ce uniquement pendant certains mois de l'année. C'est précisément pourquoi l'expert passe les commandes par date, heure et minute.

Un expert qui donne des ordres au bon moment met également en œuvre d'autres tâches, par exemple, on sait que demain il y aura une tendance sur le marché et l'idée de trading stipule qu'il faut prendre position sur chaque bougie horaire en direction du s'orienter. Et vous devez annuler les ordres à la fin de la journée de négociation.

Ainsi, les commandes apparaîtront sous la forme d’une telle grille. Vous pouvez voir comment cela se fait différemment sur la page où. À la fin de la journée de travail, les ordres d'achat, de vente ou de marché sont également supprimés au bon moment.

Pourquoi cela est-il ainsi? Parce que j'ai vu cette approche dans la modification suivante : passer des ordres sur chaque bougie avec un ordre au marché ou aussi sur chaque bougie, mais avec des stop d'achat et de vente dans des sens opposés. Dans le second cas, vous ne savez peut-être même pas dans quelle direction le marché va évoluer, mais vous captez simplement le mouvement, comme si vous utilisiez un filet à papillons. De plus, lorsque vous passez des ordres stop d'achat et de vente dans les deux sens, peut-être que jusqu'à la fin de la journée, l'un d'entre eux ne s'ouvrira pas et restera suspendu.

Télécharger

Il apparaît donc clairement qu’il existe aujourd’hui trois types d’experts auxiliaires dans ce contexte.

  1. Le premier type est un expert qui passe des ordres sur le marché en tenant compte de certaines heures et minutes,
  2. Le deuxième type est un expert des commandes en attente par heures et minutes.
  3. Le troisième type peut être mis en œuvre au sein des deux premiers ou constituer un programme distinct. C'est exactement le cas dans notre exemple.

Expert en ordres de marché

Lorsque vous savez que la tendance haussière débutera à 23h50, donc le prix dépassera définitivement 60 pips, avec un stop loss de 30 pips, et que vous avez un expert qui suivra le stop loss, vous aurez donc besoin d'un ordre. En même temps, vous ne serez pas loin, donc le son annonçant l'ouverture vous sera utile. Dans de telles conditions, vous aurez besoin du premier type d’expert. Dans ce cas, il s’agit de l’expert e-OpenByTime. Cet expert, téléchargeable à l'aide des boutons sociaux, possède les paramètres suivants :

  • TimeTrade – vous définissez ici le moment exact où la commande doit être ouverte. Format des données hh:mm.
  • Durée – la période en secondes pendant laquelle l'expert tentera de passer une commande.
  • Vendre – ici, vous devez spécifier le type d'ordre vrai – cela signifie qu'un ordre sera ouvert sur le marché pour vendre l'actif. La valeur false correspond à un ordre d'achat.
  • Lots – cette option limitera votre lot de négociation à une valeur spécifiée.
  • SopLoss – le stop loss est conçu pour les courtiers à quatre chiffres, donc pour déterminer sa taille à 30 points, vous devez définir la valeur sur 300
  • TakeProfit – c’est la même histoire avec le take profit.
  • MagicNumber – Je pense que tout est clair ici.
  • UseSound – vient ensuite les paramètres sonores.
  • NameFileSound – ici nous sélectionnons un fichier son.
  • Parmi les paramètres restants, seul MaketWatch peut soulever des questions. Il s'avère que ce paramètre est nécessaire pour garantir que les demandes de transaction sont envoyées conformément aux règles de surveillance du marché exigées par certains courtiers.

Expert commandes en attente

Le deuxième type d'experts qui travaillent à l'ouverture des ordres en attente sont des experts de divers systèmes de trading de boîtes. Similaire

Cette fois, je décrirai un expert, pour ainsi dire, un expert qui, sans tenir compte des tendances et autres signes du graphique, ouvrira deux transactions d'achat et de vente stop dans les deux sens.

Nous parlons de l'expert 37_Exp-TimeOpenBuy. La configuration est assez simple.

  • BuyStopOpen et SellStopOpen - dans ce cas, les deux sont définis comme vrais.
  • Distance – détermine à quelle distance du prix actuel ces commandes seront passées. Veuillez noter que la valeur ici et dans la ligne suivante est calculée pour un courtier à quatre chiffres, donc pour définir la distance, vous devez utiliser un nombre, par exemple 30 points et ajouter un autre 0 à la fin.
  • TPBuyStop, SLBuyStop, TPSellStop, SLSellStop – vous permettent de déterminer la distance pour prendre des bénéfices et stopper les pertes pour chaque commande. (Ici, nous ajoutons également un zéro au nombre à la fin.)
  • CloseAfterOpen – vous permet de supprimer une transaction qui reste après le déclenchement de l'un des ordres d'achat et de vente stop.
  • Slippage est un paramètre qui, d'après mon expérience, doit être défini sur toute valeur autre que zéro pour que les commandes puissent être passées. Il s'agit de la valeur de glissement maximale.
  • CloseIfNotOpen – a été conçu comme une fonction qui supprime tous les arrêts d'achat et de vente ayant échoué à un nouveau moment. Cependant, peu importe à quel point j’ai essayé d’utiliser cette opération, rien n’a abouti.
  • Les options restantes sont nécessaires pour déterminer le moment d'entrée sur le marché et d'en sortir.

Expert en décapage

Enfin, le troisième conseiller, qui, à l'aide du code mql4 que j'ai compilé, effectue la suppression des buy-, à temps, plus précisément que tous. En général, vous disposerez désormais d'un ensemble complet de conseillers pour passer des ordres d'achat, de vente stop et sur le marché, ainsi que d'un expert qui clôturera les ordres à temps. Pour ce faire, avant le cycle, qui ferme simplement les ordres d'achat, de vente stop, ou il serait plus correct de dire : les supprime, vous devez effectuer une vérification si (TimeCurrent()>=BlackTime). Dans ce cas, la variable se voit attribuer le délai après lequel les commandes sont supprimées.

conclusions

Aujourd'hui, nous avons fait connaissance avec un ensemble très utile de conseillers auxiliaires pouvant être utilisés dans différentes conditions de marché. Pour les utiliser, vous aurez besoin d’une configuration rapide et d’une sorte de prévision du marché. Grâce à leur utilisation, vous pourrez organiser des entrées et des sorties totalement indépendantes et presque entièrement automatiques. Je dirais même que tout se fera automatiquement, mais seulement dans le cadre de quelques actions, il faudra alors modifier les réglages des experts. Cependant, c'est déjà une bonne aide pour ceux qui n'ont pas le temps de s'asseoir devant un moniteur sans restrictions. C'est tout, chers amis. J'espère que vous avez trouvé cette page intéressante.

(2 notes, moyenne : 5,00 sur 5)

Si votre système de trading n'est pas basé sur des sauts d'actualités, il peut alors être très utile pour votre santé financière et mentale d'arrêter le travail du conseiller avant la publication d'informations importantes. Et une fois la volatilité stabilisée, après quelques heures, rallumez-le. C'est bien si vous avez accès à un terminal fonctionnel à portée de main. Et sinon? C’est là que l’automatisation de ces activités s’avère utile.

L'une des options pour résoudre notre problème consiste à compiler un fichier avec un calendrier des événements importants. Lecture de ce dossier par notre expert, et détermination quand vous pouvez travailler et quand non. Le manuel MQL4 fournit un exemple de travail avec un fichier texte CSV, et nous le prendrons comme base, en nous débarrassant simultanément de quelques erreurs que les auteurs ont commises involontairement ou afin de tester notre attention (dont ils mettent eux-mêmes en garde - nous ne devons faire confiance aveuglément à personne, des erreurs se produisent toujours).

Faisons donc un planning des événements importants de la semaine prochaine au format suivant :
Date et heure de l'événement ; instrument ; description de l'événement

2016.04.01 14:00;USD;Indice ISM d'activité des entreprises dans le secteur manufacturier 2016.04.01 14:00;USD;Indice d'accélération progressive de l'inflation de l'ISM 2016.04.04 09:00;EUR;Indice des prix à la production (m/m ) 2016.04.04 09:00;EUR;Indice des prix à la production (Annuel) 2016.04.05 04:30;AUD;Décision de la Banque de réserve d'Australie concernant le taux d'intérêt 2016.04.05 04:30;AUD;Déclaration d'accompagnement de la réserve Banque d'Australie 2016.04.06 07 : 00;EUR;Réunion de la BCE 2016.04.06 18:00;USD;Procès-verbal de la réunion du Comité fédéral de l'Open Market des États-Unis 2016.04.07 11:30;EUR;Informations sur la réunion de la BCE sur les questions monétaires politique

Écrivons-le dans le fichier ht-news.csv et plaçons-le dans le répertoire requis \MQL4\Files\ht-news.csv, d'où notre conseiller pourra le lire.

Commençons par définir les variables externes pour la configuration ; les commentaires expliquent leur objectif :

Extern string startNewsEvent="Restriction du travail sur les actualités"; input bool StopOnNewsEvent=true ; //Activer la chaîne d'entrée de restriction NewsEventFileName="ht-news.csv"; //Fichier avec entrée de planification uint LoadNewsEventTimerInDay=7;//À quelle fréquence en jours recharger l'entrée de fichier uint StopPriorEventHours=2; //Arrêtez X heures avant l'entrée de l'événement uint StartAfterEventHours=3; //Démarre X heures après l'événement extern string stopNewsEvent="----------------";

La structure suivante nous aidera à accéder à la description de l'événement en cours de traitement :

Struct NEWS_EVENT (datetime EventTime; //chaîne d'heure de l'événement Instrument; //chaîne d'instrument d'événement EventComment; //commentaire d'événement);

Fonction personnalisée pour lire les informations d'un fichier

Bool LoadNews() ( int handle; // Descripteur de fichier string instrument, // Nom de la devise de l'événement firstInstrument,secondInstrument, // 1ère et 2ème parties du nom de la paire actuelle eventComment, // Texte de la description de l'événement stringDateTime; // Expression chaîne de la date et de l'heure de l'événement datetime eventDateTime; // Date et heure de l'événement au format datetime handle=FileOpen(NewsEventFileName,FILE_CSV|FILE_READ,";");// Ouverture d'un fichier if(handle<0) // Неудача при открытии файла { int lastError=GetLastError(); if(lastError==4103) // Если файла не существует, сообщим Alert("Нет файла с именем ",NewsEventFileName); else // При любой другой ошибке Alert("Ошибка при открытии файла ",NewsEventFileName," :",lastError); PlaySound("Bzrrr.wav"); // Громко ругнемся и вернем фалсе return false; } int cnt=0; while(FileIsEnding(handle)==false) { stringDateTime =FileReadString(handle);// Дата и время события instrument=FileReadString(handle); //Инструмент eventComment =FileReadString(handle);// Текст описания события, может не быть eventDateTime =StrToTime(stringDateTime); // Преобразование типа данных firstInstrument=StringSubstr(Symbol(),0,3);// Извлекаем первые 3 символа secondInstrument=StringSubstr(Symbol(),3,3);// Извлекаем вторые 3 символа if(StringCompare(instrument,firstInstrument,false)!=0 && StringCompare(instrument,secondInstrument,false)!=0) { continue; //не наши инструменты } cnt++; ArrayResize(NewsEvent,cnt,1000); //изменяем размер массива с запасом для ускорения ArrayResize(NewsEventTime,cnt,1000); NewsEvent.EventTime= eventDateTime; NewsEvent.Instrument=instrument; NewsEvent.EventComment=eventComment; NewsEventTime=eventDateTime; //удобнее искать в одномерном массиве } FileClose(handle); // Закрываем файл ArraySort(NewsEventTime,WHOLE_ARRAY,0,MODE_ASCEND); //сортируем массив для последующего поиска return true; }

Nous recherchons l'heure requise dans le tableau NewsEventTime, et si l'heure est trouvée, nous obtenons sa description de leur tableau de structure NewsEvent

String GetEventInfo(datetime date) ( for(int i=0;i

Fonction d'assistance pour déterminer si l'heure actuelle se situe dans le temps d'inactivité

//vérifie si nous devons désactiver le conseiller en actualités True - work False - rest bool CheckEnableNewsWork() ( if (ArraySize(NewsEventTime)==0) return true; //pour une raison quelconque, le tableau avec le planning était vide, ce qui signifie nous travaillons //maintenant, nous devons trouver la date la plus proche dans NewsEventTime avant laquelle nous devons arrêter de travailler pendant les heures StopPriorEventHours datetime timeCurrent =TimeCurrent(); datetime timeStopWork=timeCurrent+StopPriorEventHours*3600; //S'il y a une heure dans NewsEventTime c'est-à-dire inférieur à timeStopWork, alors nous arrêtons de travailler int dateindex= ArrayBsearch(NewsEventTime,timeStopWork,WHOLE_ARRAY,0,MODE_ASCEND); datetime foundEventTime=NewsEventTime; timeStopWork=foundEventTime-StopPriorEventHours*3600; //calcule l'heure d'arrêt à partir de l'heure trouvée datetime timeStartWork=foundEventTime+StartAfterEventHours*3600; //c'est l'heure de fin du repos / /vérifions maintenant si nous sommes maintenant timeCurrent entre timeStopWork et timeStartWork. Si c'est le cas, alors nous ne travaillons pas si (timeCurrent>=timeStopWork && timeCurrent<=timeStartWork) { DrawLabel("EnableNewsWork","Не работаем, новость: "+GetEventInfo(foundEventTime)+"",5,80,Red); return false; } else { DrawLabel("EnableNewsWork","Нормальная работа, новостей нет",5,80,Green); return true; } }

Pour lire périodiquement un fichier avec un calendrier, nous avons besoin d'une minuterie qui s'exécute, par exemple, une fois par semaine, comme configuré

//Vérifie la présence d'un fichier d'actualité à l'aide du timer void OnTimer() ( if (StopOnNewsEvent) ( LoadNews(); //lire le fichier ) )

Lors de l'initialisation du conseiller, vous devez démarrer le chronomètre et lire les actualités pour la première fois

OnInit() .... if (StopOnNewsEvent) //Si défini, charge le fichier avec les actualités ( bool tm=EventSetTimer(LoadNewsEventTimerInDay*86400); //démarre le minuteur pour charger le fichier avec le planning if (!tm) Alert("Erreur EventSetTimer :",GetLastError()); OnTimer();//Premier lancement immédiat)

A chaque tick, nous vérifions si nous pouvons ouvrir des positions. Soit dit en passant, cela ne devrait pas affecter le suivi.

OnTick() .... bool activateNewsWork=true; //vous pouvez travailler sur des événements d'actualité if (StopOnNewsEvent) ( activateNewsWork=CheckEnableNewsWork(); //S'il y a une limite d'actualité, vérifiez l'heure) if (HaveMoney && activateNewsWork) Traiding(Pairs); //vérifier les conditions et ouvrir le commerce sur une paire

C'est tout. Malheureusement, je n'ai pas encore testé ce code sur un compte réel, car je l'ai écrit le week-end, émulé les ticks avec une minuterie et modifié manuellement l'heure actuelle, qui s'arrête le week-end. Mais la semaine prochaine, je regarderai en vrai, dans la nouvelle version « Forex Grail 1.11 », où j'ai intégré le code ci-dessus.

À l'avenir, vous devrez peut-être créer un utilitaire pratique pour générer le fichier ht-news.csv, par exemple dans le même