[ARCHIV]Alle Fragen von Anfängern, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht daran vorbei. Ohne dich kann ich nirgendwo hingehen - 5. - Seite 376

 
Integer:

Ja, aber nur, wenn der erste Auftrag ein Marktauftrag ist. Wenn sie noch nicht abgeschlossen ist, passiert nichts.
Ja, genau. - Das ist eine wichtige Klarstellung. Ich habe es verpasst.
 
Chiripaha:

Das ist der springende Punkt (für die Korrektheit der Parameter des Experiments). Deshalb stelle ich diese Fragen, weil ich mir selbst nicht sicher bin und deshalb versuche herauszufinden, ob ich vielleicht etwas falsch gemacht habe, wenn diese Ergebnisse abweichen. Das ist eher der Sinn von Tests - in solchen Momenten versagt ein scheinbar gut geschriebenes Programm und man merkt, dass man irgendwo suchen muss.

Ich bin zufällig auf diese "Experimente" gestoßen. Ich habe auch Programme für parallele Arbeit geschrieben - ich habe diese Methode jetzt aufgegeben, weil sie die Effizienz nicht erhöht hat (sie kann in anderen Projekten realisiert werden). Das Ergebnis war, dass das zweite Programm erst dann gestartet wurde, wenn das erste Programm nicht verarbeitet wurde, d. h. keine Daten erhalten wurden (oder genauer gesagt, wenn es fehlschlug). Diese Reihenfolge hing von dem Fenster ab, in das ich die EA-Blöcke gestellt hatte (d. h. in welcher Reihenfolge). - Daraus schließen wir, dass die Reihenfolge der Fenster wichtig ist, d.h. die Expert Advisors werden sequentiell und nicht parallel verarbeitet. Und diese Reihenfolge hängt von der Nummerierung der Fenster in der Liste des Terminals ab.

Dies ist die Essenz der Erfahrung.

Aber vielleicht ist das auch eine falsche Interpretation meiner Ergebnisse. Deshalb versuche ich jetzt beharrlich, diese Frage zu lösen, und zwar nicht nur mit dem "Slip".

Ich meinte den Online-Betrieb von EAs. Und Sie sprechen von Tests. Geht es um den Prüfer? Wie können mehrere EAs gleichzeitig im Tester arbeiten?
 
TarasBY:
Ich bezog mich auf den Online-Betrieb der EAs. Und Sie sprechen von Tests. Geht es um den Prüfer? Wie können mehrere EAs gleichzeitig im Tester arbeiten?

Nein - ich habe mich falsch ausgedrückt (in der falschen Reihenfolge). - Mit Testen meinte ich nicht einen Tester, sondern Tester von Programmen in der Phase der Fehlersuche und Identifizierung ihrer Merkmale. In diesem Fall, aufgrund des Mangels an dokumentierten Informationen, habe ich die Besonderheiten von mt4 identifiziert. (Das muss ich von Zeit zu Zeit tun).

Ich spreche natürlich auch von EAs, die jetzt online arbeiten.

 
Chiripaha:

Nein, ich habe mich falsch ausgedrückt (und dabei die Kohärenz verloren). - Mit Testen meinte ich nicht die Tester - sondern die Tester von Programmen in der Phase der Fehlersuche und der Aufdeckung von Besonderheiten ihrer Arbeit. In diesem Fall, aufgrund des Mangels an dokumentierten Informationen, habe ich die Besonderheiten von mt4 identifiziert. (Das muss ich von Zeit zu Zeit tun).

Natürlich spreche ich jetzt auch von EAs, die online arbeiten.

Wenn der Entwickler erklärt, dass das Terminal mehrere Handelsaufträge gleichzeitig an den Server weitergeben kann, wie können wir dies tun, indem wir sequentiell arbeiten?
 

Ich danke Ihnen allen für Ihre Antworten. Ich werde versuchen, den Code so zu ändern, dass der EA erst dann beendet wird, wenn OrdersTotal eine offene Order anzeigt. Dann wird der 2. definitiv sehen, dass es einen Auftrag gibt. Ich hoffe es.

Meiner Erfahrung nach laufen die EAs übrigens sequentiell ab und bilden sogar irgendwie eine Warteschlange, wenn man nach den Ausdrucken urteilt.

 
Arles:

Ich danke Ihnen allen für Ihre Antworten. Ich werde versuchen, den Code so zu ändern, dass der EA erst dann beendet wird, wenn OrdersTotal eine offene Order anzeigt. Dann wird der 2. definitiv sehen, dass es einen Auftrag gibt. Ich hoffe es.

Meiner Erfahrung nach laufen die EAs übrigens sequentiell ab und bilden sogar irgendwie eine Warteschlange, wenn man nach den Ausdrucken urteilt.

Print() kann nicht als Grundlage für solche Schlussfolgerungen dienen. Haben Sie den Quellcode dieser Funktion gesehen? Um sicherzugehen, wann druckt der Drucker die Uhrzeit? Die Ausgabe in die Datei erfolgt exakt sequenziell, und der Drucker kann die Zeit genau zum Zeitpunkt der Ausgabe in die Datei schreiben, aber nicht zum Zeitpunkt des Eintretens des beschriebenen Ereignisses.
 
TarasBY:
Wenn der Entwickler die Möglichkeit vorsieht, dass das Terminal mehrere Handelsaufträge gleichzeitig an den Server übermitteln kann, wie kann ich dies tun, indem ich sequentiell arbeite?

Es fällt mir schwer, dazu etwas zu sagen. Ich habe keine Ahnung, wie ich direkt mit diesen Entwicklern kommunizieren kann, um zu verstehen, was sie behaupten.

Aber als jemand, der daran gewöhnt ist, sich nicht auf das zu verlassen, was sie sagen, sondern auf das, was ich aus dem Experiment erhalte, ist das, was ich sehe, das, was ich singe. - Was ich nicht sehen kann, frage ich nach und kläre meinen Standpunkt.

Die Sache ist die, dass diese Position (der aufeinanderfolgenden Arbeit) meiner Meinung nach ganz natürlich und richtig ist. Aus diesem Grund habe ich diese Frage noch nie gestellt. Das ist richtig, weil es sonst zu Fehlern in der Finanzbuchhaltung von Positionen kommen kann. Dies kann jedoch auf Serverebene unterbunden werden - es wird geprüft, ob etwas korrekt ist oder nicht. Aber selbst in diesem Fall gäbe es bei der Arbeit mit Expert Advisors und dem Terminal zu viele unnötige und fehlerhafte Befehle, die den Handelsstrom mit unnötigem "Müll" verstopfen würden. Und so weiter.

 
Chiripaha:

Es fällt mir schwer, dazu etwas zu sagen. Ich habe keine Ahnung, wie ich direkt mit diesen Entwicklern kommunizieren kann, um zu verstehen, was sie behaupten.

Aber als jemand, der daran gewöhnt ist, sich nicht auf das zu verlassen, was sie sagen, sondern auf das, was ich aus dem Experiment erhalte, ist das, was ich sehe, das, was ich singe. - Was ich nicht sehen kann, stelle ich in Frage und kläre meinen Standpunkt.

Der Punkt ist, dass eine solche Position (bei konsequenter Arbeit) meiner Meinung nach ganz natürlich und richtig ist. Deshalb habe ich mich mit diesem Thema vorher auch nicht beschäftigt. Das ist richtig, weil es sonst zu Fehlern in der Finanzbuchhaltung von Positionen kommen kann. Dies kann jedoch auf Serverebene unterbunden werden - es wird geprüft, ob etwas korrekt ist oder nicht. Aber selbst in diesem Fall gäbe es bei der Arbeit mit Expert Advisors und dem Terminal zu viele unnötige und fehlerhafte Befehle, die den Handelsstrom mit unnötigem "Müll" verstopfen würden. Und so weiter.

Lesen Sie - bei konsequenter Verarbeitung gäbe es keine Notwendigkeit, einen solchen "Gemüsegarten" anzulegen. (Und vergessen Sie nicht - jeder Artikel wird von Entwicklern moderiert).

P.S. Ich habe mich auch eher auf meine eigene Erfahrung und Logik verlassen als auf die Worte anderer. :)

 
TarasBY:

Lesen Sie es - bei konsequenter Verarbeitung gäbe es keine Notwendigkeit, einen solchen "Gemüsegarten" anzulegen. (Und vergessen Sie nicht: Jeder Artikel wird von den Entwicklern moderiert).

P.S. Auch ich bin es gewohnt, mich auf meine eigene Erfahrung und Logik zu verlassen und nicht auf die Worte anderer. :)

Denken Sie aber daran, dass ich keine Behauptung aufstelle. Im Gegenteil, ich frage: Stimmt es oder nicht? : )) Und als Argument anführen, was ich in der Praxis erhalte.

Und die Frage des "Ausrutschens" ist für mich immer noch nicht geklärt. D.h. offen. : ))

Ich vermute, es geht um Mäßigung. - Aber auch hier gilt: Raten ist nicht gleichbedeutend mit Erklären. Wenn ja, hoffe ich sehr auf eine offizielle Stellungnahme zum Thema Schlaf. Denn in diesem Forum gibt es viele Argumente wie meine Vermutungen, und offizielle sind schwer zu finden (außer im Nachschlagewerk natürlich - aber gerade dort sind die Informationen zu diesem Thema knapp und unverständlich. Sonst gäbe es hier nicht so viel zu reden). Und lassen Sie sie gleichzeitig über Reihenfolge und Parallelität aufklären. - Es wäre auch für mich nützlich, sie zu verstehen.

 
Chiripaha:

Es fällt mir schwer, dazu etwas zu sagen. Ich habe keine Ahnung, wie ich direkt mit diesen Entwicklern kommunizieren kann, um zu verstehen, was sie behaupten.

Aber als jemand, der daran gewöhnt ist, sich nicht auf das zu verlassen, was sie sagen, sondern auf das, was ich aus dem Experiment erhalte, ist das, was ich sehe, das, was ich singe. - Was ich nicht sehen kann, stelle ich in Frage, kläre meinen Standpunkt.

Die Sache ist die, dass diese Position (bei konsequenter Arbeit) meiner Meinung nach ganz natürlich und richtig ist. Aus diesem Grund habe ich diese Frage noch nie gestellt. Das ist richtig, weil es sonst zu Fehlern in der Finanzbuchhaltung von Positionen kommen kann. Dies kann jedoch auf Serverebene unterbunden werden - es wird geprüft, ob etwas korrekt ist oder nicht. Aber selbst in diesem Fall gäbe es bei der Arbeit mit Expert Advisors und dem Terminal zu viele unnötige und fehlerhafte Befehle, die den Handelsstrom mit unnötigem "Müll" verstopfen würden. Und so weiter.

Alle Skripte und Expert Advisors arbeiten in ihren eigenen Threads. Die Handelsaufträge werden von ihnen in einer separaten Warteschlange gesammelt. Dann werden sie auf die freien Handelsströme verteilt. Die Anzahl der freien Handelsströme kann gleich 8 sein.

Print() gibt aus, was zum Zeitpunkt der Ausgabe zur Verfügung steht. Das Vorhandensein mehrerer Threads kann anhand des Protokolls festgestellt werden. Die Ausgabe wird ganz am Anfang der Funktion start() und ganz am Ende angezeigt. Legen Sie eine Verzögerung dazwischen. Führen Sie mehrere Expert Advisors mit verschiedenen Tools aus. Sehen Sie sich das Protokoll an. Sie werden sehen, dass sich zwischen der Ausgabe eines Expert Advisors die Ausgaben anderer Expert Advisors befinden.

void start()
 {
  Print(Symbol(), " Start");
  Sleep(3000);
  Print(Symbol(), " End");
 }