Fragen von Anfängern MQL5 MT5 MetaTrader 5 - Seite 573
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 werde sehen, was ich herausfinden kann. Danke. (lacht)
Bitte sehr. Es speichert einfach alle Höchstwerte in einem Array und gibt dann alle im Array gespeicherten Daten in einer Schleife in das Protokoll aus.
Dieses Skript tut nicht unbedingt genau das, was Sie von ihm erwarten. Sie zeigt lediglich, wie die Daten in dem Array gespeichert werden.
Ganz und gar nicht. Es speichert einfach alle Höchstwerte in einem Array und gibt dann alle im Array gespeicherten Daten in einer Schleife im Logbuch aus.
Dieses Skript tut nicht unbedingt genau das, was Sie brauchen. Sie zeigt lediglich das Prinzip der Speicherung von Daten in einem Array.
Das ist genau das, wonach ich gesucht habe. Ich musste die Daten irgendwie in einem Array für den von mir gewählten Zeitraum speichern. Das ist der Teil, den ich von Ihnen verstanden habe.
Meine Frage ist nun, WIE kann ich auf die aufgezeichneten Daten im Array zugreifen und sie vergleichen?
Hier stellt sich heraus, dass man iterativ vorgeht und das Array Schritt für Schritt schreibt. Das ist gut. Aber jetzt müssen wir die Elemente miteinander vergleichen.
Ist es notwendig, eine neue Iterationszahl zu deklarieren und dann die Daten abzurufen und sie irgendwie zu vergleichen? Aber das wiederum muss die Ergebnisse irgendwo hinschreiben und ... Am Ende wiederholt sich alles.
Grob gesagt, wenn der Vergleichszeitraum 5-7 Kerzenständer umfasst, dann sollte der erste mit den anderen 6 verglichen werden, dann der zweite und so weiter.... Und wenn zwei oder mehr von ihnen den gleichen Höchststand haben, dann sollten Sie erstens diesen Höchststand berechnen und zweitens die Kerze mit dem niedrigsten Tiefststand finden. D.h. die Funktion, am Ende konkrete Kerzenständer aufzurufen, um alle ihre Parameter zu holen.
Ist dies generell möglich?
das ist genau das, wonach ich gesucht habe. Was ich brauchte, war eine Möglichkeit, die Daten in einem Array für den von mir ausgewählten Zeitraum zu speichern. Diesen Teil habe ich verstanden.
Meine Frage ist nun, WIE kann ich auf die aufgezeichneten Daten im Array zugreifen und sie vergleichen?
Hier stellt sich heraus, dass man iterativ vorgeht und das Array Schritt für Schritt schreibt. Das ist gut. Aber jetzt müssen wir die Elemente miteinander vergleichen.
Ist es notwendig, eine neue Iterationszahl zu deklarieren und dann die Daten abzurufen und sie irgendwie zu vergleichen? Aber das wiederum muss die Ergebnisse irgendwo hinschreiben und ... Am Ende wiederholt sich alles.
Grob gesagt, wenn der Vergleichszeitraum 5-7 Kerzenständer umfasst, dann sollte der erste mit den anderen 6 verglichen werden, dann der zweite und so weiter.... Und wenn zwei oder mehr von ihnen den gleichen Höchststand haben, dann sollten Sie erstens diesen Höchststand berechnen und zweitens die Kerze mit dem niedrigsten Tiefststand finden. D.h. die Funktion, am Ende konkrete Kerzenständer aufzurufen, um alle ihre Parameter zu holen.
Aber ist es überhaupt möglich, dies zu tun?
Hier fragen wir nur das gespeicherte Array ab und zeigen alle gespeicherten Daten im Protokoll an:
Lassen Sie uns die Aufgabe etwas genauer formulieren:
Wir müssen ... was genau in dem gespeicherten Array finden?
Hier wird das gespeicherte Array abgefragt, und alle gespeicherten Daten werden protokolliert:
Lassen Sie uns die Aufgabe genau beschreiben:
Wir müssen in dem gespeicherten Array finden ... was genau?
Ich muss ein Array von Daten für alle geschlossenen Kerzen aufzeichnen (d.h. die aktuelle wird nicht gezählt) - High, Low, Open, Close Candles (4 Parameter) für den Zeitraum, der in den Einstellungen angegeben ist. - es ist.
Als nächstes muss ich die Parameter vergleichen. Angenommen, der Suchzeitraum beträgt 10 Kerzenständer. Hier müssen wir alle Hochs für den Zeitraum von 10 Kerzenständern überprüfen. Wenn es zwei oder mehr Übereinstimmungen gibt, sollten wir zurückkehren:
1. Flagge - "Es gibt eine Übereinstimmung".
1. Der Höchstwert, bei dem die Candlesticks denselben Wert haben.
2. Die Nummern dieser Candlesticks, so dass wir uns auf sie beziehen und die Parameter Low, Close, Open für sie herausfinden können.
Im Allgemeinen verstehe ich viel davon, wie man es macht.
Unklar ist, wie die Kerzen, die das Niveau bilden, bezeichnet werden sollen. Idealerweise könnte man sich bei der Neuberechnung die Anzahl der Iterationen (i) merken, aber zuerst wird eine Neuberechnung durchgeführt, nach der das Protokoll geschrieben wird und nicht angewendet werden kann.
Und in dieser Variante, wie die Ausgabe protokolliert - auch hier ist nicht, was erforderlich ist.
Ich verstehe, dass ich zuerst eine Kerze 1 nehmen und sie mit 9 anderen vergleichen muss, wenn es eine Übereinstimmung gibt, dann extrahiere ich die Nummern dieser Kerzen und ihre Parameter und schalte das Kontrollkästchen ein. Prüfen Sie dann Kerze 2 mit den anderen und so weiter bis zur Mitte der Probe, denn dann gehen Duplikate von Vergleichen nur von der anderen Seite.
Wäre die Anzahl der Candlesticks festgelegt, hätte ich es so geschrieben - etwa 5 Vergleichszyklen. Aber das ist die Frage - wie kann man eine solche Neuberechnung für jede Stichprobengröße ermöglichen.
Ich muss ein Array von Daten für alle geschlossenen Kerzen schreiben (d.h. die aktuelle wird nicht gezählt) - High, Low, Open, Close Candles (4 Parameter) für den in den Einstellungen angegebenen Zeitraum. - es ist.
Als nächstes muss ich die Parameter vergleichen. Nehmen wir an, der Suchzeitraum beträgt 10 Kerzenständer. Hier müssen wir alle Hochs für den Zeitraum von 10 Kerzenständern überprüfen. Wenn es zwei oder mehr Übereinstimmungen gibt, sollten wir zurückkehren:
1. Flagge - "Es gibt eine Übereinstimmung".
1. Der Höchstwert, bei dem die Candlesticks denselben Wert haben.
2. Die Nummern dieser Candlesticks, so dass wir uns auf sie beziehen und die Parameter Low, Close, Open für sie herausfinden können.
Im Allgemeinen verstehe ich viel davon, wie man es macht.
Unklar ist, wie die Kerzen, die das Niveau bilden, bezeichnet werden sollen. Idealerweise könnte man sich bei der Neuberechnung die Anzahl der Iterationen (i) merken, aber zuerst wird eine Neuberechnung durchgeführt, nach der das Protokoll geschrieben wird und nicht angewendet werden kann.
Und bei dieser Variante ist dies - wie das Ausgabeprotokoll belegt - auch nicht erforderlich.
Ich verstehe, dass ich zuerst eine Kerze 1 nehmen und sie mit 9 anderen vergleichen muss, wenn es eine Übereinstimmung gibt, dann extrahiere ich die Nummern dieser Kerzen und ihre Parameter und schalte das Kontrollkästchen ein. Dann überprüfen Sie Kerze 2 mit den anderen und so weiter bis zur Mitte der Probe, denn dann gehen die Duplikate der Vergleiche nur von der anderen Seite.
Wäre die Anzahl der Candlesticks festgelegt, hätte ich es so geschrieben - etwa 5 Vergleichszyklen. Aber das ist die Frage - wie kann man eine solche Neuberechnung für jede Stichprobengröße ermöglichen.
Übrigens ist es unwahrscheinlich, dass die Preiswerte genau übereinstimmen. Wir müssen ein gewisses Delta festlegen und betrachten es als Zufall, wenn die Preise nicht mehr als diesen Wert abweichen.
Ich muss ein Array von Daten für alle geschlossenen Kerzen schreiben (d.h. die aktuelle wird nicht gezählt) - High, Low, Open, Close Candles (4 Parameter) für den in den Einstellungen angegebenen Zeitraum. - es ist.
Als nächstes muss ich die Parameter vergleichen. Nehmen wir an, der Suchzeitraum beträgt 10 Kerzenständer. Hier müssen wir alle Hochs für den Zeitraum von 10 Kerzenständern überprüfen. Wenn es zwei oder mehr Übereinstimmungen gibt, sollten wir zurückkehren:
1. Flagge - "Es gibt eine Übereinstimmung".
1. Der Höchstwert, bei dem die Candlesticks denselben Wert haben.
2. Nummern dieser Kerzen, so dass wir uns auf sie beziehen und Low-, Close-, Open-Parameter für sie herausfinden können.
Im Allgemeinen verstehe ich viel davon, wie man es macht.
Unklar ist, wie die Kerzen, die das Niveau bilden, bezeichnet werden sollen. Idealerweise könnte man sich bei der Neuberechnung die Anzahl der Iterationen (i) merken, aber zuerst wird eine Neuberechnung durchgeführt, nach der das Protokoll geschrieben wird und nicht angewendet werden kann.
Und in dieser Variante, wie die Ausgabe protokolliert - auch hier ist nicht, was erforderlich ist.
Ich verstehe, dass ich zuerst eine Kerze 1 nehmen und sie mit 9 anderen vergleichen muss, wenn es eine Übereinstimmung gibt, dann extrahiere ich die Nummern dieser Kerzen und ihre Parameter und schalte das Kontrollkästchen ein. Prüfen Sie dann Kerze 2 mit den anderen und so weiter bis zur Mitte der Probe, denn dann gehen Duplikate von Vergleichen nur von der anderen Seite.
Wäre die Anzahl der Candlesticks festgelegt, hätte ich es so geschrieben - etwa 5 Vergleichszyklen. Aber das ist die Frage - wie kann man eine solche Neuberechnung für jede Stichprobengröße ermöglichen.
Anstelle der Flagge "Zufall" setzen Sie den Zähler, auf den Wert hoch, wo der Zähler am größten ist, gibt es eine Ebene
Der hohe Wert kann aufgerundet werden, z. B. 1,23456 auf 1,2346
und 1,23462 aufgerundet auf 1,2346
weil es unwahrscheinlich ist, dass von 10 Kerzenständern 2 einen Höchststand von 1,23456 haben werden
so tanzt von der Ebene
und die Anzahl der Candlesticks festgelegt ist, schreiben Sie eine bestimmte Menge an Daten in die Struktur
d.h. die Anzahl der in die Struktur geschriebenen Candlesticks entspricht der Anzahl der Iterationen
Ich muss ein Array von Daten für alle geschlossenen Kerzen schreiben (d.h. die aktuelle wird nicht gezählt) - High, Low, Open, Close Candles (4 Parameter) für den in den Einstellungen angegebenen Zeitraum. - es ist.
Als nächstes muss ich die Parameter vergleichen. Angenommen, der Suchzeitraum beträgt 10 Kerzenständer. Hier müssen wir alle Hochs für den Zeitraum von 10 Kerzenständern überprüfen. Wenn es zwei oder mehr Übereinstimmungen gibt, sollten wir zurückkehren:
1. Flagge - "Es gibt eine Übereinstimmung".
1. Der Höchstwert, bei dem die Candlesticks denselben Wert haben.
2. Nummern dieser Kerzen, so dass wir uns auf sie beziehen und Low-, Close-, Open-Parameter für sie herausfinden können.
Im Allgemeinen verstehe ich viel davon, wie man es macht.
Unklar ist, wie die Kerzen, die das Niveau bilden, bezeichnet werden sollen. Idealerweise könnte man sich bei der Neuberechnung die Anzahl der Iterationen (i) merken, aber zuerst wird eine Neuberechnung durchgeführt, nach der das Protokoll geschrieben wird und nicht angewendet werden kann.
Und bei dieser Variante ist dies - wie das Ausgabeprotokoll belegt - auch nicht erforderlich.
Ich verstehe, dass ich zuerst eine Kerze 1 nehmen und sie mit 9 anderen vergleichen muss, wenn es eine Übereinstimmung gibt, dann extrahiere ich die Nummern dieser Kerzen und ihre Parameter und schalte das Kontrollkästchen ein. Dann überprüfen Sie Kerze 2 mit den anderen und so weiter bis zur Mitte der Probe, denn dann gehen die Duplikate der Vergleiche nur von der anderen Seite.
Wäre die Anzahl der Candlesticks festgelegt, hätte ich es so geschrieben - etwa 5 Vergleichszyklen. Es stellt sich jedoch die Frage, wie eine solche Neuberechnung für jede Stichprobengröße möglich ist.
Es handelt sich um eine interessante Aufgabe, aber Ihre Vorstellung davon, wie dieses Problem zu lösen ist, ist nicht richtig, da Sie bisher nicht viel über Programmierkenntnisse verfügen.
Sehen Sie: Sie haben eine Reihe von Zitaten. Ihre Aufgabe ist es, aus dieser Menge nur die Tafeln auszuwählen, die bestimmte Bedingungen erfüllen. Sie möchten zum Beispiel eine Sammlung von Balken erhalten, deren Höchstwerte miteinander übereinstimmen. Tatsächlich kann es viele Bedingungen für die Auswahl geben, und sie können im Laufe der Zeit ergänzt werden. Sobald Sie eine Sammlung von Balken haben, können Sie alle anderen Parameter leicht analysieren.
Für Ihre Aufgabe müssen Sie also eine Funktion schreiben, die ein Array von Balken zurückgibt, die eine bestimmte Bedingung erfüllen (Pseudocode):
D.h. es ist wirklich kein Problem, sich einige Daten und Indizes zu merken und zu iterieren. Sie benötigen nicht die Indizes der Balken selbst, sondern eine bestimmte Sammlung, die eine bestimmte Bedingung erfüllt. Wenn man sie hat, kann man viele Probleme auf einen Schlag lösen.Wenn wir also für jede Kerze im Bereich eine andere Liste passender Candlesticks benötigen, würde ich versuchen, ein Array von Strukturen zu verwenden. Ich werde darüber nachdenken und Ihnen Bescheid geben.
Gedacht. Ich schreibe gerade ein Testskript:
Ich habe versucht, alle Schritte zu beschreiben.
Nach dem Eintragen aller Übereinstimmungen in der Schleife haben wir ein Array, das alle Kerzenständer und ihre passenden Kerzenständer enthält. Danach können Sie darin nach einem Tiefpunkt suchen. Und Sie können sie direkt in der Schleife organisieren. Es ist für Sie bequemer.
Nun, hier ist eine andere Möglichkeit: Für jede Kerze im Bereich werden Streichhölzer geschrieben. In der vorherigen Version wurden die Übereinstimmungen nur für eine Kerze geschrieben - d.h. es wurde keine Übereinstimmung für die Kerze geschrieben, die mit dieser übereinstimmt.