[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 38

 
keep87:

Es ist ein wenig einfacher, wir arbeiten innerhalb der Startfunktion.

Zunächst erstellen wir eine Variable, in die wir die Richtung der letzten Kerze schreiben.

int Candle=-1;

Wir füllen es mit einigen Werten, von denen einer eine bullische Kerze anzeigt, der andere eine bärische. Wenn -1, dann ist es nichts (entweder war es nicht möglich, die Richtung zu bestimmen, oder es hat keine Richtung close=open).

Ich schlage vor, den Wert in Analogie zu einem Handelsauftrag zu verwenden: 0 - kaufen, 1 - verkaufen;

schreiben wir weiter:

if(Close[1]>Open[1]) Kerze=0; sonst
if(Close[1]<Open[1] Kerze=1;

jetzt haben wir eine Richtung definiert und können sie direkt in der Funktion OrderSend( string symbol, int cmd, ...der Rest des Mistes...) verwenden;

if(Kerze!=-1) OrderSend( Symbol(),Kerze, ...andere Sachen...);

Oder in Anlehnung an Ihre Analogie:

if(Kerze==0) OpenBuy();
if(Kerze==1) OpenSell();

Ja, es ist die gleiche Funktion wie die, die ich hier geschrieben habe, vergleiche sie mit dem, was sie zurückgibt. Ich möchte nicht den gesamten Code in start schreiben, ich lerne, alles separat zu schreiben. Und ich verstehe die Logik, danke.
 
hoz:

So verwende ich es von Zeit zu Zeit. Jetzt sehen die Funktionen wie folgt aus:

Ich lese im Logbuch:

Vom Kaufkurs zum Stoppkurs gab es also zunächst eine Differenz von 1,3204 - 1,3194 = 0,001 Punkte.

Weitere 1,3210 - 1,3201 = 0,009 Punkte

Und aus irgendeinem Grund lag der Stopp im zweiten Fall näher am Einstiegskurs, aber es lag kein Fehler vor! Ich habe darüber nachgedacht und habe es nicht verstanden.

Ich habe den Fehler später auf eine andere Weise korrigiert. Es gibt bereits Bedingungen im Kodex:

if(Preis > Ask) && if(Preis < Bid) jeweils für Kauf und Verkauf. Oder gab es eine andere Variante? Jetzt haben wir keine Fehler mehr. Aber trotzdem würde ich gerne die Meinung eines erfahreneren Programmierers hören.


Das ist es, worüber ich geschrieben habe:

Der zweite Fehler besteht darin, dass Sie nicht überprüfen, wo Sie die Bestellung aufgegeben haben.

 
r772ra:

Oder vielleicht auch nicht:

if(NumberOfPositions("EURUSD")==0 && NumberOfPositions()<10)
Und hier ist die Funktion


Das kommt der Wahrheit schon näher. Vielen Dank, ich werde es ausprobieren.
 

beraten, wenn Sie Variablen in mql4 andocken können, z. B. zwei int-Variablen und sie müssen angedockt werden, eine Variable hat die Nummer 59 und die andere 17, ich brauche, um 5917 zu bekommen ?

 
pasha5282:

Raten Sie, ob es möglich ist, Variablen in mql4 anzudocken, d.h. zwei int-Variablen und sie müssen angedockt werden, eine Variable hat die Nummer 59 und die andere 17, ich muss 5917 erhalten?


HMM. Ich habe nicht verstanden, was du meinst, bevor ich das Ganze gelesen habe :) Welche Art von Daten möchten Sie in der Ausgabe haben?

Wie sich herausstellt, sehe ich die Lösung dieser Situation folgendermaßen:

1. Konvertierung von int 59 und 17 in den Stringtyp

2. Dann werden die Daten dieser Zeichenketten miteinander verknüpft.

3. wir konvertieren sie zurück in den Typ int

Vielleicht gibt es noch andere Varianten, aber ich kann mir im Moment nichts anderes vorstellen.

 
pasha5282:

beraten, wenn Sie Variablen in mql4 andocken können, z. B. zwei int-Variablen und sie müssen angedockt werden, eine Variable hat die Nummer 59 und die andere 17, ich brauche, um 5917 zu bekommen ?

5917= (StrToInteger(DoubleToStr(59.123,0) + DoubleToStr(17.456,0))
xxx
 
in php kann man Variablen andocken, z.B. $one = 59; $two = 17; $decision = $one.$two; wir addieren also nicht zwei Zahlen, sondern "kleben" sie zusammen und erhalten 5917
 
pasha5282:
in php kann man Variablen andocken, z.B. $one = 59; $two = 17; $decision = $one.$two; wir addieren also nicht zwei Zahlen, sondern "kleben" sie zusammen und erhalten 5917

mql4 ist keine sehr mächtige Sprache, also muss ich mit dem auskommen, was ich habe...
 
hoz:

mql4 ist keine sehr mächtige Sprache, also muss ich mit dem auskommen, was ich habe...

Ich werde mich damit befassen müssen. Ich glaube, ich habe solche elementaren Dinge vergessen, aber als ich die Hilfe aufrief, habe ich sie nicht gefunden, vielleicht haben die Entwickler eine solche Option nicht vorgesehen, oder ich muss nach weiteren Informationen suchen.
 
pasha5282:

Ich werde der Sache auf den Grund gehen. Vielen Dank für mindestens eine Antwort, ich dachte, ich war dumm und nicht daran erinnern, solche elementaren Dinge, und wenn ich ging in die Hilfe, die ich nicht gefunden haben, offenbar die Entwickler haben nicht eine solche Option zur Verfügung gestellt. oder müssen für mehr zu suchen, in jedem Fall, danke für die Antworten.

Um ehrlich zu sein, weiß ich nicht einmal, warum dies notwendig sein könnte. Offenbar haben die Entwickler auch nicht daran gedacht.