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
Okay, gestern haben wir uns ein wenig aufgeregt, ich nehme an, du hast auch den "Border Guard Day" gefeiert wie ich.
Kannst du mir einen Link zur korrekten Synchronisation der Takte geben, denn ich benutze auch diese Methode der Synchronisation durch den letzten Takt und das war's?
Ich werde Ihnen keinen Link geben (weil ich ihn noch nicht gefunden habe), aber ich werde die Methode beschreiben.
Die Methode betrifft die Synchronisierung verschiedener Instrumente, obwohl sie auch für die Synchronisierung verschiedener TFs verwendet werden kann.
Ich beschäftige mich schon lange mit diesem Problem, und SD hat sogar einen Bug-Fix für die von mir identifizierten Fehler dieser Methode gemacht.
Das Synchronisationsproblem hängt damit zusammen, dass verschiedene Instrumente eine unterschiedliche Anzahl von Balken haben. Ungefähr gleich ist ein falsches Kriterium, alles muss exakt sein. Takt zu Takt. Sonst geht der Sinn der Synchronisation verloren.
Der zweite Aspekt dieses Problems ist die Frage, wie man einen Balken anzeigt, wenn es auf dem aktuellen Instrument keinen Balken gibt.
Das Wesen der Methode ist also einfach: Die Daten des Instruments werden streng nach Zeiten abgefragt...
und die Zeitprobe wird aus dem Standardpuffer des Indikators time[] entnommen. So können Sie immer sicher sein, dass Sie einen Balken vor sich haben, der synchron mit einem Balken eines anderen Instruments kam.
Auch hier gilt: Wenn es im aktuellen Instrument keinen solchen Balken gibt, werden Sie ihn nicht anfordern. Und wenn das angeforderte Instrument keinen solchen Balken als Beispiel hat, erhalten Sie eine Null in der Zählung und können diese Ausnahme normalerweise behandeln, je nach der Logik Ihres Programms.
Implementierung der Synchronisation (in MQL4) für eine beliebige Anzahl von FIs(ab hier):
In Analogie für zwei Symbole(ab hier):
D.h. alles ist recht einfach. Eine andere Sache ist, dass die klassische barometrische (konstante Zeitdiskretisierung) Darstellung von Preis-GP nicht die einzige ist, und schon gar nicht immer richtig. Manchmal ist es äußerst nützlich, Preis-BP einer anderen Zeitdimension zu synchronisieren. Das heißt, durch die Einführung von Verzerrungen, die aus der Sicht der klassischen Zeit nicht linear sind. Dementsprechend zeigt die Korrelation dann nichtlineare Wechselbeziehungen zwischen zwei klassischen VR an.Vielen Dank für Ihre Hilfe!
Ich gebe zu, dass ich mich geirrt habe. Ich hätte nicht gedacht, dass die Synchronisierung so kompliziert ist.
Ich werde versuchen, es herauszufinden und die Balken direkt mit diesem Indikator zu synchronisieren, da ich es sehr brauche.
Vielen Dank an alle für die Informationen!
Ich habe den Indikator ein wenig umgeschrieben. Jetzt sollte er angeblich schlechte Teile der Geschichte überspringen.
Da wir begonnen haben, überprüfen Sie bitte auf Fehler :)
Ich möchte mich noch einmal für die Notwendigkeit der algorithmischen Optimierung aller Indikatoren aussprechen. Und auch für den eingebauten Mechanismus der Berechnung von Indikatorwerten im Speicher (Datei), damit bei der Testeroptimierung der Indikator nicht das Gleiche berechnet, sondern fertige Werte von dort übernimmt.
Die algorithmische Optimierung ist für jeden Indikator anders. Für verschiedene Arten der Nutzung der Korrelation habe ich zum Beispiel dies und dies getan .
Ich lese die Werte der Indikatoren, die ich im Voraus für die gesamte Geschichte berechnet habe, nur in meinem Taschenrechner ab. Das heißt, ich habe keinen universellen Mechanismus, denn ich verwende nur meine eigenen Lösungen, die keineswegs schön sind. Aber da ich für die Verbesserung von allem bin, wäre es toll, einen solchen universellen Mechanismus im Falle des Optimierers des MT5-Testers zu haben, weil er eine Beschleunigung um mehrere Größenordnungen bietet (Erfahrung bei der Verwendung in meinem Rechner), d.h. er übertrifft die Cloud in Bezug auf die Effizienz.
Hallo
Manchmal verbringe ich meine Zeit damit, die Codes anderer zu verfälschen, was in der Regel das Ergebnis eines unvollständigen oder unvollkommenen Programms ist, sowohl aus Zeitmangel als auch aus mangelndem Können.
Dieses Mal wollte ich diesen wunderbaren Indikator verfälschen und habe versucht, so etwas zu machen:
- Zeichnen Sie nur eine Linie, keine gepunktete Plotlinie
- Hinzufügen einer Menge von Symbolen wie
Dann 2 Varianten des Quellcodes zu erstellen:
- Visuelle Variante: eine farbige Linie für jedes der Währungspaare Korrelation 1 dicke Linie, die nur der Durchschnitt von 7 Linien ist ((A+B+C+D+E+F+G)/7)
- Keine visuelle Variante: Nur 1 Linie, die das Ergebnis der obigen Formel ist ((A+B+C+D+D+E+F+G)/7)
Fast wie die Addition von 7 (oder 8) ursprünglichen Korrelationsindikatoren, aber alle summiert, so dass nur Durchschnitte wie bei der Version, von denen eine 7 Linien + 1 (Durchschnitt) ist, und die andere Version mit 1 Linie (nur Durchschnitt).
etwas wie dies:
Aus einer Reihe von Gründen tut der verstümmelte Code nicht das, was ich tun will, weil er völlig logische Fehler enthält.
Das Hauptproblem liegt bei den Puffern, der Synchronisierung und dem rekursiven Einrücken des Codes:
if(bars1>bars2) { minBars=bars2; bars2=bars1-bars2; etc...+ sowie andere logische Fehler.
wurden einige Print()-Funktionen hinzugefügt, um bei der Verfolgung von Variablenwerten zu helfen, und return 0-Anweisungen wurden auskommentiert, um herauszufinden, wo der Code logisch versagt.
Code und Datei