Fehler, Irrtümer, Fragen - Seite 686

 
abolk:
Eine andere Möglichkeit besteht darin, den Eröffnungskurs als den Kurs zu betrachten, der in der vorherigen Preisspanne gebildet wurde. Das Beispiel der Marktöffnung hat gezeigt, dass dies falsch ist.

Schieben Sie diesen Unsinn nicht auf mich. Ich wiederhole:

Der Vorschlag ist elementar: Bilden Sie die Balken nach einem Zeitmodell, wenn der Eröffnungskurs dem IST-Kurs zum Zeitpunkt der Bildung der Minute entspricht. ACTUAL (tatsächlich vorhandener Geldkurs), nicht der Schlusskurs des vorherigen Balkens!

Der Markt für jedes ZI wird zu dem Zeitpunkt eröffnet, an dem der Angebotspreis für dieses ZI erscheint. In der gleichen FOREX öffnet der Markt nicht für alle FI auf einmal.

 
abolk:

Sie selbst haben die Regel abgeleitet: "Kein Preis, keine Bar".

Wenn der Markt offen war, aber keine Liquidität (Verkäufer oder Käufer) vorhanden war, gab es auch keinen Preis. Es gab entweder einen "Briefkurs" oder einen "Geldkurs", aber in Abwesenheit einer der Parteien des Geschäfts - der Preis war nicht vorhanden, es gab nur den Preis der vorherigen Periode.

Und es ist richtig, wenn die Entscheidung über den Preis im Falle einer Synchronisierung mit mehreren Währungen vom TS selbst und nicht vom Terminal getroffen wird. Denn die Frage, was der Preis ist, wenn es keinen Preis gibt, ist nicht eindeutig zu beantworten.

Okay, Andrew, du hast mich fast überzeugt.

Dann soll das Terminal die vom Growler verpassten Balken mit NAN füllen - ich stimme zu! Aber es entfernt sie nicht unwiderruflich aus der Zeitreihe (mit den üblichen Mitteln). Alles, was ich brauche, ist ein Standard-Synchronisationstool. Ich werde selbst entscheiden, womit ich die "undefinierten" Balken fülle. Ich bin sogar (zumindest) bereit, die verpassten Balken nicht anzuzeigen, auch wenn ich dadurch die Charts verschiedener Instrumente nicht visuell vergleichen kann.Aber ich benötige synchronisierte (nach Taktnummer) Kurse für Berechnungen. Meine Frage ist also - bin ich der einzige Originalentwickler oder benötigt jemand anderes sie? Wie viel Prozent derjenigen, die sie benötigen? Wächst oder schrumpft dieser Prozentsatz? Und schließlich, welcher Compiler erzeugt schnelleren Code - MQL5 oder C++?

 
Die Aufgabe ist einfach: Der Prüfer soll so wenig Ungenauigkeiten wie möglich machen. Im Moment lügt der Tester fast immer, indem er sagt, dass der Preis zum Zeitpunkt der Bildung der Minute gleich dem Eröffnungskurs des Balkens war. Dies ist der Grund, warum Arbitrage im Tester immer zu offenen Preisen stattfindet, während es zu geschlossenen Preisen keine Arbitrage gibt. Die Verwendung des potischen Modells der Balkenbildung hat zur Folge, dass TC seine Rechenressourcen für die Synchronisierung mehrerer FI mit Balkenschlusskursen aufwenden muss. Die Entwickler sparen sich die Spiele, damit die Benutzer nicht jedes Mal, wenn sie im Tester laufen, eine Menge Rechenressourcen für eine stupide Synchronisierung verschwenden. Sie lassen sie diese Synchronisierung nicht durchführen, bevor die Optimierung läuft.
 
hrenfx:

Der Markt für jedes ZI öffnet sich, wenn es einen Angebotspreis für dieses ZI gibt. Im Devisenhandel wird der Markt nicht für alle Finanzinstitute gleichzeitig geöffnet.

Dann bleibt nur die Möglichkeit, alle Marktteilnehmer zu zwingen, ausschließlich zur gleichen Zeit zu handeln.

Eine der Fragen bei Mehrwährungsstrategien ist, ob es richtig ist, zu einem bestimmten Zeitpunkt den letzten Kurs, der so und so lange zurückliegt, als angemessen zu betrachten.

 
abolk:

Eines der Probleme bei Strategien mit mehreren Währungen ist die Frage, ob es richtig ist, den letzten Kurs, der vor so langer Zeit stattgefunden hat, zum jetzigen Zeitpunkt als angemessen zu betrachten oder nicht.

Das ist absolut richtig, solange sich der vergangene Kurs auf die aktuelle Handelssitzung bezieht. Nehmen wir noch einmal die Preise für Kartoffeln.
Документация по MQL5: Получение рыночной информации / SymbolInfoSessionQuote
Документация по MQL5: Получение рыночной информации / SymbolInfoSessionQuote
  • www.mql5.com
Получение рыночной информации / SymbolInfoSessionQuote - Документация по MQL5
 
hrenfx:
Absolut richtig, wenn sich der vergangene Kurs auf die aktuelle Handelssitzung bezieht. Nehmen Sie noch einmal die Kartoffelpreise.
Richtig, wenn Sie den vergangenen Preis bei Ihren Entscheidungen in der aktuellen Sitzung berücksichtigen, aber es ist falsch, den vergangenen Preis der aktuellen Sitzung zuzuschreiben. Die Definition des Preises, die ich oben gegeben habe. Wir müssen zwischen dem "Preis für den Kauf/Verkauf", dem "Preis für die Nachfrage" und dem "Preis für das Angebot" unterscheiden. Wir "kennen den Angebotspreis nicht". Eine Handelssitzung basiert auf ihrem "Kauf-/Verkaufspreis". Sie hingegen schlagen vor, die Handelssitzung auf der Grundlage der "Kauf-/Verkaufspreise" des vorangegangenen Zeitraums zu berechnen. Warum sollten diese Preise in die aktuelle Periode übertragen werden, wenn sie in der letzten Periode gebildet wurden und bereits bekannt sind und bezogen werden können.
 
abolk:
Es ist richtig, wenn Sie den Preis der vergangenen Sitzung bei Ihren Entscheidungen in der aktuellen Sitzung berücksichtigen, aber es ist falsch, den Preis der vergangenen Sitzung auf die aktuelle Sitzung zu beziehen.

Steht das nicht auch hier?

hrenfx:
Das ist absolut richtig, wenn Sie den vergangenen Kurs mit der aktuellen Handelssitzung in Beziehung setzen. Nehmen wir noch einmal die Preise für Kartoffeln.

Nennen Sie mir eine Schwachstelle in diesem Modell der Balkenbildung:

Es kommt eine neue Minute - ein Balken wird gebildet, dessen Eröffnungskurs dem Geldkurs zum Zeitpunkt der neuen Minute entspricht. In diesem Fall, wenn der Angebotspreis zum Zeitpunkt der neuen Minute (Eröffnung einer Handelssitzung) nicht verfügbar ist, wird kein Balken gebildet oder mit dem Wert NAN (für den Eröffnungskurs, wie High, Low und Close bereits sein können). Während einer geschlossenen Handelssitzung werden keine Balken gebildet.

 
hrenfx:

Nennen Sie mir eine Schwachstelle in diesem Modell der Balkenbildung:

Es kommt eine neue Minute - ein Balken wird gebildet, dessen Eröffnungskurs der Geldkurs zum Zeitpunkt der neuen Minute ist. In diesem Fall, wenn der Angebotspreis zum Zeitpunkt einer neuen Minute (Eröffnung einer Handelssitzung) nicht verfügbar ist, wird der Balken nicht gebildet oder mit dem Wert NAN gebildet. Während einer geschlossenen Handelssitzung werden keine Balken gebildet.

Die Hervorhebung ist aufgrund der Definition des Preises falsch. Sie setzen ständigden "Preis des letzten Geschäfts" mit dem "Preis eines noch nicht ausgeführten Geschäfts" gleich. Darüber hinaus haben wir bereits eine fragwürdige Annahme getroffen, als wir den "letzten Handelspreis" mit dem "Geldkurs" gleichsetzten. Fangen Sie immer wieder an, die Messlatte auf "Angebotspreise" zu legen? Wie hoch sind diese Preise? Woher kennen wir sie?
 
abolk:
Die Hervorhebung ist aufgrund der Definition des Preises falsch. Sie setzen ständig den"Preis der letzten Transaktion" mit dem "Preis einer Transaktion, die noch nicht stattgefunden hat" gleich. Darüber hinaus haben wir bereits eine fragwürdige Annahme getroffen, als wir den "Preis des letzten Geschäfts" mit dem "Angebotspreis" gleichsetzten. Fangen Sie immer wieder an, die Messlatte auf "Angebotspreise" zu legen? Wie hoch sind diese Preise? Woher kennen wir sie?

Sie unterstellen mir ständig irgendwelchen Unsinn, den Sie zwischen den Zeilen lesen. Hier ist ein konkretes Beispiel für die Umsetzung meines Vorschlags

  1. 00:59:58 - Der EURUSD-Kurs notiert bei 1,2301.
  2. 00:01:00 - der Preis von 1,2301 ist seit 2 Sekunden gültig, weshalb der Eröffnungskurs des 00:01-Balkens gleich diesem Preis ist - 1,2301.

Ein weiteres Beispiel:

  1. Eröffnung der Börsensitzung um 00:00:00 Uhr.
  2. Der erste Kurs erscheint um 00:02:34 - 1,2301. Innerhalb einer Minute bewegt sich der Kurs dann in der Spanne von 1,2290 - 1,2310. Und am Ende von 00:02:02 Minuten wird es 1,2305.

In diesem Beispiel haben wir drei Balken:

  • 00:00 - {NAN, NAN, NAN, NAN} (OHLC);
  • 00:01 - {NAN, NAN, NAN, NAN} (OHLC);
  • 00:02 - {NAN, 1,2310, 1,2290, 1,2305} (OHLC);

Wo liegt der Fehler?

 
MetaDriver:

Okay, Andrew, du hast mich fast überzeugt.

Dann soll das Terminal die vom Growl verpassten Balken mit dem NAN-Wert füllen - ich stimme zu!!! Aber es entfernt sie nicht unwiderruflich aus der Zeitreihe (mit Standardmitteln). Alles was ich brauche, ist ein Standard-Synchronisationstool. Ich werde selbst entscheiden, womit ich die "undefinierten" Balken füllen will.Ich kann mich sogar (zumindest) damit einverstanden erklären, dass die verpassten Balken nicht angezeigt werden, obwohl mir dadurch die Möglichkeit genommen wird, die Charts verschiedener Instrumente visuell zu vergleichen. Aber für Berechnungen benötige ich synchronisierte (nach Balkennummer) Kurse.

Ich kann nichts über das Vorhandensein oder Nichtvorhandensein von "gescheiterten" Balken sagen - für mich ist das nicht entscheidend. Ich weiß auch nicht, ob es Probleme bei der Umsetzung gibt. Vielleicht sind sie unverzichtbar und die derzeitige Lösung ist ein Kompromiss. Wenn es so wichtig ist und es nicht im Terminal vorhanden ist, kann das "Zeichnen" von "ausgefallenen" Balken manuell durchgeführt werden.