![MQL5 - Sprache von Handelsstrategien, eingebaut ins Kundenterminal MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
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:
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:
{
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.
Ergebnisse zu USDCHF M1, CalcLength aus dem Indikator https://www.mql5.com/ru/code/16537:
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.
Ergebnisse zu USDCHF M1, CalcLength aus dem Indikator https://www.mql5.com/ru/code/16537:
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:
{
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.
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.
Danke, aber wissen Sie etwas über das Glas und die Geschwindigkeit des Eingangs?
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.
So sollten Sie CopyTicks testen:
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
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
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.