Offline-Diagramm kann nicht angezeigt werden - Seite 2

 
lingwuchung:


Hallo!

Ich habe alle Kompilierungsfehler behoben, finde aber, dass der OnTick des EA (vereinfacht auf testOffline.mq4 wie angehängt) nicht auf Offline-Chart ausgelöst werden kann (Generierung durch PeriodConvertor). Es hat nicht das Problem mit normalen M1-Chart obwohl. Ich frage mich also, was los ist?



Es gibt keine eingehenden Ticks auf dem Offline-Chart.

Versuchen Sie OnTimer anstelle von OnTick

Siehe Beispiel eines EA, der auf einem Offline-Chart arbeitet, der von PeriodConverter aktualisiert wurde

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:

Auf dem Offline-Chart gibt es keine eingehenden Ticks.

Versuchen Sie OnTimer anstelle von OnTick

Siehe ein Beispiel für einen EA, der auf einem Offline-Chart arbeitet, der vom PeriodConverter aktualisiert wird.


OK, ich habe jetzt die Offline-Chart-Tick. Aber bedeutet es, dass EA nur alle 1 Sekunde am schnellsten ausgelöst werden kann? (da EventSetTimer() nur bis zu einer Einheit von Sekunden einstellen kann).

Wenn ja, ist dies eine Verschlechterung in der neuen mql4 und ich frage mich, warum.

 

Abbauen? Warum eigentlich?

Experten haben noch nie mit Offline-Karten gearbeitet

 
RaptorUK:

Können Sie bitte die Dokumentation für FileOpenHistory() aktualisieren....

. es gibt keinen Hinweis auf die anderen Flags.


Versuchen Sie bitte, Ihre Hilfe zu aktualisieren


 
Rosh:

Versuchen Sie bitte, Ihre Hilfe zu aktualisieren

Entschuldigung, aber ich habe nicht FileOpen() gesagt. Ich sagte FileOpenHistory()

 
stringo:

Abbauen? Warum eigentlich?

Experten haben noch nie mit Offline-Karten gearbeitet


Machen Sie bitte keine Witze. Ich habe ein Jahr lang mit Experten auf Offline-Charts gehandelt. Die letzte Version, die ich verwendet habe (bevor ich zum Upgrade auf 600 gezwungen wurde), war Build 509.
 
lingwuchung:

Bitte machen Sie keine Witze. Ich habe ein Jahr lang mit Experten auf Offline-Charts gehandelt. Die letzte Version, die ich verwendet habe (bevor ich zum Upgrade auf 600 gezwungen wurde), war Build 509.
Ist das nicht ein Hack, der von Metaquotes nicht unterstützt wird?
 
angevoyageur:
Ist das nicht ein Hack, der von Metaquotes nicht unterstützt wird?


Da die Metaquotes die Struktur der hst-Dateien nicht öffentlich gemacht haben (sie behalten sie für ihre eigenen Zwecke), ist jede Verwendung der *.hst-Dateien ein Hack.
 
Ovo:

Da die Metaquotes die Struktur der hst-Dateien nicht öffentlich gemacht haben (sie behalten sie für ihre eigenen Zwecke), ist jede Verwendung der *.hst-Dateien ein Hack.

Warum sagen Sie das? Wer steckt hinter dem Skript PeriodConverter?

Hinweis: Versuchen Sie, den Autor dieses Artikels herauszufinden

 
Ovo:

Da die Metaquotes die Struktur der hst-Dateien nicht öffentlich gemacht haben (sie behalten sie für ihre eigenen Zwecke), ist jede Verwendung der *.hst-Dateien ein Hack.
Nein, das .hst-Dateiformat ist in der Terminal-Hilfedatei veröffentlicht . . ich gehe davon aus, dass sie zu gegebener Zeit aktualisiert wird. mql4 bietet auch eine Funktion zum Lesen und Schreiben von .hs-Dateien . . kein Hack beteiligt.

Historisches Dateiformat (HST-Dateien)

Der Datenbank-Header ist der erste

struct

HistoryHeader
{
int version; // Datenbankversion
char copyright[64]; // Copyright-Informationen
char symbol[12]; // Symbolname
int period; // Symbolzeitrahmen
int digits; // die Anzahl der Nachkommastellen im Symbol
time_t timesign; // Zeitzeichen der Datenbankerstellung
xml-ph-0027@d

dann kommt das Barren-Array (Ein-Byte-Ausrichtung)

#pragma pack(push,1)
//---- Standarddarstellung des Kurses in der Datenbank
struct RateInfo
{
time_t ctm; // aktuelle Zeit in Sekunden
double open;
double low;
double high;
double close;
double vol;
};
#pragma pack(pop)