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
Ich bin weit davon entfernt, ein Experte zu sein, also entschuldige ich mich im Voraus.
Ich schreibe gerade einen EA.
Die Aufgabe:
1) Mehrere Indikatoren zu verwenden. Ein und derselbe Indikator kann mit verschiedenen Einstellungen (Perioden) verwendet werden - wie kann man sie parallel arbeiten lassen, um die Zeit des Signalempfangs zu reduzieren?
2) Führen Sie parallel zum Empfang der Signale der Indikatoren eine ständige Kontrolle durch und schließen Sie gewinnbringende oder verlorene Positionen. Außerdem haben wir sehr viele offene Stellen, so dass dieser Prozess in Teilen parallelisiert werden sollte. Wir können zum Beispiel 1000 Aufträge in 3 oder 4 Threads prüfen.
3) Parallel zu den oben genannten Prozessen verwenden Sie die von den Indikatoren in Punkt 1 erhaltenen Signale zum Kauf oder Verkauf.
Das Interessanteste ist, wie man all diese Aufgaben parallelisieren kann, damit der Tester verfügbar ist und Optimierungen im Tester möglich sind.
Zeigen Sie den Weg, vorzugsweise mit Beispielen. Vielen Dank im Voraus.
Ich bin weit davon entfernt, ein Experte zu sein, also entschuldige ich mich im Voraus.
Aufgabe:
1) Mehrere Indikatoren zu verwenden. Ein und derselbe Indikator kann mit verschiedenen Einstellungen (Perioden) verwendet werden - wie kann man sie parallel arbeiten lassen, um die Zeit für den Empfang von Signalen zu reduzieren.
2) Führen Sie parallel zum Empfang der Signale von den Indikatoren eine ständige Überprüfung und Schließung von Gewinn- oder Verlustpositionen durch. Außerdem haben wir sehr viele offene Stellen, so dass dieser Prozess in Teilen parallelisiert werden sollte. Wir können zum Beispiel 1000 Aufträge in 3 oder 4 Threads prüfen.
3) Parallel zu den oben genannten Prozessen verwenden Sie die von den Indikatoren in Punkt 1 erhaltenen Signale zum Kauf oder Verkauf.
Das Interessanteste ist, wie man all diese Aufgaben parallelisieren kann, damit der Tester verfügbar ist und Optimierungen im Tester möglich sind.
Zeigen Sie den Weg, vorzugsweise mit Beispielen. Ich danke Ihnen im Voraus.
Haben Sie das Terminal jemals geöffnet? Im Allgemeinen sind der Tester und der Optimierer immer parallel zum Handel auf dem Konto verfügbar.
Ich frage mich, wie lange es dauert, bis die Signale von den Indikatoren empfangen werden, wenn die Frage nach der Notwendigkeit einer Parallelschaltung gestellt wird.
Haben Sie das Terminal überhaupt einmal geöffnet? Der Tester und der Optimierer sind immer parallel zum Handel auf dem Konto verfügbar.
Ich frage mich, wie lange es dauert, um Signale von den Indikatoren zu erhalten, wenn es eine Frage über die Notwendigkeit, sie zu parallelisieren ist?
1) Verwenden Sie mehrere Indikatoren. Ein und derselbe Indikator kann mit verschiedenen Einstellungen (Perioden) verwendet werden - wie kann man sie parallel arbeiten lassen, um die Zeit für das Erhalten von Signalen zu reduzieren?
2) Führen Sie parallel zum Empfang der Signale der Indikatoren eine ständige Kontrolle durch und schließen Sie gewinnbringende oder verlorene Positionen. Außerdem haben wir sehr viele offene Stellen, so dass dieser Prozess in Teilen parallelisiert werden sollte. Wir können zum Beispiel 1000 Aufträge in 3 oder 4 Threads prüfen.
3) Parallel zu den oben genannten Prozessen verwenden Sie die von den Indikatoren in Punkt 1 erhaltenen Signale zum Kauf oder Verkauf.
Mit einem Symbol gestartete Indikatoren arbeiten in einem Fluss. Aber wenn sie gut geschrieben sind, gibt es keine Verzögerung (sie wird in Millisekunden gezählt).
Aber alle Handelsoperationen können mit zusätzlichen Expert Advisors / Skripten parallelisiert werden. Rufen Sie sie bei Bedarf vom Haupt-EA aus auf, oder lassen Sie sie ständig laufen. Ein Beispiel für die Umsetzung finden Sie in diesem Artikel. Oder verwenden Sie asynchrones OrderSend, aber in diesem Fall wird es etwas schwieriger zu kontrollieren sein.
Und das Interessanteste ist: Wie kann man all diese Aufgaben parallelisieren, so dass der Tester und die Optimierung im Tester verfügbar sind?
Für den Tester ist das alles nicht nötig, er arbeitet synchron und verpasst keine Ticks. Machen Sie 2 Varianten - für Tester und für Online (if ( IsTesting() ).
Indikatoren, die auf demselben Werkzeug laufen, laufen alle im selben Thread. Aber wenn Sie sie richtig schreiben, gibt es keine Verzögerung (wird in Millisekunden gezählt).
Alle Handelsoperationen können jedoch mit zusätzlichen Expert Advisors / Skripten parallelisiert werden. Rufen Sie sie bei Bedarf vom Haupt-EA aus auf, oder lassen Sie sie ständig laufen. Ein Beispiel für die Umsetzung finden Sie in diesem Artikel. Sie können auch den asynchronen OrderSend verwenden, aber in diesem Fall wird die Steuerung etwas schwieriger sein.
Für den Tester ist das alles unnötig, er arbeitet synchron und überspringt keine Ticks. Erstellen Sie 2 Varianten - für Tester und für Online (if ( IsTesting() ).
Mit einem Werkzeug gestartete Indikatoren arbeiten alle in einem Thread. Aber wenn man sie gut schreibt, gibt es keine Verzögerung (sie dauern nur Millisekunden).
--- Ich verstehe das nicht. Ich werde nicht meine eigenen Indikatoren schreiben. Ich verwende OEM-Indikatoren. Und der Punkt ist, dass ich sie parallel verwenden möchte, um die Reaktionszeit zu verkürzen...
Für den Tester ist das alles nicht nötig, er arbeitet synchron und überspringt keine Ticks. Erstellen Sie 2 Varianten - für Tester und für Online (if ( IsTesting() ).
---- Das verstehe ich überhaupt nicht. Wer braucht das nicht? Es funktioniert synchron --- aber für mich muss es umgekehrt sein, um meine Asynchronität zu berücksichtigen... Was zum Teufel sind zwei Varianten? Ich habe eine Variante meines EA und möchte sie im Tester ausführen, aber ich möchte meine Prozesse parallelisieren und sie im Tester anzeigen.
Da alles sequentiell abläuft, kommt es zu Drawdowns.
--- Ich verstehe das nicht. Ich werde nicht meine eigenen Indikatoren schreiben. Ich verwende die Standardtypen. Und der Punkt ist, dass ich sie parallel verwenden möchte, um die Reaktionszeit zu verkürzen...
Haben Sie die Reaktionszeit gemessen? Beim Parallelisieren verlieren Sie mehr.
---- Ich verstehe das überhaupt nicht. Wer braucht das nicht? Es funktioniert synchron --- aber ich brauche es, um meine Asynchronität zu berücksichtigen... Was zum Teufel sind die beiden Varianten? Ich habe eine Variante meines EA und möchte sie im Tester ausführen, aber ich möchte meine Prozesse parallelisieren und sie im Tester anzeigen.
Ein EA:
Warum sollte man die Parallelisierung mit dem Strategy Tester testen?
Aufgrund der Tatsache, dass alles sequentiell ausgeführt wird, kommt es zu Drawdowns, und zwar zu verdammt vielen Drawdowns.
Verteilen Sie das Senden von Handelsaufträgen oder verwenden Sie OrderSendAsync
Wenn Sie eine Reihe von Geschäften schließen müssen, können Sie einen großen Schalter öffnen, einen Gewinn einfahren und dann in aller Ruhe einen OrderCloseBy über den anderen schließen.Verteilen Sie das Senden von Handelsaufträgen oder verwenden Sie OrderSendAsync
Es geht also nicht nur um die Übermittlung der Bestellung, sondern es werden noch eine Reihe anderer Kontrollen durchgeführt. Aber sie werden alle in eine Warteschlange gestellt, bis eine Funktion beendet ist, die andere wird nicht ausgeführt ....
Ich habe es bereits in der Problemstellung beschrieben. Und das ist eine komplexe Aufgabe. DLL oder Chats oder was auch immer - was mich interessiert, ist das Szenario, in dem ich diese Aufgaben parallelisieren kann und sie so im Tester ausführen kann, um zu verstehen, was was ist...
Es geht also nicht nur um die Übermittlung des Haftbefehls, sondern um eine ganze Reihe anderer Kontrollen. Aber alle werden in eine Warteschlange gestellt, bis eine Funktion beendet ist, die andere wird nicht ausgeführt ....
Ich habe es in den Begriffen des Problems beschrieben. Und das ist eine komplexe Aufgabe. DLL oder Chats oder was auch immer - was mich interessiert, ist das Szenario, in dem ich diese Aufgaben parallelisieren und im Tester laufen lassen kann, um zu sehen, was los ist...
Und wie viel kostbare Zeit verlieren Sie und was sind die Folgen? Und wie hoch wäre der Gewinn, wenn es keinen "Verlust" gäbe?
Und wie viel kostbare Zeit verlieren Sie und was sind die Folgen? Und wie hoch wäre der Gewinn, wenn es keinen "Verlust" gäbe?
Ich brauche 5 Tage, um diese Strategie im Tester mit 24 Kernen auszuführen. Und nur ein Kern funktioniert. Ganz zu schweigen von der Tatsache, dass das Protokoll, das niemand braucht, in dieser Zeit auf ein oder zwei Terabyte anwachsen kann. Und das alles ohne Optimierungen. Und dieses blöde Protokoll lässt sich in keiner Weise deaktivieren ...
Wie denken Sie, wenn ich den Prozess so beschleunigen - sagen wir - 4 Zeitpläne, jeder in seinem Kern - eine Erhöhung in diesem Punkt 4 mal. Hinzu kommt ein separater Prozess für den Abschluss von z.B. 1000 Geschäften oder die Aufteilung dieses Prozesses auf 5 oder 10 Threads - eine Verzehnfachung. Plus ein separates Verfahren zur Eröffnung von Positionen durch Signale ...
Ich denke mehrfach und mal ...
Aber jede Millisekunde + Verzögerung zum Broker + Verzögerung vom Broker zur Börse (wenn es sich nicht um eine Küche handelt) ist ein kolossaler Verlust. Es ist seltsam, dass dies in Sibirien nicht verstanden wird...