Neues MetaTrader 4 Client Terminal Build 402

 

MetaTrader 4 Client-Terminal Build 402

  1. Terminal: Korrektur der Zeitzone beim Hochladen des Verlaufs in das History Center (F2-Taste).
  2. Terminal: Feste Anzeige von Graphen auf der Skala 1-1 für Zeichen mit 5 Ziffern.
  3. Die Meldungen im Forum und in den Kreshlogs wurden korrigiert.
DasLive-Update wird über das LiveUpdate-System verfügbar sein
 

Problem zwei.

Hier ist die Funktion:

void MonitorTick()
{   
   string s;
   
   datetime dt=TimeCurrent();
   int y1=TimeYear(dt);
   int m1=TimeMonth(dt);
   int d1=TimeDay(dt);
   string fn=y1+"_"+m1+"_"+d1+"_Monitor_Tick_"+Symbol()+".mon";
         
   {
      handleM=FileOpen(fn,FILE_BIN|FILE_WRITE|FILE_READ);
      if (handleM<0) 
      {
         handleM=FileOpen(fn,FILE_BIN|FILE_WRITE);
      }
      else
      {
         s="Time;;Shift "+Symbol()+"\n";
         FileWriteString(handleM,s,StringLen(s));
      }
   }

   s=TimeToStr(TimeCurrent(),TIME_DATE|TIME_MINUTES|TIME_SECONDS)+";;";
   
   s=s+DoubleToStr((Bid-iOpen(NULL,PERIOD_D1,0))/Point,0)+"\n";
   
   {      
      FileSeek(handleM,0,SEEK_END);
      FileWriteString(handleM,s,StringLen(s));
   
      FileClose(handleM);
   }
      
}

Mit anderen Worten: Bei jedem Tick wird die Differenz zwischen dem aktuellen Kurs und dem Eröffnungskurs des Tages in eine Datei geschrieben.

Irgendwann fängt es an, Müll in die Datei zu schreiben. Inhalt unten:

2011.05.12 15:40:50;;2
2011.05.12 15:40:50;;1
2011.05.12 15:40:51;;0
2011.05.12 15:40:51;;1
2011.05.12 15:40:52;;2
2011.05.12 15:40:53;;2
2011.05.12 15:40:55;;3
2011.05.12 15:53:54;;15692
2011.05.12 15:53:54;;15688
2011.05.12 15:54:05;;15692
2011.05.12 15:54:28;;15696
2011.05.12 15:54:42;;15694
2011.05.12 15:54:56;;15698
2011.05.12 15:55:40;;15697
2011.05.12 15:56:40;;15698
2011.05.12 15:56:47;;15696
2011.05.12 15:57:17;;15696
2011.05.12 15:57:34;;15699 

Wie man es erklärt????

Expert tut nichts anderes mit dieser Funktion, der Code ist drei Zeilen. steht auf 10 Instrumente, und regelmäßig 5-7 von ihnen ausgeben, dies. Nur das Zurücksetzen des Terminals hilft. Übrigens, auch die Indikatoren (Mehrfachwährung) zeigen Unsinn an.

 
dimonsky:

Problem zwei.

Wie man es erklärt????


Wenn Sie eine Konstruktion wie die folgende verwenden.

Bid-iOpen(NULL,PERIOD_D1,0))

ist es, sich zu vergewissern, dass es einen Balken in der D1-Historie gibt und dass er dem entspricht, was erwartet wird.

Wenn Sie z.B. den Eröffnungskurs des aktuellen Tagesbalkens verwenden, müssen Sie sicherstellen, dass Sie den Eröffnungskurs von Genau der aktuelle Tagesbalken.

P.S.

Ich vermute, dass dies auch bei Ihren Mehrwährungscodes der Fall ist.

 

Es reicht also nicht aus, dass Sie die Daten auf dem Bildschirm sehen können?

