Testen von 'CopyTicks' - Seite 21

 
Network 'xxx': authorized on Alpari-MT5 through mt5.nl.3 (ping: 64.15 ms)

Auf dem fast leeren Alpari marketwatch bremst der Copitix genauso stark wie auf BCS.

Bei Robo ist alles um mehr als eine Größenordnung schneller.

 

Ergebnisse zu USDCHF M1, CalcLength aus dem Indikator https://www.mql5.com/ru/code/16537:

  • RoboForexEU - 23 ms (die Tasse ist nicht in der Sendung, nur Bid/Ask)
  • MetaQuotes-Demo - 15-30 ms (es gibt eine Tasse mit Lautstärke in der Sendung)


Die Ergebnisse schwanken ständig und die Single-Thread-Regel wird nicht eingehalten - auf einem der Streams ohne Pick und Mix für CopyTicks, auf dem anderen mit dem Pick. Die Demo ist nicht auf BCS geöffnet, aber die Hauptsache ist, dass es keine Stacks auf RoboForex gibt.

Seltsamer Messcode. Es wurden viele unnötige Dinge gemessen, aber nicht die CopyTicks-Anfragezeit:

virtual void Visual( void ) const
  {
    const ulong StartTime = ::GetMicrosecondCount();

    int X0;
    int Y0;

    BARS bars(this.Chart);

    TICKSPICTURE TicksPicture(this.Chart, &bars, X0, Y0);

    this.SetProperty(::OBJPROP_XDISTANCE, X0);
    this.SetProperty(::OBJPROP_YDISTANCE, Y0);

    TicksPicture.Fill(ColorBid, ::BID);
    TicksPicture.Fill(ColorAsk, ::ASK);
    TicksPicture.Fill(ColorSpread, ::AVG);

    TicksPicture.SendToResource(this.Resource);

    ::Comment("LastCalcTime = " + (string)::TimeLocal() +
              ", Ticks = " + (string)bars.GetAmountTicks() +
              ", CalcLength = " + (string)((::GetMicrosecondCount() - StartTime) / THOUSAND) + " ms.");

    ::ChartRedraw(this.Chart);

    return;
  }

In jedem Fall optimieren wir den Aufruf zum Kopieren von Zecken. Es braucht eine Menge.
Тиковый индикатор Ticks
Тиковый индикатор Ticks
  • Stimmen: 15
  • 2016.10.14
  • //www.mql5.com/ru/users/fxsaber">
  • www.mql5.com
Показывает тиковую ценовую историю (Bid/Ask) внутри всех видимых баров.
 
Renat Fatkhullin:

Ergebnisse zu USDCHF M1, CalcLength aus dem Indikator https://www.mql5.com/ru/code/16537:

  • RoboForexEU - 23 ms (kein Stack im Broadcast, nur Bid/Ask)
  • MetaQuotes-Demo - 15-30 ms (es gibt eine Tasse mit Lautstärke in der Sendung)

Probleme mit Alpari Real und BCS Real. Es ist sehr einfach, die echte

Forum zum Thema Handel, automatisierte Handelssysteme und Testen von Handelsstrategien

Statistik über die Verrutschung von Limitaufträgen an der Börse

pivomoe, 2016.08.25 15:15

Beginnen Sie mit der Erstellung eines mt5-Demokontos bei bx. Sie erhalten dann eine E-Mail mit einem Link zur Verteilung. Wählen Sie bei der Serverauswahl keinen Demoserver, sondern einen für den realen Handel. Erstellen Sie ein Konto mit beliebigen Daten. Erstellen Sie ein Zertifikat. Sie verfügen über ein echtes Konto mit Nullsaldo, mit echten Kursen und einer echten Historie.


Die Ergebnisse sind ständig fließend + die Regel der einzelnen Threads wird nicht respektiert - auf der einen Seite ohne Stack die Threads (wo es keine Notwendigkeit zu tun, Auswahlen und Zusammenführungen für CopyTicks), auf der anderen mit Stack. Die Demo wird nicht auf BCS geöffnet, aber die Hauptsache ist, dass es keine Streams auf Roboforex gibt

Seltsamer Messcode. Gemessen wurde ein Haufen zusätzlicher Dinge, aber keineswegs das Timing der CopyTicks-Anfrage:

Das liegt nicht an mir. Es wird alles zusammen gemessen. Der einzige Unterschied ist der Handelsserver. Die Bremsen beziehen sich also nur auf Copyticks.

In jedem Fall ist der Aufruf von copyTicks optimiert. Es braucht eine Menge.

Copyix in seiner jetzigen Form ist sehr unpraktisch. Es ist zum Beispiel völlig unklar, wie man an die Zecke kommt, die vorher da war.

Warum können wir nicht den Index des Basisarrays zurückgeben und mit der Basis wie mit einem Array arbeiten? Die Probleme beim Hinzufügen neuer Daten zur Datenbank überlassen wir ganz dem Benutzer. Wenn etwas schief geht, soll er es selbst in Ordnung bringen. Im Moment ist die Arbeit mit Copyix, nun ja, sehr unbequem. Ich scheine eine der wenigen Personen zu sein, die es sehr aktiv nutzen. Und das kann ich ganz verantwortungsvoll sagen.

 
Renat Fatkhullin:

Ergebnisse zu USDCHF M1, CalcLength aus dem Indikator https://www.mql5.com/ru/code/16537:

  • RoboForexEU - 23 ms (keine Statistik im Broadcast, nur Bid/Ask)
  • MetaQuotes-Demo - 15-30 ms (es gibt eine Tasse mit Lautstärke in der Sendung)


