[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

 
Können Sie bitte mitteilen, ob es möglich ist, eine Position manuell im Metatrader4 Strategy Tester zu eröffnen, anstatt einen Expert Advisor zu verwenden? Um Pips nicht in einem Taschenrechner zu berechnen, sondern die Taste zu drücken, erscheint ein Fenster zur Ordereröffnung, füllen Sie die Daten aus und drücken Sie F12 und der Tester selbst wird wie bei der Eröffnung durch einen EA berechnen. Wahrscheinlich gibt es ein fertiges Programm für diesen Zweck, ich habe es bei meiner Suche nicht gefunden.
 
Guten Tag zusammen. Ich habe eine Frage, mehrere Fragen, um genau zu sein, helfen Sie mir.
1: Wenn ich ein Niveau habe und der Preis gleich diesem Niveau ist, eröffne ich einen Auftrag. Die Frage ist, wenn der Preis kann dieses Niveau überspringen, fliegen durch sie schnell und nicht gleich das Niveau, das ich habe oder wenn ich ein GAP, eine Bestellung wird geöffnet, wo es sein sollte, dh auf dem Niveau?
2: Ich habe Fehler im Protokoll, ich möchte wissen, was sie bedeuten. [B]1-Signal-gescheitertes Parsen von Signalen,[/B] [B]2-DataCenter-Verbindung gescheitert [2] und [6][/B] 3-(ich erinnere mich nicht genau, aber es sagt komplett deaktiviert beim Ändern der Bestellung)? Bitte beraten Sie mich, was in diesen oder anderen Fällen zu tun ist, vielen Dank nochmals!
 
TarasBY:

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.


 
solnce600:

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.

Sie wenden Ihre Argumentation an, nachdem Sie den Abdruck gemacht haben. Haben Sie den Abdruck gemacht (Sie brauchen nichts daran zu ändern)? - Zeigen Sie mir, was da drin ist.
 

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?

 
solnce600:

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:

if( (NormalizeDouble (Bid-massiv[S],Digits) <=0))

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> 
 
solnce600:

Ich habe festgestellt, dass

-im Prüfgerät im Protokoll im Drucker- 4 Zeichen

Dokumentation lesen https://docs.mql4.com/ru/common/print

void Print( ...)
Druckt eine Nachricht in das Expertenprotokoll. Die Parameter können von beliebigem Typ sein. Die Anzahl der Parameter darf 64 nicht überschreiten.

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.
 
TarasBY:

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.

Ich bin mir nicht ganz sicher, was die binäre Suche bedeutet. Handelt es sich um eine Suche in einem zweidimensionalen Feld? Aber ich habe eine eindimensionale.
 
wie man die Fibonacci-Periode in mt 4 200 144 89 55 34 anpasst
Grund der Beschwerde: