[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 235
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
Um zu verstehen, was vor sich geht, müssen Sie die Berechnungen auf dem Drucker ausgeben:
und analysieren Sie die Ergebnisse.ICH HABE GEMERKT, DASS ICH ETWAS MISSVERSTANDEN HABEN MUSS.
So habe ich mir die Ausführung der Bedingung in der if-Kopfzeile vorgestellt
-Programm erhält den Wert der Variable Bid (0.86084)
-Zieht den Wert der Variablen Bid (0,86084) vom Wert der Variablen massiv[S] (0,85375) ab
-Zuordnung der erhaltenen Differenz 0,00709 zur Konstante 0
-Wenn die Differenz > 0 ist, ist die Kontrolle im Körper der if-Anweisung nicht gegeben und die Bestellung wird nicht geöffnet
-Wenn die Differenz <= 0 ist, wird die Kontrolle an den Körper der if-Anweisung übergeben und die Bestellung geöffnet
So habe ich mir die Ausführung der Funktion ArrayBsearch( massiv, value,WHOLE_ARRAY, 0, MODE_ASCEND) vorgestellt
TIPP: Gibt den Index des ersten gefundenen Elements in der ersten Array-Dimension zurück.
Gibtes kein Element mit dem angegebenen Wert im Array, gibt die Funktion den Index des wertmäßig nächstgelegenen Elements zurück, zwischen dem sich der gesuchte Wert befindet.
-Die Funktion erhält den Wert, der dem Preis des letzten Ticks entspricht (Bid-0.86084)
Die Funktion durchläuft die Array-Werte vom kleineren bis zum größeren Wert - sie findet keine vollständige Übereinstimmung zwischen einem beliebigen Wert des Arrays und dem Wert
- Da es keinen Wert 0.86084 im Array gibt, gibt die Funktion den nächstkleinerenWert des Arrays zurück . d.h. 0 .820864(first),0.81074,0.85375,0.80084,0.81084,0.86088(last) d.h. 0.85375 ist der nächstkleinere Wert zu 0.86084 dem kleineren Wert . Der gesuchte Wert liegtzwischen 0,85375 und 0,86088=0 ,86084
=====================================================================================================
DieParameter in Ihrer Funktion print neben dem Wert des Elements massiv[S] sind: massiv[S-1] und massiv[S+1]. Vom Wert von massiv[S]( 0,85375) ziehen Sie zunächst 1 ab und addieren dann 1.
Ich habe nicht gelesen, wenn in Kopfzeile (oder in ArrayBsearch()) von arrayiv[S] Wert 1 zuerst subtrahiert wird, und dann 1 hinzugefügt wird.
Ich wäre Ihnen dankbar, wenn Sie mir diesen Punkt erläutern oder mir einen Link nennen könnten.
Ich danke Ihnen.
DieFunktion print hat weitereParameter - massiv[S-1] und massiv[S+1]. Sie wollen 1 vom Wert von massiv[S]( 0,85375) abziehen und danach 1 hinzufügen.
Ich habe in keinem MQL-Lehrbuch gelesen, dass Header (oder ArrayBsearch() ) zuerst 1 vom massiv[S]-Wert subtrahiert und dann 1 dazu addiert.
Ich wäre Ihnen dankbar, wenn Sie mir diesen Punkt erläutern oder mir einen Link nennen könnten.
Ich danke Ihnen.
Drucken Sie diesen Link aus.
http://clip2net.com/s/4MRjJe
Ich habe festgestellt, dass
- der Wert von massiv[0] (wahrscheinlich [S]) ist der erste Wert des Arrays, mit dem begonnen wird
- Der Wert von massiv[1] (wahrscheinlich [S+1] ) ist der zweite Wert der Matrix, d. h. er folgt auf den Wert, mit dem die Matrix beginnt.
-Diese Werte werden bei jedem Auftreten von PRINT wiederholt.
=============================================
- im Jahr 2000 hatte der Preiswert 4 weitere Stellen nach dem Punkt.
- im Tester auf der Karte - 5 Ziffern
-im Tester im Ergebnis - 5 Zeichen
-im Prüfgerät im Protokoll im Drucker - 4 Zeichen
Und ich habe 5 Ziffern in dem Array.
QUESTION - Wie viele Ziffern liest die Software?
Drucken Sie diesen Link aus.
https://www.mql5.com/go?link=http://clip2net.com/s/4MRjJe
Sie sehen dort nichts???
Ich sehe, dass ArrayBsearch() 0 (als Element-Index) ÜBERALL zurückgibt. In der 0. Zelle Ihres Arrays steht die Zahl 1,0408. Kehren wir zum Code zurück:
Ersetzen Sie nun die erhaltenen Variablenwerte in dieser Bedingung (auf dem Karit liegt Bid im Bereich 0,8-0,9, nehmen wir das Maximum dieses Bereichs - 0,9): if (0,9000 - 1,0408 <= 0) OrderSend(). Die Bedingung ist erfüllt RICHTIG!!! Suchen Sie nach Fehlern bei der Vervollständigung Ihres Arrays. Vermutlich haben Sie diese Klausel in der Funktion ArrayBsearch() nicht beachtet:
Hinweis: Die binäre Suche verarbeitet nur sortierte Arrays. Die Funktion ArraySort() wird verwendet, um ein numerisches Array zu sortieren.
P.S. Der Ausdruck sollte vorzugsweise nicht als Bild, sondern durch gleichzeitige Auswahl mehrerer Zeilen (mit SHIFT - falls Sie nicht wissen, wie das geht) dieses Ausdrucks (10-20 Zeilen reichen aus) im Terminal-Fenster erfolgen, dann kopieren Sie die ausgewählten Zeilen und fügen Sie sie mit der SRC-Taste als Code in Ihren Beitrag ein.
P.P.S. Mir ist gerade der offensichtliche Syntaxfehler aufgefallen - diese Zeile sollte außerhalb (vor) der start()-Funktion stehen:
#include <MASSIV.mqh>
Ich habe festgestellt, dass
-im Prüfgerät im Protokoll im Drucker- 4 Zeichen
Dokumentation lesen https://docs.mql4.com/ru/common/print
Arrays können nicht an Print() übergeben werden. Arrays müssen Element für Element gedruckt werden.
Daten vom Typ Double werden mit 4 Dezimalstellen nach dem Punkt gedruckt. Um eine höhere Genauigkeit zu erreichen, sollte die Funktion DoubleToStr() verwendet werden.
Sie haben dort nichts gesehen?
Ich sehe, dass ArrayBsearch() 0 (als Element-Index) ÜBERALL zurückgibt. In der 0. Zelle Ihres Arrays steht die Zahl 1,0408. Zurück zum Code:
Jetzt ersetzen wir die erhaltenen Werte der Variablen in dieser Bedingung (auf dem Karit liegt Bid im Bereich von 0,8-0,9, nehmen wir das Maximum dieses Bereichs - 0,9): if (0,9000 - 1,0408 <= 0) OrderSend(). Die Bedingung ist erfüllt RICHTIG!!! Suchen Sie nach Fehlern bei der Vervollständigung Ihres Arrays. Vermutlich haben Sie diese Klausel in der Funktion ArrayBsearch() nicht beachtet:
Hinweis: Die binäre Suche verarbeitet nur sortierte Arrays. Die Funktion ArraySort() wird verwendet, um ein numerisches Array zu sortieren.