Fragen von Neueinsteigern zu MQL4 und MQL5, Hilfe und Diskussion über Algorithmen und Codes - Seite 884
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
Guten Tag, meine Herren. )) Entschuldigung für den Amateurismus...
Ich verstehe nicht, wie OrderClose funktioniert :(
Ich brauche maximal 1 Auftrag, d.h. bevor ich einen neuen Auftrag eröffne, möchte ich, dass der vorherige abgeschlossen wird...
Warum funktioniert es nicht auf diese Weise?
OrderClose(nom, 0.01, Bid,5, Red);
OrderSend(Symbol(), OP_SELL, 0.01 , NormalizeDouble(Bid,5), 3 , NormalizeDouble(Ask+0.0005,5), NormalizeDouble(Bid-0.0008,5), "", nom,0,Red);
das Protokoll flucht im Grunde über ein ungültiges Ticket.
in OrderClose anstelle von nom, was soll ich eintragen? oder denke ich überhaupt in die falsche Richtung?)
Versuchen Sie minStopLoss = Aktueller Kurs +/- (MaxValue(2*Spread, StopLoss));
Ich habe es studiert, aber nichts Neues, offenbar ist es (neu für mich) natürlich, offensichtlich für alle Eingeweihten, selbsterklärend. Ich konnte nichts Neues finden, außer der oben beschriebenen Eigenschaft der gegenseitigen Anordnung von Puffern während der Indizierung. Diese Sequenz respektiert, bekam ein noch kitschigeres Bild.
Bilder unten, Datei im Anhang
Vielleicht haben Sie Pech, aber ich mag es nicht, im Code anderer Leute herumzustochern. Umso mehr, wenn es darum geht, sie zu reparieren...
Die nächste Frage: Wie oft, glauben Sie, wird der Indikatorwert genau 50 betragen?
ColorHistogram_2Buffer1[i]=50;
So wie ich das Problem verstanden habe, sollte es eine Farbe >50 und eine andere <50 sein, aber ich habe keine ==50 gesehen. Um den Verlust im Fall ==50 auszuschließen, müssen wir natürlich einen der Vergleiche >=50 oder einen anderen <=50 hinzufügen, wie es die Religion erlaubt. Es könnte besser aussehen.
Und die zweite Frage: Wie oft, glauben Sie, war es notwendig, die gesamte Indizierung der Puffer zu ändern? Haben Sie nach der Neuindizierung alles im Code genau festgelegt? Vielleicht wäre es einfacher, den Farbpuffer auf Index 4 und die Hilfspuffer 5 und 6 entsprechend zu setzen. Es wäre weniger notwendig, den Text zu bearbeiten, und die Wahrscheinlichkeit, dass weitere Fehler auftreten, wäre geringer.
Ich habe es versucht. Zwei Spreads ist 24, wird nicht so funktionieren, beginnt bei 19 vom Schlusskurs zu arbeiten. Ausgehend vom aktuellen Eröffnungskurs arbeitet er mit drei Spreads.
Geprüft. Werke
Das ist alles seltsam, es sagt dasselbe minStopLoss = Current Price +/- (max value(2*Spread, StopLoss)), nur unter Current Price verstehen wir nicht den offenen Preis der Order, sondern den Spiegelpreis.
Warum ist die Doppelseite geeignet?
Es stellen sich zwei weitere Fragen.
1. Warum wird SymbolInfoInteger verwendet, um Digits() und Point(); Werte zu erhalten?
2. Warum wird vor dem Aufruf der Funktion SymbolInfoInteger ein Eintrag (int) verwendet? Soweit ich weiß, handelt es sich um eine Zwangsumwandlung.
Ich habe es überprüft. Es funktioniert
Das ist alles seltsam, sie schreiben immer noch das gleiche minStopLoss = Current Price +/- (maxZen(2*Spread, StopLoss)), aber der Current Price ist nicht der Eröffnungskurs der Order, sondern der Spiegelkurs.
Warum ist die Doppelseite geeignet?
Es stellen sich zwei weitere Fragen.
1. Warum wird SymbolInfoInteger verwendet, um Digits() und Point(); Werte zu erhalten?
2. Warum wird vor dem Aufruf der Funktion SymbolInfoInteger ein Eintrag (int) verwendet? Soweit ich weiß, handelt es sich um eine Zwangsumwandlung.
Um Punkt() zu erhalten, wird SymbolInfoInteger in keiner Weise funktionieren.))
Im Allgemeinen ist zu beachten, dass Point() oder _Point nur für das aktuelle Symbol gilt. Für andere Zeichen als das, mit dem der EA arbeitet, müssen Sie genau diese Funktion verwenden.
Die Funktion SymbolInfoInteger liefert nicht nur int-Werte, sondern auch long, bool und Aufzählungen.
Sergey Voytsekhovsky, vielen Dank für Ihre Hilfe. Und noch eine Frage, wenn es Ihnen nichts ausmacht, schlagen Sie bitte die umgekehrte Funktion zur FunktionCharToStr
vor(um einen Code aus einem Symbol zu erhalten), denn ich habe Funktionen dafür in Beisic und Delphi, aber in C++ gibt es, soweit ich weiß, zwei Methoden:
1 -Ascii_cod-Funktion, die nicht in mql4 enthalten ist
2. - Direkte Typkonvertierung. Mein Code lautet jedoch
string st="A";
Print ("Zeichencode A=",(int)st);
Gibt Text aus Zeichencode A=0.
Was ist zu tun?
Sergey Voytsekhovsky, ich danke Ihnen für Ihre Hilfe. Und eine weitere Frage, wenn Sie nichts dagegen haben, könnten Sie die Funktion Reverse-FunktionCharToStr
(um seinen Code von einem Symbol zu erhalten)vorschlagen, denn ich habe Funktionen für es in Beisic und Delphi, aber in C++, wie ich es verstehe, gibt es zwei Methoden:
1 -Ascii_cod-Funktion, die nicht in mql4 enthalten ist
2. - Direkte Typkonvertierung. Mein Code lautet jedoch
string st="A";
Print ("Zeichencode A=",(int)st);
Gibt Text aus Zeichencode A=0.
Was ist zu tun?
StringToCharArray konvertiert im Gegensatz zur Wiki-Funktion nicht nur ein Zeichen auf einmal, sondern kann eine Zeichenkette in ein Array vom Typ ucar mit den Codes aller Zeichen der Zeichenkette konvertieren .
mql4 hat ebenfalls eine solche Funktion.
Um Punkt() zu erhalten, wird SymbolInfoInteger in keiner Weise funktionieren.))
Im Allgemeinen ist zu beachten, dass Point() oder _Point nur für das aktuelle Symbol gilt. Für andere Zeichen als die, mit denen der Expert Advisor arbeitet, sollten Sie diese Funktion verwenden.
Die Funktion SymbolInfoInteger liefert nicht nur int-Werte, sondern auch long, bool und Aufzählungen.
Eigentlich hat Point den doppelten Wert. Dies bedeutet, dass wir es von SymbolInfoDouble aus aufrufen sollten
Nun, Point hat eigentlich einen Wert von Double. Dies bedeutet, dass die Anfrage von SymbolInfoDouble gestellt werden sollte.
Es geht um diese Funktionen für MQL4 aus Beitrag #65:
Ich habe nicht gesehen, wo Point über SymbolInfoInteger() erhalten wird.
Es geht um die MQL4-Funktionen aus Beitrag #65:
Ich habe nicht gesehen, wo Point über SymbolInfoInteger() erhalten wird.
Ja, dasselbe. Wir sind da durchgerutscht. Die Hauptsache ist, dass er versteht, was los ist...