Impossible de voir un graphique hors ligne - page 2

 
lingwuchung:


Bonjour,

J'ai résolu toutes les erreurs de compilation mais je constate que le OnTick de l'EA (simplifié en testOffline.mq4 comme joint) ne peut pas être déclenché sur un graphique hors ligne (généré par PeriodConvertor). Il n'y a pas de problème avec un graphique M1 normal. Je me demande donc ce qui ne va pas ?



Il n'y a pas de ticks entrants sur le graphique hors ligne.

Essayez OnTimer au lieu de OnTick.

Voir un exemple d'EA fonctionnant sur un graphique hors ligne rafraîchi par PeriodConverter.

int ExtCounter;
int ExtTickCount;
int ExtBars;
//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//----
   ExtCounter=0;
   ExtTickCount=GetTickCount();
   ExtBars=Bars;
   Print("init  ExtBars=",ExtBars,"  Time[0]=",TimeToString(Time[0]));
   EventSetTimer(1);
//----
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
   ExtTickCount=GetTickCount()-ExtTickCount;
   Print("ExtTickCount=",ExtTickCount,"   ExtCounter=",ExtCounter);
  }
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
void OnTick()
  {
   if(ExtBars!=Bars)
     {
      ExtBars=Bars;
      Print("start  ExtBars=",ExtBars,"  Time[0]=",TimeToString(Time[0]));
     }
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void OnTimer()
  {
   if(RefreshRates())
      OnTick();
//----
   if(ExtCounter%15==0)
      Print("OnTimer  ExtCounter=",ExtCounter,"  Time[0]=",TimeToString(Time[0]));
   ExtCounter++;
  }
 
stringo:

Il n'y a pas de ticks entrants sur le graphique hors ligne.

Essayez OnTimer au lieu de OnTick.

Voir l'exemple d'EA fonctionnant sur un graphique hors ligne rafraîchi par PeriodConverter.


OK, j'ai obtenu le tick du graphique hors ligne maintenant. Mais cela signifie-t-il que l'EA ne peut être déclenché que toutes les 1 seconde le plus rapidement (puisque EventSetTimer() ne peut être réglé que sur l'unité de secondes).

Si c'est le cas, c'est une dégradation dans la nouvelle mql4 et je me demande pourquoi.

 

Dégrader ? Pourquoi ?

lesexperts n'ont jamais travaillé sur des cartes hors ligne

 
RaptorUK:

Pouvez-vous mettre à jour la documentation de FileOpenHistory() ?

... il n'y a aucune mention des autres drapeaux.


Essayez de mettre à jour votre aide s'il vous plaît


 
Rosh:

Essayez de mettre à jour votre aide s'il vous plaît

Désolé mais je n'ai pas dit FileOpen() .... J'ai dit FileOpenHistory()

 
stringo:

Dégrader ? Pourquoi ?

lesexperts n'ont jamais travaillé sur des cartes hors ligne


Ne plaisantez pas. J'ai négocié avec des experts sur des graphiques hors ligne pendant un an. La dernière version que j'ai utilisée (avant d'être obligé de passer à la version 600) était la 509.
 
lingwuchung:

Ne plaisantez pas. J'ai négocié avec des experts sur des graphiques hors ligne pendant un an. La dernière version que j'ai utilisée (avant d'être obligé de passer à la 600) était la 509.
N'est-ce pas un hack, non supporté par Metaquotes ?
 
angevoyageur:
Ne s'agit-il pas d'un hack, non supporté par Metaquotes ?


Puisque les Metaquotes n'ont pas révélé la structure des fichiers hst au public (ils la gardent pour leurs propres besoins), alors chaque utilisation des fichiers *.hst est un hack.
 
Ovo:

Puisque les Metaquotes n'ont pas révélé la structure des fichiers hst au public (ils la gardent pour leurs propres besoins), alors chaque utilisation des fichiers *.hst est un hack.

Pourquoi dites-vous cela ? Qui est derrière le script PeriodConverter ?

Indice : essayez de trouver l'auteur de cet article.

 
Ovo:

Puisque les Metaquotes n'ont pas révélé la structure des fichiers hst au public (ils la gardent pour leurs propres besoins), alors chaque utilisation des fichiers *.hst est un hack.
Non, le format de fichier .hst est publié dans le fichier d'aide du terminal . . je suppose qu'il sera mis à jour en temps voulu. mql4 fournit également une fonction pour lire et écrire des fichiers .hs . . aucune modification n'est nécessaire.

Format des fichiers historiques (fichiers HST)

L'en-tête de la base de données est le premier

struct

HistoryHeader
{
int version ; // version de la base de données
char copyright[64] ; // informations sur le copyright
char symbol[12] ; // nom du symbole
int period ; // période du symbole
int digits ; // nombre de chiffres après la virgule dans le symbole
time_t timesign ; // date de création de la base de données
xml-ph-0027@d

puis le tableau de barres (justification sur un seul octet)

#pragma pack(push,1)
//---- représentation standard de la cotation dans la base de données
struct RateInfo
{
time_t ctm ; // heure actuelle en secondes
double open ;
double low ;
double high ;
double close ;
double vol ;
} ;
#pragma pack(pop)





Raison: