Discussion de l'article "Création d'indicateurs à graduations dans MQL5"

 

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

 

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.

 
Silent:

Une faute de frappe ?

Dans le texte de l'article. Dans l'exemple, c'est correct, AskBuffer
Oui, c'est une faute de frappe. Corrigée. Merci.
 

Bonjour !

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.

Документация по MQL5: Получение рыночной информации / SymbolIsSynchronized
Документация по MQL5: Получение рыночной информации / SymbolIsSynchronized
  • www.mql5.com
Получение рыночной информации / SymbolIsSynchronized - Документация по MQL5
 
robinz:

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.

Ces graphiques dépassent le cadre de cet article, je vous suggère donc de les construire vous-même - ce n'est pas plus compliqué que ceux décrits dans l'article.
rrr:

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);
  }
Dossiers :
ticklog.mq5  1 kb
 

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.


 
denkir:

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.

 
fyords:

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);
 
denkir:

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.