Merci pour cet article intéressant.
L'utilisation d'un fichier pour la mise en mémoire tampon des données était-elle obligatoire ?
N'était-il pas possible de mettre en mémoire tampon les données historiques en utilisant un tableau statistique ?
Merci de votre compréhension.
Bonjour !
J'aimerais voir des graphiques en secondes - une bougie c'est quelques secondes (5 sec, 6 sec, 10, 12,15). Pour voir l'évolution des prix en fonction du temps.
Une faute de frappe ?
Dans le texte de l'article. Dans l'exemple, c'est correct, AskBufferBonjour !
Est-il possible d'utiliser les fichiers tick reçus par l'indicateur proposé pour des tests multidevises dans le testeur, tout en désactivant la création de ticks virtuels dans le testeur et en effectuant la synchronisation des données sur les prix des instruments en fonction du temps ?
Je vous remercie.
- www.mql5.com
Bonjour !
J'aimerais voir des graphiques en secondes - une bougie c'est quelques secondes (5 sec, 6 sec, 10, 12,15). Pour voir les changements de prix par rapport au temps.
Bonjour à tous !
Est-il possible d'utiliser les fichiers de ticks reçus par l'indicateur proposé pour les tests multidevises dans le testeur, tout en désactivant la création de ticks virtuels dans le testeur et en effectuant la synchronisation des données sur les prix des instruments en fonction du temps ?
Je vous remercie.
Les fichiers de cotations créés par l'indicateur peuvent bien sûr être utilisés à d'autres fins. Je vous suggère de désactiver les fonctions inutiles (par exemple, le dessin des graphiques) et le traitement des données (par exemple, la synchronisation des données de différents instruments). D'ailleurs, à mon avis, il est plus facile d'écrire des cotations dans un fichier à l'aide d'un tel Expert Advisor (c'est aussi le cas dans le fichier joint) :
int h; void OnInit() { string s; StringConcatenate(s,Symbol(),".txt"); h=FileOpen(s,FILE_READ|FILE_WRITE|FILE_ANSI|FILE_SHARE_READ); FileSeek(h,0,SEEK_END); } void OnTick() { string s; StringConcatenate(s,TimeCurrent()," ",DoubleToString(SymbolInfoDouble(Symbol(),SYMBOL_BID),_Digits)," ",DoubleToString(SymbolInfoDouble(Symbol(),SYMBOL_ASK),_Digits)); FileWrite(h,s); FileFlush(h); } void OnDeinit(const int reason) { FileClose(h); }
Excellent article, merci pour les indicateurs !
J'ai ce problème lors de l'exécution de tickindicator.mq5.
J'ai compilé l'indicateur. Je l'exécute.
La fenêtre de l'indicateur apparaît. Il y a une échelle avec de grands nombres de minimums et de maximums. Et l'indicateur se déplace le long de la ligne horizontale. J'ai essayé de fixer le minimum et le maximum de l'indicateur. L'indicateur semble apparaître, mais il y a des lignes verticales sur l'offre.
Excellent article, merci pour les indicateurs !
J'ai ce problème lors de l'exécution de tickindicator.mq5.
J'ai compilé l'indicateur. Je l'exécute.
La fenêtre de l'indicateur apparaît. Il y a une échelle avec de grands nombres de minimums et de maximums. Et l'indicateur se déplace le long de la ligne horizontale. J'ai essayé de fixer le minimum et le maximum de l'indicateur. L'indicateur semble apparaître, mais il y a des lignes verticales sur l'offre.
Il est nécessaire d'initialiser toutes les valeurs dans la mémoire tampon de l'indicateur.
(Très probablement IMHO - je n'ai pas regardé le code)
Dites-moi où corriger quelque chose.
Sur les échéances supérieures à M30, l'échelle commence à afficher des nombres fous.
Comme l'a suggéré mon collègue Dima_S, lors de l'initialisation de l'indicateur, il est utile de remplir les tampons avec quelque chose.
Et comme nous avons le code TickIndicator.mq5:
//+------------------------------------------------------------------+ //| Fonction OnInit()| //+------------------------------------------------------------------+ void OnInit() { // le tableau BidBuffer[] est un tampon indicateur SetIndexBuffer(0,BidBuffer,INDICATOR_DATA); // Le tableau AskBuffer[] est un tampon indicateur. SetIndexBuffer(1,AskBuffer,INDICATOR_DATA); // les valeurs nulles de la ligne Bid ne sont pas dessinées PlotIndexSetDouble(0,PLOT_EMPTY_VALUE,0); // les valeurs nulles de la ligne Ask ne sont pas dessinées PlotIndexSetDouble(1,PLOT_EMPTY_VALUE,0); }
Il est nécessaire d'insérer les lignes suivantes :
ArrayInitialize(BidBuffer,0); ArrayInitialize(AskBuffer,0);
Comme l'a suggéré mon collègue Dima_S, lors de l'initialisation de l'indicateur, il est utile de remplir les tampons avec quelque chose. C'est ce que j'ai fait :
ArrayInitialize(BidBuffer,EMPTY_VALUE); ArrayInitialize(AskBuffer,EMPTY_VALUE);
Je l'ai fait, mais cela n'a pas aidé.
ArrayInitialize(BidBuffer,0.0); ArrayInitialize(AskBuffer,0.0);De cette manière également.
- 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


Un nouvel article Création d'indicateurs à graduations dans MQL5 a été publié :
Dans cet article, nous allons envisager la création de deux indicateurs : l'indicateur à graduations, qui trace le graphique à graduations de l’indicateur de prix et de graduation bougie, qui trace des bougies avec le nombre de graduations spécifié. Chacun des indicateurs écrit les prix entrants dans un fichier, et utilise les données sauvegardées après le redémarrage de l'indicateur (ces données peuvent également être utilisées par les autres programmes)
Auteur : Denis Zyatkevich