Ich habe eine mehrmonatige Historie auf dem Bildschirm und bitte Sie, mir zu erklären, wie sich ein Tick von vor einer Sekunde von dem aktuellen Tick unterscheidet, wenn die Historie "plötzlich" weg ist, ebenso wie unmittelbar nach einem Neustart, wenn sie "plötzlich" wieder auftaucht, sobald das Terminal eingeschaltet wird und die Ticks ohne Störungen weitergeschrieben werden.

Das Gleiche gilt für Instrumente mit mehreren Währungen. Selbst bei Nullbar, wenn es eine Historie für alle Paare gibt - sie werden speziell in anderen Fenstern geöffnet, um eine 100%ige Historie zu haben.

 
PapaYozh:


Wenn Sie z.B. den Eröffnungskurs der aktuellen Tagesleiste verwenden, müssen Sie sicherstellen, dass Sie den Eröffnungskurs verwenden genau den aktuellen Tagesbalken.

Seltsame Situation. Das Diagramm ist geöffnet, was natürlich den aktuellen Tag anzeigt. Vor einer Sekunde war der Eröffnungskurs noch da und ist nun verschwunden? und wenn das Netzwerk getrennt ist, ohne Internetzugang , hilft ein Neustart dem Terminal plötzlich, den Verlauf zu finden?

und welcher Tag muss es sein, damit die Differenz 15000 Pips beträgt.... ?

 
dimonsky:
Es gibt ein offenes Diagramm, das natürlich den aktuellen Tag anzeigt. Vor einer Sekunde gab es einen Eröffnungskurs, und dann verschwand er?


Ich bin kein Terminalentwickler und kann den Zusammenhang zwischen den Balken in den offenen Fenstern und dem verfügbaren Verlauf nur vermuten.

Ich habe Ihnen geschrieben, wie Sie richtig programmieren, um Unklarheiten zu vermeiden.

 
PapaYozh:


Ich bin kein Terminalentwickler und kann den Zusammenhang zwischen den Balken in den geöffneten Fenstern und dem programmatisch verfügbaren Verlauf nur vermuten.

Ich habe Ihnen geschrieben, wie man richtig programmiert, um Mehrdeutigkeiten zu vermeiden.


Welche Unklarheiten kann es beim Zugriff auf den Eröffnungskurs des aktuellen Tages geben? Welche weiteren Prüfungen sind erforderlich?

Für das GBPCAD-Paar bedeuten 15000 Pips, dass die gesamte Geschichte seit Tagen verschwunden ist, einschließlich der heutigen. Und sie ist plötzlich verschwunden, weil sie gerade jetzt war.

 
für GBPCAD bedeuten 15000 Pips, dass der Geldkurs = 0 ist, weil Sie die Kurse nicht mit RefreachRates() aktualisiert oder MarketInfo(Symbol(),MODE_BID) nicht verwendet haben
 
xrust:
für GBPCAD bedeuten 15000 Pips, dass der Geldkurs = 0 ist, weil Sie die Kurse nicht mit RefreachRates() aktualisiert haben, oder Sie haben MarketInfo(Symbol(),MODE_BID) nicht verwendet


Nein, denn in diesem Fall wäre der erhaltene Wert negativ (siehe die Formel).

Das Problem ist, dass das Bid zwar da war, aber es gab keine Historie. Und ich bin dabei herauszufinden, warum sie dem Programmcode nicht zur Verfügung steht, obwohl es eine Sekunde vorher eine Historie gab.

 

- Und bis heute (13.05.2011) habe ich noch kein Update erhalten. Liegt es daran, dass mein DC den neuen Build ignoriert?

Jedenfalls gab es keine Update-Warnung oder einen regelmäßigen Neustart.

 
brici:

- Und bis heute (13.05.2011) habe ich noch kein Update erhalten. Liegt es daran, dass mein DC den neuen Build ignoriert?

Jedenfalls gab es keine Update-Warnung oder einen regelmäßigen Neustart.

Die Aktualisierung sollte morgen durchgeführt werden. Dies ist eine vorläufige Ankündigung.