Geschichte ankreuzen - Seite 18

 
Alexander:

Wird es jetzt gespielt?

Wir haben es nicht, wir haben es nach Ihrer Beschreibung versucht.

Nach der "Behandlung":

Forum zum Thema Handel, automatisierte Handelssysteme und Testen von Handelsstrategien

Zeckengeschichte

Karputov Vladimir, 2015.10.21 09:24

...

Ich teste jetzt das "Heilmittel" - ich werde die Historien aus den Ordnern "history" und "ticks" des MetaQuotes-Demo-Servers komplett löschen.


Der Tiefenverlauf von 500 Ticks wird fast sofort ausgegeben, wobei der gesamte Balkenverlauf ausgetauscht wird. Die Größe der Tick-Dateien beträgt 200-400 Kb für 10 Monate.

 

Und ich wollte Zecken in den Tester zu bekommen, gibt es aus, was es ist :)

void OnTick()
  {
//---
 MqlTick ExTicks[];
 CopyTicks(_Symbol,ExTicks,COPY_TICKS_ALL,D'2015.10.16 23:59',1);

 

Sehen Sie sich an, wie Ticks in der Version 1194 funktionieren, wo Millisekunden und Flags hinzugefügt wurden.

Im Tester werden keine Ticks angezeigt, bis wir die vollständige Integration von Ticks in den Handelsstrategien-Tester in der nächsten Version abgeschlossen haben.

 
MetaTrader 5 build 1194 started (MetaQuotes Software Corp.)
Windows 10 Home (X86 based PC), IE 11.00, UAC, Intel Atom  Z3740 @ 1.33GHz, RAM: 218 / 1931 Mb, HDD: 20039 / 50235 Mb, GMT+02:00
authorized on MetaQuotes-Demo through Access Point EU (ping: 139.57 ms)

Testen des Zeckenrufs bei unterbrochener Internetverbindung. Der Testindikator unten:

//+------------------------------------------------------------------+
//|                                                         test.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.1"
#property indicator_chart_window
#property indicator_plots 0
//--- input parameter
input int   InpShowTicks=50;    // клубина истории тиков
//--- parameters
MqlTick     arr_mql_tick[];      // массив структур хранящий тики
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int OnInit()
  {
   Print(__FUNCTION__);
   Comment("");
   ResetLastError();
//--- новый размер массива структур тиков
   if(ArrayResize(arr_mql_tick,InpShowTicks)==-1)
     {
      Print("Error OnInit #1",GetLastError());
      return(INIT_FAILED);
     }
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
   static int count;
   string text  =IntegerToString(count)+"; ";
   int copied=CopyTicks(_Symbol,arr_mql_tick,COPY_TICKS_INFO,0,InpShowTicks);
   text+="Запрошено "+IntegerToString(InpShowTicks)+" тиков, скачано "+IntegerToString(copied);
   Comment(text);
   count++;
   return(rates_total);
  }
//+------------------------------------------------------------------+

Der Algorithmus sieht wie folgt aus:

Starten Sie den Indikator. Warten Sie, bis die Anzahl der heruntergeladenen Ticks der angeforderten Menge entspricht.

Trennen Sie die Verbindung zum Internet (das Terminal sollte piepsen). Zur gleichen Zeit:

  1. Test #1, "Anzahl" =40,
  2. Test #2, "Anzahl" =47,
  3. Test #3, "Anzahl" =12.

Schalten Sie das Internet ein.

Der Indikator versucht, 50 Ticks herunterzuladen, aber es werden nur 21-23 heruntergeladen. Dies dauert so lange, bis "count" größer als 100 ist.

Die Wiederholbarkeit ist gut, sie wurde mehr als dreimal überprüft.

Dateien:
test.mq5  3 kb
 
Karputov Vladimir:

Testen des Zeckenrufs bei unterbrochener Internetverbindung. Der getestete Indikator ist unten aufgeführt:


Beachten Sie, dass die Abfrage von Ticks im Indikator etwas anders funktioniert als die Abfrage von Ticks im Expert Advisor.

Der Indikator hat nicht das Recht, zu bremsen, so dass der Indikator die verfügbare Anzahl von Ticks für die Anforderung auf einmal gegeben wird.

Der Expert Advisor arbeitet in seinem eigenen Fluss, so dass er ein wenig warten kann. Für den Expert Advisor werden mehrere Versuche unternommen, Ticks pro Anfrage zu tauschen.

 
Slawa:

Beachten Sie, dass Tick-Anforderungen in einem Indikator etwas anders funktionieren als Tick-Anforderungen in einem Expert Advisor.

Der Indikator hat nicht das Recht, zu bremsen, so dass der Indikator die verfügbare Anzahl von Ticks für die Anforderung auf einmal gegeben wird.

Der Expert Advisor arbeitet in seinem eigenen Thread, kann also ein wenig warten. Es werden mehrere Versuche unternommen, dass der Expert Advisor Ticks pro Abfrage austauscht.

Das ist verständlich. Aber wie lange dauert es, bis sie sich anhäufen? Im obigen Beispiel handelt es sich um eine Anfrage für 50 Ticks. Wenn keine Ticks sofort geladen werden müssen, dauert es 30 Sekunden.

Es kommt noch schlimmer. Ich fordere 500 Ticks an - die Ticks werden fast sofort aufgefüllt (ich denke, das liegt nur daran, dass ich diese Menge früher angefordert habe), und dann fordere ich 5000 Ticks an - vier Minuten sind bereits vergangen, aber nur 2000 von 5000 Ticks wurden geladen, und die Menge erhöht sich nicht.

 
Renat Fatkhullin:

Sehen Sie sich an, wie Ticks in der Version 1194 funktionieren, wo Millisekunden und Flags hinzugefügt wurden.

Im Tester werden keine Ticks angezeigt, bis wir die vollständige Integration von Ticks in den Handelsstrategien-Tester in der nächsten Version abgeschlossen haben.

Wird es ähnliche Änderungen für MT4 geben?
 

Ich habe es am Abend auf einem anderen Computer überprüft:

MetaTrader 5 x64 build 1194 started (MetaQuotes Software Corp.)
Windows 10 Pro (x64 based PC), IE 11.00, UAC, Intel Core i3-3120 M  @ 2.50 GHz, RAM: 1129 / 3981 Mb, HDD: 75614 / 234136 Mb, GMT+02:00
authorized on MetaQuotes-Demo through Access Point EU2 (ping: 59.54 ms)

Vorgeladen 200000000 Ticks mit einem Skript - Ticks geladen in etwa 6 Sekunden. Ich konnte keinen Unterschied feststellen:

Forum zum Thema Handel, automatisierte Handelssysteme und Testen von Handelsstrategien

Zeckengeschichte

Karputov Vladimir, 2015.10.22 15:07

... Ich fordere 500 Ticks an - die Ticks werden fast sofort geladen (ich denke, das liegt nur daran, dass ich vorher eine solche Zahl angefordert habe), und dann fordere ich 5000 an - vier Minuten sind vergangen, und knapp 2000 von 5000 sind geladen, und diese Zahl wächst nicht.

 
Leider nicht in MT4.
 
MetaTrader 5 build 1196 started (MetaQuotes Software Corp.)
authorized on MetaQuotes-Demo through Access Point EU1 (ping: 296.87 ms)

Das Feld flags der Struktur MqlTicks enthält häufig den Wert "24" (Anzeigemodus "alle Ticks"):

1

- Was bedeutet dieser Wert?

Dateien:
Grund der Beschwerde: