Fehler, Irrtümer, Fragen - Seite 1720

 
Karputov Vladimir:

Der Fehler liegt hier (Leerzeichen zwischen Anführungszeichen):


Das ist wahr. Es funktioniert jetzt. Danke! :-)
 
DieDatei Bases\BCS-MetaTrader5\ticks\Si-12.16\201610.tkchat eine Größe von 6 GB. Dies sollte nicht der Fall sein.
 
fxsaber:
Die Datei Bases\BCS-MetaTrader5\ticks\Si-12.16\201610.tkc hat eine Größe von 6 GB. Dies sollte nicht der Fall sein.

Wahrscheinlich wurde im Monat 10 die Struktur der Tickdaten geändert (vielleicht wurden viele zusätzliche Informationen eingeführt). Vielleicht liegt es aber auch nur daran, dass das Symbol inzwischen aktiv gehandelt wird.

Wenn Sie jetzt ein solches Skript anfordern:

//+------------------------------------------------------------------+
//|                                                    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");
  }
//+------------------------------------------------------------------+

auf dem Server "Open-Broker" die Größe der Ticks (und in Monat 10 ist es nicht endgültig, Ticks weiterhin hochgeladen werden)

Größe der Tickdatenbank

2016.10.05 07:34:05.886 Terminal        MetaTrader 5 x64 build 1434 started (MetaQuotes Software Corp.)
2016.10.05 07:34:05.888 Terminal        Windows 10 Pro (x64 based PC), IE 11.00, UAC, Intel Core i3-3120 M  @ 2.50 GHz, RAM: 3800 / 8077 Mb, HDD: 57955 / 233310 Mb, GMT+02:00
2016.10.05 07:34:05.888 Terminal        C:\Users\KVN\AppData\Roaming\MetaQuotes\Terminal\D0E8209F77C8CF37AD8BF550E51FF075
Dateien:
CopyTicks.mq5  2 kb
 
Karputov Vladimir:

Wahrscheinlich hat sich im Monat 10 die Struktur der Tickdaten geändert (vielleicht wurden viele zusätzliche Informationen eingegeben). Vielleicht liegt es aber auch nur daran, dass das Symbol inzwischen aktiv gehandelt wird, wenn es von einem solchen Skript abgefragt wird:

auf dem Server "Open-Broker" die Größe der Ticks (und in Monat 10 ist es nicht endgültig, Ticks weiterhin hochgeladen werden)

Drehbuch

#define  TOSTRING(A) #A + " = " + (string)(A) + " "

void OnStart()
{
  MqlTick Ticks[];
  
  const int Amount = CopyTicks(_Symbol, Ticks, COPY_TICKS_ALL, D'2016.10.01' * 1000, 1000000000);
  
  if (Amount > 0)
    Print(TOSTRING((Amount * sizeof(MqlTick)) >> 20) + "Mb " + TOSTRING(Ticks[0].time) + TOSTRING(Ticks[Amount - 1].time));
}

Ergebnis (die Ausführung auf anderen Symbolen ergibt das gleiche Ergebnis) auf einem leeren Terminal (ein Chart ohne Expert Advisors und Indikatoren)

2016.10.05 08:16:56.824 Scripts script Test (Si-12.16,M1) removed
2016.10.05 08:16:56.821 MemoryException 52000000072 bytes not available
2016.10.05 08:16:56.816 Scripts script Test (Si-12.16,M1) loaded successfully
2016.10.05 08:10:10.408 Terminal        RAM: 81 Mb reserved, 491 Mb committed

 
Karputov Vladimir:

Wahrscheinlich wurde im Monat 10 die Struktur der Tickdaten geändert (vielleicht wurden viele zusätzliche Informationen eingeführt). Vielleicht liegt es aber auch nur daran, dass das Symbol inzwischen aktiv gehandelt wird.

Wenn Sie jetzt ein solches Skript anfordern:

auf dem Server "Open-Broker" die Größe der Ticks (und in Monat 10 ist es nicht endgültig, Ticks weiterhin hochgeladen werden)