Die Ergebnisse schwanken ständig und die Single-Thread-Regel wird nicht beachtet - es gibt Threads ohne Picks und Merges für CopyTicks auf einem davon, auf dem anderen mit dem Pick. Auf BCS die Demo nicht öffnen, aber die Hauptsache ist, dass auf RoboForex gibt es keine Stapel

Seltsamer Messcode. Gemessen wird ein Haufen unnötiger Dinge, aber keineswegs CopyTicks-Anfragezeit:

virtual void Visual( void ) const
  {
    const ulong StartTime = ::GetMicrosecondCount();

    int X0;
    int Y0;

    BARS bars(this.Chart);

    TICKSPICTURE TicksPicture(this.Chart, &bars, X0, Y0);

    this.SetProperty(::OBJPROP_XDISTANCE, X0);
    this.SetProperty(::OBJPROP_YDISTANCE, Y0);

    TicksPicture.Fill(ColorBid, ::BID);
    TicksPicture.Fill(ColorAsk, ::ASK);
    TicksPicture.Fill(ColorSpread, ::AVG);

    TicksPicture.SendToResource(this.Resource);

    ::Comment("LastCalcTime = " + (string)::TimeLocal() +
              ", Ticks = " + (string)bars.GetAmountTicks() +
              ", CalcLength = " + (string)((::GetMicrosecondCount() - StartTime) / THOUSAND) + " ms.");

    ::ChartRedraw(this.Chart);

    return;
  }

In jedem Fall optimieren wir den Aufruf zum Kopieren von Zecken. Es braucht eine Menge.

Bitte klären Sie, was Sie mit einzelnen Fäden meinen?

Eine weitere Frage, damit die Ticks so schnell wie möglich kommen, ist es notwendig, dass die Tasse nicht im Terminal geöffnet ist und es gibt kein Abonnement für die Tasse Update-Ereignis von der EA/Indikator?

Von der Referenz:

Ausgabegeschwindigkeit: Das Terminal speichert für jedes Symbol 4096 aktuelle Ticks im Schnellzugriffscache (65536 Ticks für Symbole mit laufendem Stack), Abfragen auf diese Daten sind am schnellsten.

Sollte die Wette für einen schnellen Zugriff ausgeblendet werden und es sollte kein Abonnement zur Aktualisierung der Wette nach Symbolen geben? Oder ist ein (versteckter/offener) Stapel bereits eine Garantie für eine Verlangsamung?
 
Alexey Kozitsyn:

Bitte klären Sie, was Sie mit einzelnen Strömen meinen?

Forum zum Thema Handel, automatisierte Handelssysteme und Strategietests

Testen von 'CopyTicks'

fxsaber, 2016.10.13 10:18

Es gibt eine MT-Nuance mit Ticks, bei der die Tick-Historie selbst rückwirkend überschrieben wird, wenn mehrere Quellen von Ticks eingehen.


 
fxsaber:
Danke, aber wissen Sie etwas über das Glas und die Geschwindigkeit des Eingangs?
 
Alexey Kozitsyn:
Danke, aber wissen Sie etwas über das Glas und die Geschwindigkeit des Eingangs?
Nein, leider nicht. Renat behauptete, dass der Tumblr ständig für die gesamte Marketwatch gestreamt wird. Aber das ist für die meisten Situationen keine sinnvolle (verschwenderische) Lösung.
 
fxsaber:
Nein, leider nicht. Renat argumentierte, dass das Glas für die gesamte Marketwatch ständig gestrafft wird. Aber das ist für die meisten Situationen keine geeignete Lösung.
Es wäre logischer, eine eigene Tasse pro Symbol zu haben.
 

So sollten Sie CopyTicks testen:

MqlTick ExtArr[2048];
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void OnTick()
  {
   ulong from   =(TimeTradeServer()-1200)*1000;
   ulong ticks  =GetMicrosecondCount();
   int   records=CopyTicks(_Symbol,ExtArr,COPY_TICKS_INFO,from,2048);

   ticks=GetMicrosecondCount()-ticks;
   Print("Time: ",ticks," msc for ",records," records");
  }

Hier ist die Ausgabe in Mikrosekunden: 95 Mikrosekunden pro Stichprobe von 2048 INFO-Ticks in den letzten 20 Minuten

2016.10.18 14:15:38.673 TEST (USDCHF,M1)        Time: 95 msc for 1206 records
Das ist ein drastischer Unterschied zu den von Ihnen behaupteten zehn Millisekunden. Das liegt daran, dass Sie die CopyTicks nicht gemessen haben.
 
Alexey Kozitsyn:

Bitte klären Sie, was Sie mit einzelnen Fäden meinen?

Der Geld-/Briefstrom und der vollständige Ticked Flow mit Volumen und letzten/gehandelten Preisen sind zwei große Unterschiede.

Kardinalsmäßig große Unterschiede.


Eine weitere Frage, damit die Ticks so schnell wie möglich kommen, ist es notwendig, dass das Glas nicht im Terminal geöffnet ist und es gibt kein Abonnement für das Ereignis der Aktualisierung des Glases aus dem Expert Advisor/Indicator?

Die Offenheit des Terminals oder das Abonnement des EA spielt keine Rolle.

Wenn das Symbol in Marketwatch ist, empfängt das Terminal bedingungslos den vollen Tickstrom mit Einsätzen.


Am wichtigsten ist jedoch, dass die obigen Berechnungen der Abtastrate irrelevant sind. Sie sind so ungeschickt gemacht (alles außer CopyTicks-Zeit wird gemessen), dass es sogar überraschend ist.