Fehler, Irrtümer, Fragen - Seite 575

 
Karlson:
Wenn wir herumsitzen und über Demagogie reden, warten wir auf die Folgen von Eurochif... und la-la...

Was ist falsch an den Folgen von Eurochif?

papaklass:
"Geben Sie mir bitte die vollständige Liste."
+1
 
Mein Vorschlag ist, mit der Zeit zu gehen, etwas zu schreiben, das in diesem Stadium realistisch ist, d.h. ich bin gegen den Satz "Man sollte kein Multithreading schreiben, weil es kein Multithreading gibt.Das Einzige, was Sie tun müssen, wenn Sie mit 1-3 Spread-Potenzial handeln (bis zu 10-20 Punkte 4-stelliger Spread), und wenn es Ihnen nicht gefällt - ein Tick reicht für ein schnelles Paar oder sogar ein einminütiger Bar für eine Umfrage.
 
Interesting:

Was ist falsch an den Folgen der EUROCHIFA?

Der Buck-Chief... Es macht keinen Sinn, ihn zu handeln, wenn der Eurobucks bereits gehandelt wird... Dann gibt es die Möglichkeit einer Krise... Vieles ist möglich, bis hin zur Regulierung anderer Währungen...
 
papaklass:
Ja, bis OnTick() und OnTrade() Event-Handler und Multithreading in EAs parametrisch werden, wird das normale Multithreading nur ein Traum sein. All dieses Zeug - OnChartEvent() usw. ist Unsinn. Es ist ein Versuch, die Parametrisierung der Hauptereignishandler zu ersetzen. Und während MQ solchen Unsinn macht, wird MT5, anstatt das Problem kardinal zu lösen (Parameter von Event-Handlern und Multithreading), auf dem gleichen Stand bleiben, auf dem es jetzt ist. Und es gibt keine besonderen Perspektiven für diese Plattform in ihrer jetzigen Form. (Für Händler nicht sichtbar).

Sie erkennen einfach nicht das Ausmaß der Probleme für verschiedene Benutz erklassen, die internen Prozesse bei der Implementierung von Multithreading für MQL5 und die globalen Auswirkungen auf die Plattform.

Denken Sie eine Woche lang darüber nach, finden Sie fünf tödliche Zustände, und dann können Sie die Einzelheiten veröffentlichen.

Dank der vierten Generation der Sprache haben wir uns viele Male und lange mit dieser Analyse beschäftigt.

 
papaklass:
Mit dem Terminal können Sie 99 Charts öffnen. Und auf das nächste Paar warten, um zu sehen, was dort los ist? Und wenn Sie unter solchen Bedingungen auf Minutenbalken analysieren, erhalten Sie anderthalb Stunden nach der letzten Abfrage Zugriff auf die Instrumente. Und wie schaffen es die Leute, Hunderte von Charts (für den Aktienmarkt) zu analysieren? Und MT5 ist auch als Aktienterminal positioniert. Es gibt also solche Torten. Ohne Multithreading und Parametrisierung von Ereignisbehandlern geht es also nicht. Oder handeln Sie mit 1 - 12 Paaren.

Es ist ein grundlegender Irrtum, dass Sie das nicht wissen:

  • jeder EA/Skript läuft in seinem eigenen Thread unabhängig von den anderen
  • jede Karte hat ihre eigene unabhängige Warteschlange
  • jedes Symbol hat seinen eigenen Ausführungs-Thread bei der Arbeit an Charts; alle Indikatoren dieses Symbols werden in diesem Thread berechnet, ohne die Prozesse der Indikatoren anderer Symbole zu beeinflussen
  • das Terminal hat viele System-Threads, die ihre Arbeit unabhängig voneinander erledigen und Engpässe entkoppeln

Leider bedeuten Aussagen wie "gib mir Multithreading und basta" nicht, dass man die bestehenden Prozesse wirklich versteht. Wir haben sehr gut an den internen Prozessen des Terminals gearbeitet und ein sehr produktives und einheitliches System eingeführt.

 
Loky:

Diese Umsetzung ist nicht eindeutig. Interessant ist, dass das Problem im letzten Beitrag richtig formuliert wurde.

" Die Sprache selbst (das Konzept von MQL selbst) erlaubt es nicht, die Verarbeitung mehrerer Threads innerhalb eines Programms zu organisieren"

Sobald die Funktion OnChartEvent() zur Ausführung kommt und der Code für die Verarbeitung des Ereignisses der Ankunft eines neuen Ticks eines der Paare ausgeführt wird, haben alle anderen Paare mit ihren onTick-Ereignissen eine Pause!

Brauchen Sie wirklich Hochfrequenzhandel über 1 Sekunde?

Ich denke nicht, dann in OnChartEvent() öffnen nur Flaggen von Zustand, und es wird keine Verzögerung, und verschieben Sie Berechnungen selbst zu OnTimer() und verarbeiten nur die Flaggen, die offen sind.

 
Urain:

Brauchen Sie wirklich Hochfrequenzhandel über 1 Sekunde?

Ich denke nicht, dann in OnChartEvent() öffnen nur Flaggen des Staates, und es wird keine Stream-Verzögerung, und die Berechnungen selbst bewegen, um OnTimer(), und verarbeiten nur die Flaggen, die offen sind.

1. und wie wird dieser Entwurf im Prüfgerät funktionieren?

2. Ich brauche einen Handel mit einer Frequenz, die nicht geringer ist als die Ankunft einer neuen Notierung für ein Paar. Ich kann die Zeit zwischen den Notierungen und ihre Menge in einem bestimmten Intervall analysieren.

Ich möchte, dass die "Berechnungen" für zwei verschiedene Paare gleichzeitig durchgeführt werden.

3. ich hätte gerne ein völlig anderes Konzept von Toolkit. Die Bindung an das EA-Chart ist sehr lästig. Ich wünschte, es wäre auf der Ebene der Visualisierung von Objekten, ihren Eigenschaften und Ereignissen im Terminalfenster.

Zum Beispiel

- Wählen Sie ein Symbol im Anführungszeichenfenster aus, klicken Sie auf die linke Maustaste -> Eigenschaften ->

dann Liste der Ereignisse beobachten -> zweimal mit der linken Maustaste anklicken -> es öffnet sich ein Fenster zur Eingabe des mql5-Codes

Ähnliches gilt für andere Terminalobjekte - Diagramme, Indikatoren usw.





 
Loky:

1. Wie wird dieser Entwurf im Prüfgerät funktionieren?

2. Ich muss mit einer Häufigkeit handeln, die nicht geringer ist als das Eintreffen einer neuen Notierung für ein Paar. Ich kann die Zeit zwischen den Zitaten und ihre Anzahl in einem bestimmten Intervall analysieren.

Ich möchte, dass die "Berechnungen" für zwei verschiedene Paare gleichzeitig durchgeführt werden.

Da die Berechnungen in OnTimer() stattfinden, gibt es keine gleichzeitige Verarbeitung, sondern nur eine sequenzielle.

In diesem Fall wird die Warteschlange der Ereignisse nicht angehäuft. Ereignisse der Ticks von verschiedenen Paaren, die während der OnTimer()-Berechnung kommen, werden übersprungen.

 
papaklass:
.....

Ich glaube, Sie nehmen zu viel auf sich. Zumindest hätten Sie höflicher sein müssen.

Wenn Sie Probleme mit dem Terminal oder der Ausführung von MQL5-Programmen haben, dann wenden Sie sich an die richtige Stelle - servicedesk. Das wird sehr viel hilfreicher sein.

 
papaklass:

1. Warum laufen alle offenen Charts mit Indikatoren im Terminal online auf einem Kern? Ich habe 4 Kerne auf meinem Computer und drei sind im Leerlauf. Vielleicht ist die Wolke schuld an dieser Leistung?

Gonewo. Pruf - bitte, lass mal sehen.

2. Warum verarbeitet der Multi-Currency Expert Advisor die Ticks der einzelnen Charts nacheinander und nicht mehrere Symbole auf einmal?

Muss das so sein? Und was ist das Problem mit der Übergabe der notwendigen Ereignisse aus den Spionageindizes? Nun, natürlich nicht die Zecken, aber die Signale, natürlich. Und der EA hat einen Thread und braucht keinen weiteren.

Wir brauchen nicht noch mehr Probleme mit Synchronisation und Deadlocks. Beherrschen Sie wenigstens OOP und fragen Sie dann nach Multithreading.

Vielleicht habe ich den EA falsch organisiert und es gibt Funktionen in MT5, die die Nutzung aller Kerne erlauben? Wenn ja, erklären Sie, was diese Funktionen sind und wie man sie benutzt.

Warum muss der Expert Advisor alle Kerne nutzen?

Sie müssen sich nicht einmal Gedanken über Multithreading machen. Der Expert Advisor ist ein Spion und Expert Advisor-Synchronisierer. Der Großteil der Funktionalität wird von den Spies ausgeführt, und der Synchronisator ist für den korrekten Austausch abhängiger Daten zwischen den Spies verantwortlich.