Fehler, Irrtümer, Fragen - Seite 1721

 
Alexey Da:

Verlangen Sie immer eine Milliarde Zecken? Das sind allein 49 Gigabyte pro Array. Die Ticks am Si-12.16 von Januar bis jetzt sind 15789962.

Ein kleines Skript, das auf dem Ihren basiert, zählt die Anzahl der Ticks pro Monat.


und führt zu diesem Ergebnis.


So sieht es auf der Festplatte aus.


Es spielt keine Rolle, wie viele Sie bestellen. Selbst bei der Bestellung von 20000 Ticks (zwanzigtausend) wird die Datei für Monat 10 in Gigabyte gemessen.

Das Skript, wenn es 20.000 Euro anfordert

//+------------------------------------------------------------------+
//|                                                    CopyTicks.mq5 |
//|                        Copyright 2015, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2015, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.01"
//--- покажем окно входных параметров при запуске скрипта
#property script_show_inputs
input int  ticks=200000000;  // количество запрашиваемых тиков
//---
MqlTick ExTicks[];
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- запросим тики
   int copied=CopyTicks(_Symbol,ExTicks,COPY_TICKS_ALL,0,ticks);
//--- если тики получены, то выведем на график значения Bid и Ask  
   Print("Получено тиков: ",copied," код ошибки: ",GetLastError());
   if(copied>1)
     {
      Print("Тик: ",ExTicks[0].time," bid: ",ExTicks[0].bid," ask: ",ExTicks[0].ask," last: ",ExTicks[0].last," [0]");
      Print("Тик: ",ExTicks[copied-1].time," bid: ",ExTicks[copied-1].bid," ask: ",ExTicks[copied-1].ask," last: ",ExTicks[copied-1].last," [",copied-1,"]");
     }
   Print("Size ",((long)copied*sizeof(MqlTick))>>20, " Mb");
  }
//+------------------------------------------------------------------+

ergab für den Monat 10 einen unglaublichen Dateizuwachs - die Größe wurde in Gigabytes gemessen.


Bei ausgeschaltetem Terminal löschte ich die Tick-Datei für Monat 10 (Größe ca. 7,5 GB).

Dann habe ich Ihr Skript ausgeführt

void OnStart()
  {
   MqlTick Ticks[];
   int Amount=CopyTicks(_Symbol,Ticks,COPY_TICKS_ALL,D'2016.01.01'*1000,ulong(100000000));
   MqlDateTime str;
   TimeToStruct((Ticks[0].time_msc-Ticks[0].time_msc%1000)/1000,str);
   char m=(char)str.mon;
   long n=StringToTime(StringFormat("01.%d.2016",m+1))*1000;
   int pos=0;
   for(int i=0;i<Amount;i++)
     {
      if(Ticks[i].time_msc>=n || i==Amount-1)
        {
         PrintFormat("Month %d: %d ticks, %d Mb",m,i-1-pos,(sizeof(MqlTick)*(i-1-pos))>>20);
         m++;
         n=StringToTime(StringFormat("01.%d.2016",m+1))*1000;
         pos=i;
        }
     }
  }

Alles ist gut ausgegangen, keine Gigantomanie in der Größe - sehr seltsam.

Dann habe ich Ihr Skript erneut ausgeführt (Eingabeparameter 20000). Alles stabilisierte sich - aber die Datei wuchs am Morgen immer noch auf unvorstellbare Größen an! Ich habe es selbst gesehen und das Experiment gemacht!


Was die Anzahl der Milliarden von Ticks - sogar eine Billion - betrifft, so wird das Terminal nicht mehr als das geben, was es hat.

 
Karputov Vladimir:

Alles stabilisierte sich - aber die Datei wuchs am Morgen immer noch auf eine unglaubliche Größe an! Ich habe es selbst gesehen und das Experiment durchgeführt!

Der Unterschied zum jetzigen Zeitpunkt besteht darin, dass das Experiment damals auf einem geschlossenen Markt durchgeführt wurde.
 

Jetzt wird das Skript ausgeführt.

Das Ergebnis ist

2016.10.05 11:05:03.374 Test (Si-12.16,M5)      (Amount*sizeof(MqlTick))>>20 = 72 Mb Ticks[0].time = 2016.10.03 09:45:02 Ticks[Amount-1].time = 2016.10.05 11:05:55 

