Fehler, Irrtümer, Fragen - Seite 1809

 
fxsaber:
Ich habe es nicht überprüft.
datetime NewTimeCurrent( void )
{
  static ulong PrevStartTime = GetMicrosecondCount();
  static datetime PrevTimeCurrent = TimeCurrent(); // TimeTradeServer()
  
  const datetime NewTimeCurrent = TimeCurrent(); // TimeTradeServer()
  const ulong NowTime = GetMicrosecondCount();
  
  if (PrevTimeCurrent < NewTimeCurrent)  
  {
    PrevTimeCurrent = NewTimeCurrent;
    
    PrevStartTime = NowTime;
  }
  
  return(PrevTimeCurrent + (datetime)((NowTime - PrevStartTime) / 1000000));
}
Danke, aber ich glaube nicht, dass eine solche Genauigkeit sinnvoll ist, zumal die Zeit ohnehin nicht "echt" ist, sondern nur annähernd und von vielen Faktoren abhängt. Um genau zu sein, brauchen wir die Möglichkeit , die Zeit vom Server zu bekommen, d.h. wenn ich SymbolInfoDouble( _Symbol, SYMBOL_SESSION_TIME_INTEREST ) setze, dann kann ich die Zeit sofort bekommen, zum Beispiel mit SymbolInfoInteger( _Symbol, SYMBOL_SESSION_TIME_INTEREST ) (mit Millisekundengenauigkeit). Dann wird es Ihnen gut gehen!
 
fxsaber:
Sie könnten noch genauer sein. Sie könnten zum Beispiel alle Symbole durchlaufen, indem Sie SymbolInfoTick (+ CopyTicks) abfragen. Kratzen Sie von dort die Zeit in Millisekunden ab. Ich verstehe nur nicht, welchen praktischen Nutzen das haben könnte.

Es ist ganz einfach - das Timing! Es geht um alles! Es gibt jetzt eine Vielzahl von Daten: Ticks, Stimmungen, Glas. Die Millisekundenzeit ist NUR für Zecken verfügbar! Wie sieht es mit der Ankunftszeit der übrigen Daten aus? Glas hat das nicht. Das Sentiment hat es auch nicht! Wenn wir also alle Daten zusammen sammeln, können wir sie nicht synchronisieren! Es ist nicht möglich, eine komplexe Analyse durchzuführen! Ich verstehe nicht, warum die Entwickler dem nicht die nötige Aufmerksamkeit schenken. Sie haben die Daten, aber es ist unmöglich, mit ihnen richtig zu arbeiten! Wir müssen also irgendetwas machen, aber selbst "Krücken" funktionieren nicht immer richtig, wie sich herausstellte.

 
Der TimeCurrent() -Fehler wurde behoben, sie sagten, er würde heute in MQ-Demo erscheinen.
 
fxsaber:
Ein Millisekunden-Analogon von TimeCurrent ist schon lange überfällig, mit seiner Widerspiegelung in der GUI.
+1. Aber für die Werte, die ich oben beschrieben habe, ist es besser, eine separate Abrufoption zu erstellen.
 
Alexey Kozitsyn:
Der TimeCurrent()-Fehler wurde behoben, sie sagten, er würde heute in MQ-Demo erscheinen.
Es wäre gut, dies zu einer Regel zu machen
 
fxsaber:
Es wäre gut, dies zu einer Regel zu machen
Das ist fraglich, denn außer dem Ersteller der Anwendung würde niemand etwas verstehen. Ich denke, detaillierte Beschreibungen sind ausreichend.
 

Kompilierungsfehler: keine Funktion kann später definiert werden, auch wenn sie vorher deklariert wurde

int f(); //объявление
static int i1 = f(); //Error: 'f' - function must have a body
int g()
{
static int i2 = f(); //нормально //даже если нет объявления
    return i2;
}
void OnStart()
{
    g();
}
int f() { return 0; }
 
A100:

Kompilierungsfehler: Eine Funktion kann nicht nachträglich definiert werden, auch wenn sie vorher deklariert wurde

int f(); //объявление
static int i1 = f(); //Error: 'f' - function must have a body
int g()
{
static int i2 = f(); //нормально //даже если нет объявления
    return i2;
}
void OnStart()
{
    g();
}
int f() { return 0; }

Das leuchtet mir ein.

Aber warum hier kein Fehler vorliegt, ist unklar.

int f(); //объявление
static int i1 = f(); //Error: 'f' - function must have a body
int g()
{
static int i2 = f(); //нормально //даже если нет объявления
    return i2;
}

class A
{
public:  
  A() { f(); }
};

A a;


void OnStart()
{
    g();
}
int f() { return 0; }
 
fxsaber:

Das erscheint mir logisch.

Aber warum hier kein Fehler vorliegt, ist nicht klar.

Ein Fehler ist nur dann logisch, wenn eine Art von Kollision vorliegt. Wenn alles richtig gemacht wird - unnötige Fehler mindern die Flexibilität

class A; //не зря же такую запись придумали
 
Sie haben wieder etwas falsch gemacht.

Zusammengestellt in Version 1531. Beim Starten erhalte ich:

2017.02.16 18:55:19.101 MQL5 'TradePanel.ex5' hat eine neuere nicht unterstützte Version, bitte aktualisieren Sie Ihr Client-Terminal

Gut, dass es sich nicht um ein Live-Konto handelt.