Impossibile vedere un grafico offline - pagina 2

 
lingwuchung:


Ciao,

Ho risolto tutti gli errori di compilazione ma trovo che l'OnTick dell'EA (semplificato in testOffline.mq4 come allegato) non può essere attivato sul grafico offline (generato da PeriodConvertor). Tuttavia non ha problemi con il grafico M1 normale. Quindi mi chiedo: cosa c'è di sbagliato?



Non ci sono tick in arrivo sul grafico offline.

Prova OnTimer invece di OnTick

Vedi esempio di EA lavorato su grafico offline aggiornato da 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:

Non ci sono tick in arrivo sul grafico offline.

Prova OnTimer invece di OnTick

Vedi esempio di EA lavorato su grafico offline rinfrescato da PeriodConverter


OK, ora ho il tick del grafico offline. Ma significa che l'EA può essere attivata ogni 1 secondo solo il più velocemente? (dato che EventSetTimer() può impostare solo l'unità di secondi).

Se è così, questo è un degrado nel nuovo mql4 e mi chiedo perché.

 

Degradare? Perché?

gliesperti non hanno mai lavorato su grafici offline

 
RaptorUK:

Potete aggiornare la documentazione di FileOpenHistory() per favore.

. non c'è menzione degli altri flag.


Prova ad aggiornare la Guida per favore


 
Rosh:

Prova ad aggiornare il tuo Aiuto per favore

Scusa ma non ho detto FileOpen() . Ho detto FileOpenHistory()

 
stringo:

Degradare? Perché?

gliesperti non hanno mai lavorato su grafici offline


Per favore, non scherzare. Ho fatto trading con gli esperti su grafici offline per un anno. L'ultima versione che ho usato (prima di essere costretto ad aggiornare alla 600) era la build 509.
 
lingwuchung:

Per favore, non scherzare. Ho fatto trading con gli esperti sul grafico offline per un anno. L'ultima versione che ho usato (prima di essere costretto a passare alla 600) era la 509.
Non è con un hack, non supportato da Metaquotes?
 
angevoyageur:
Non è con un hack, non supportato da Metaquotes?


Dal momento che Metaquotes non ha rivelato la struttura dei file hst al pubblico (la tengono per i loro scopi), allora ogni uso dei file *.hst è un hack.
 
Ovo:

Poiché i Metaquotes non hanno rivelato la struttura dei file hst al pubblico (la tengono per i loro propri scopi), allora ogni uso dei file *.hst è un hack.

Perché dici così? Chi c'è dietro lo script PeriodConverter?

suggerimento: prova a trovare l'autore di questo articolo

 
Ovo:

Poiché i Metaquotes non hanno rivelato la struttura dei file hst al pubblico (la tengono per i loro scopi), allora ogni uso dei file *.hst è un hack.
No, il formato dei file .hst è pubblicato nel file di aiuto del terminale. . presumo che sarà aggiornato a tempo debito. mql4 fornisce anche una funzione per leggere e scrivere i file .hs . . nessun hack coinvolto.

Formato dei file storici (file HST)

L'intestazione del database è la prima

struct

HistoryHeader
{
int version; // versione del database
char copyright[64]; // informazioni sul copyright
char symbol[12]; // nome del simbolo
int period; // intervallo di tempo del simbolo
int digits; // la quantità di cifre dopo il punto decimale nel simbolo
time_t timesign; // segno temporale della creazione del database
xml-ph-0027@d

poi va l'array di barre (giustificazione a singolo byte)

#pragma pack(push,1)
//---- rappresentazione standard della quotazione nel database
struct RateInfo
{
time_t ctm; // tempo corrente in secondi
double open;
double low;
double high;
double close;
double vol;
};
#pragma pack(pop)