Ich hatte nicht genug Geduld - bei einer Dateigröße 201610.tkc von 7,5 Gb beschloss ich, den Download der Zecken zu unterbrechen.
 

Wenn Sie die Datei fälschen, wird auch nach einem Neustart ein Fehler auftreten.

Wenn Sie 1000 Ticks ab dem 1. Oktober anfordern, wird die entsprechende tkc-Datei nach jedem Start weiter wachsen. Kurz gesagt, die Wanze ist im Arsch.

 
Karputov Vladimir:
Ich hatte nicht genug Geduld - bei einer Dateigröße 201610.tkc von 7,5 Gb beschloss ich, das Herunterladen von Ticks zu unterbrechen.

Käfer! Alle Informationen für Oktober sind in den Indikatoren enthalten. Und die Datei wächst unaufhörlich.

Ich brauche eine kritische Aktualisierung des Builds, weil es unmöglich ist, zu arbeiten - die Festplatte ist verstopft, ganz zu schweigen von dem Verkehr.

 

Hallo zusammen

Wer ist auf den folgenden seltsamen Fehler gestoßen

Mein Expert Advisor versucht, einen Handel mitWDOX16 zu eröffnen, und erhält Antwort = 0

schreibt gleichzeitig, dass die Operation erfolgreich war:Ergebnis = 0 symbol WDOX16 volume 1.0 action 1 tp 3264.5 sl 3239.5 type 0 price 3250.0 Die Operation wurde erfolgreich abgeschlossen

Aber nirgendwo wird etwas geöffnet. ?


 
fxsaber:

Drehbuch

Ergebnis (die Ausführung auf anderen Symbolen ergibt das gleiche Ergebnis) auf einem leeren Terminal (ein Chart ohne EAs und Indikatoren)

Fordern Sie immer eine Milliarde Zecken an? Das sind 49 Gigabyte pro Array. Die Ticks auf Si-12.16 seit Januar bis jetzt sind 15789962.

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

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;
        }
     }
  }


und führt zu diesem Ergebnis.

2016.10.05 10:31:51.249 CalcTick (Si-12.16,M1)  Month 1: 122413 ticks, 6 Mb
2016.10.05 10:31:51.249 CalcTick (Si-12.16,M1)  Month 2: 78627 ticks, 3 Mb
2016.10.05 10:31:51.252 CalcTick (Si-12.16,M1)  Month 3: 758652 ticks, 37 Mb
2016.10.05 10:31:51.253 CalcTick (Si-12.16,M1)  Month 4: 388578 ticks, 19 Mb
2016.10.05 10:31:51.254 CalcTick (Si-12.16,M1)  Month 5: 181053 ticks, 8 Mb
2016.10.05 10:31:51.255 CalcTick (Si-12.16,M1)  Month 6: 408080 ticks, 20 Mb
2016.10.05 10:31:51.257 CalcTick (Si-12.16,M1)  Month 7: 458366 ticks, 22 Mb
2016.10.05 10:31:51.260 CalcTick (Si-12.16,M1)  Month 8: 867396 ticks, 43 Mb
2016.10.05 10:31:51.297 CalcTick (Si-12.16,M1)  Month 9: 10973162 ticks, 544 Mb
2016.10.05 10:31:51.301 CalcTick (Si-12.16,M1)  Month 10: 1555625 ticks, 77 Mb


So sieht es auf der Festplatte aus


 
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.

Nein, nur in diesem Fall. Wenn ich eine Billion Ticks anfordere, die in Wirklichkeit weniger als 20 Millionen sind, warum sollte ich dann versuchen, Speicher für eine Billion zuzuweisen?

Eine Billion ist mit einer Marge versehen. Aber das heißt noch lange nicht, dass ich so viel fordere. Es heißt nur "Gib mir ALLE Zecken ab dem angegebenen Datum".

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.

Sie machen Experimente auf Otkritie, ich habe BCS. Ihr Screenshot hat nichts mit meinem und dem von Karputov (gleiche Eröffnung) gemeinsam - beide haben viel mehr Oktober-tkc. Und sie wird immer größer!