Wann gibt es die neue Version von MT5 und wo erfährt man, was darin zu erwarten ist? - Seite 26

 

Gibt es eine Software, mit der sich die Tiefe des Tickers ermitteln lässt?

Ich habe es versucht:

void OnStart()
  {
MqlTick ExTicks[];  
datetime tm=StringToTime("1971.01.01 00:00:00");
//--- вывод результата
ulong m=tm*1000; 
int copied=CopyTicks(_Symbol,ExTicks,COPY_TICKS_ALL,m);
Print("Получено тиков: ",copied," код ошибки: ",GetLastError());
 
  }

die ganze Zeit über 2.000 Ticks bekommt. In der Hilfe steht, dass, wenn keine Zeit angegeben wird, nicht mehr als 2000 Zecken übertragen werden. Die Zeit wird in Millisekunden angegeben und die Sekunden werden mit 1000 multipliziert.

In der Hilfe wird außerdem angegeben, dass es sich um Ticks für die aktuelle Sitzung handelt. Es stellt sich also heraus, dass auf historische Daten nicht zugegriffen werden kann?

 
forexman77:

Gibt es eine Software, mit der sich die Tiefe der Ticking-Historie bestimmen lässt?

Ich habe es versucht:

die ganze Zeit über 2.000 Ticks bekommt. In der Hilfe steht, dass, wenn keine Zeit angegeben wird, nicht mehr als 2000 Zecken übertragen werden. Die Zeit wird in Millisekunden angegeben und die Sekunden werden mit 1000 multipliziert.

In der Hilfe wird außerdem angegeben, dass es sich um Ticks für die aktuelle Sitzung handelt. Es stellt sich also heraus, dass Sie keinen Zugriff auf historische Daten haben?

Willst du alle Zecken bekommen? :)

Prüfen Sie zunächst, ob Ihr Computer so viele Ticks verarbeiten kann (wenn Ihr Computer durchbrennt, ist das nicht meine Schuld):

//+------------------------------------------------------------------+
//|                                                CopyTicks_1_02.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.031"
//--- покажем окно входных параметров при запуске скрипта
#property script_show_inputs
input int  ticks=200000000000;  // количество запрашиваемых тиков
input datetime start=D'1971.01.01 23:59'; // с какой даты запрашивать тики
//---
MqlTick ExTicks[];
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- запросим тики
   int copied=CopyTicks(_Symbol,ExTicks,COPY_TICKS_ALL,(ulong)start*1000,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,"]");

      //datetime Start =D'2015.10.16 23:59';   // время наступления 2015 года
      //datetime End   =D'2015.10.19 00:02';   // время наступления 2015 года
      //for(int i=0;i<copied-1;i++)
      //   if(ExTicks[i].time>Start && ExTicks[i].time<End)
      //      Print("Тик: ",ExTicks[i].time," bid: ",ExTicks[i].bid," ask: ",ExTicks[i].ask," last: ",ExTicks[i].last," [i]");
     }
   Print("Size ",((long)copied*sizeof(MqlTick))>>20," Mb");
  }
//+------------------------------------------------------------------+
Dateien:
 
Karputov Vladimir:

Willst du alle Tics bekommen? :)

Prüfen Sie zunächst, ob Ihr Computer so viele Ticks verarbeiten kann (wenn Ihr Computer durchbrennt, ist das nicht meine Schuld):

Ja, ich muss wissen, ab welchem Datum es Daten gibt (d. h. ab welchem Datum man einen Test mit echten Ticks durchführen kann).

Und wie viel ist für den Computer kein Problem, abzufragen? Ausbrennen ist eine Übertreibung, eher einfrieren?

 
forexman77:

Ja, ich muss wissen, ab welchem Datum es Daten gibt (d. h. ab welchem Datum der Test mit echten Ticks durchgeführt werden kann).

Und wie viel ist für den Computer kein Problem, abzufragen? Du übertreibst, es ist wahrscheinlicher, dass er einfriert?

Anstelle von "200000000000" geben Sie "20000" und ein beliebiges Datum im Jahr 1971 ein. Allerdings ist es sehr wahrscheinlich, dass Sie das Skript mehr als einmal ausführen müssen. Die Sache ist die, dass die erste Anfrage die gesamte heruntergeladene Historie initialisiert (weil Sie die Historie seit 1971 bestellt haben), und wenn das Skript für eine lange Zeit nicht antwortet, gibt es die Daten, die verfügbar sind, aber der Download wird weiter gehen. Daher kann die zweite Anfrage eine tiefere Geschichte zeigen.
 
forexman77:

Gibt es eine Software, mit der sich die Tiefe des Tickers ermitteln lässt?

Ich habe es versucht:

die ganze Zeit über 2.000 Ticks bekommt. In der Hilfe steht, dass, wenn keine Zeit angegeben wird, nicht mehr als 2000 Zecken übertragen werden. Die Zeit wird in Millisekunden angegeben und die Sekunden werden mit 1000 multipliziert.

In der Hilfe wird außerdem angegeben, dass es sich um Ticks für die aktuelle Sitzung handelt. Es stellt sich also heraus, dass Sie keinen Zugriff auf historische Daten haben?

Sie können nicht alle Ticks für das Symbol erhalten, wenn sie größer als INT_MAX sind, da der Rückgabewert

der Funktion CopyTicks ist eine ganze Zahl. Daher müssen Sie sie in Teilen erwerben.

 
prostotrader:

Sie können nicht alle Ticks pro Zeichen erhalten, wenn sie größer als INT_MAX sind, da der Rückgabewert

der Funktion CopyTicks ist eine ganze Zahl. Deshalb muss man sie in Teilen kaufen.

Dennoch ist es möglich, das Anfangsdatum der Ticks zu erhalten, indem man nur 20000 (zwanzigtausend) Ticks anfordert - die Hauptsache ist, das Anfangsdatum anzugeben, das garantiert, dass es an diesem Datum noch keine Ticks gab und dass 1971 am besten passt.
 
Karputov Vladimir:
Es ist jedoch möglich, das Anfangsdatum der Ticks herauszufinden, indem man nur 20000 (zwanzigtausend) Ticks anfordert - die Hauptsache ist, das Anfangsdatum anzugeben, das garantiert, dass es an diesem Datum noch keine Ticks gab, und 1971 ist der beste Weg, dies zu tun.

Habe viele Daten abgefragt, wirklich starkes Bremsen hat eingesetzt:

2016.08.21 22:24:03.918 CopyTicks (EURUSD,H1)   Size 2826 Mb
2016.08.21 22:24:03.918 CopyTicks (EURUSD,H1)   Тик: 2016.05.25 16:54:25 bid: 1.11497 ask: 1.11505 last: 0.0 [56999999]
2016.08.21 22:24:03.918 CopyTicks (EURUSD,H1)   Тик: 2016.01.13 09:45:44 bid: 1.08206 ask: 1.08236 last: 0.0 [0]
2016.08.21 22:24:03.903 CopyTicks (EURUSD,H1)   Получено тиков: 57000000 код ошибки: 0

Für meine Aufgabe sind 100 Ticks ausreichend. Trotzdem vielen Dank!

2016.08.21 22:36:42.234 CopyTicks (EURUSD,H1)   Size 0 Mb
2016.08.21 22:36:42.234 CopyTicks (EURUSD,H1)   Тик: 2016.01.13 09:46:01 bid: 1.08206 ask: 1.08236 last: 1.08215 [99]
2016.08.21 22:36:42.234 CopyTicks (EURUSD,H1)   Тик: 2016.01.13 09:45:44 bid: 1.08206 ask: 1.08236 last: 0.0 [0]
2016.08.21 22:36:42.234 CopyTicks (EURUSD,H1)   Получено тиков: 100 код ошибки: 0
 
Renat Fatkhullin:
Ja, benutzerdefinierte Diagramme und eigene Datafeeds werden bald verfügbar sein.

Hallo Renat, gibt es Neuigkeiten zu diesen Funktionen? (Tut mir leid, wenn ich es woanders nicht gefunden habe).

Hallo Renat, gibt es Neuigkeiten zu diesen Funktionen? (Tut mir leid, wenn ich es woanders nicht gefunden habe).