Alles funktioniert so, wie es soll. Auszeichnung und Lob für das 72/5-Komprimierungsformat ~15 Mal.

Wir müssen herausfinden, warum so ein beschissener Fehler auf einem geschlossenen Markt auftritt.

Übrigens,Alexey Da, warum ist deine Datei 201610.tkc größer als meine?

 
fxsaber:

Jetzt wird das Skript ausgeführt.

Das Ergebnis ist

Alles funktioniert so, wie es sollte. Auszeichnung und Lob für das 72/5-Komprimierungsformat ~15 Mal.

Wir müssen herausfinden, warum so ein beschissener Fehler auf einem geschlossenen Markt auftritt.

Übrigens,Alexey Da, warum ist Ihre Datei 201610.tkc größer als meine?

Bildschirmfoto zur Eröffnung.

Bei BCS ist die Größe ähnlich wie bei Ihnen.

Aber nicht die gleiche Größe.

Mit welchen Zugängen sind Sie verbunden? Ich habe


 

fxsaber:

Wir müssen herausfinden, warum so ein beschissener Fehler auf einem geschlossenen Markt auftritt.

Karputow Wladimir undfxsaber

Das System wurde nicht getestet und kann seine Leistung und Zuverlässigkeit überprüfen. Bitte senden Sie ein Ticket an den Service Desk mit einer möglichst vollständigen Beschreibung, Protokollen, Screenshots und Zeitstempel.

 
Alexey Da:

Screenshot von der Eröffnung.

Bei BCS ist die Größe ähnlich wie bei Ihnen.

Aber nicht die gleiche Größe.

Ich habe festgestellt, dass 201609.tkc in Opening 36 MB und in BCS 32 MB groß ist. Aber die Geschichte ist dieselbe! Warum ist das so?

Und selbst wenn es im September Serveraktualisierungen gab, so gab es sie im Oktober definitiv nicht. Warum ist die Eröffnung im Oktober größer?

Über welche Zugänge sind Sie verbunden? Ich habe.

Die ganze Zeit über.

authorized on BCS-MetaTrader5 through Access Server #1 (ping: 49.30 ms)
 
Alexey Da:

Karputow Wladimir undfxsaber

Bitte senden Sie uns eine Anfrage. Erstellen Sie ein Ticket an Servicedesk mit einer möglichst vollständigen Beschreibung, Protokollen, Screenshots und Zeitangaben.

Leider sind die Protokolle verloren gegangen. Daher kann ich keine Auskunft geben.

Das Einzige, woran ich mich sicher erinnere, ist, dass die ersten Ticks, die das Skript erzeugte, zum Zeitpunkt des Fehlers 2016.10.04 09:45 waren.

Und wenn alles funktioniert, wie es sollte - es begann zu geben 2016.10.03 09:45.

Genau die einzigen Zeilen, die überlebt haben

NE      0       08:43:43.928    Test (Si-12.16,M1)      (Amount*sizeof(MqlTick))>>20 = 0 Mb Ticks[0].time = 2016.10.04 09:45:04 Ticks[Amount-1].time = 2016.10.04 10:02:38 
JP      0       11:03:37.815    Test (Si-12.16,M5)      (Amount*sizeof(MqlTick))>>20 = 0 Mb Ticks[0].time = 2016.10.03 09:45:02 Ticks[Amount-1].time = 2016.10.03 10:02:18 

Obere - der Käfer tauchte mit aller Macht auf.

Untere Eins - die Wanze wurde zum Schweigen gebracht.

 
Alexey Da:

Karputow Wladimir undfxsaber

Bitte senden Sie uns eine Anfrage. Erstellen Sie ein Ticket an Servicedesk mit einer möglichst vollständigen Beschreibung, Protokollen, Screenshots und Zeitangaben.

Interne Anfrage .../view/1580221
 

In MT4 ist es sehr praktisch, dass der Navigator->Favoriten die Programme zusammen mit ihrem Suchpfad anzeigt.

Zum Beispiel: fxsaber\Test.

Im MT5 ist das nicht so bequem. Bitte hinzufügen.

 
Kommentare, die für dieses Thema nicht relevant sind, wurden in die Rubrik "Frage zur Ausfüllregelung" verschoben.