[WARNUNG GESCHLOSSEN!] Alle Fragen von Neulingen, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Ohne dich kann ich nirgendwo hingehen. - Seite 792

 

Lesen Sie den Code eines einfachen EAs im Tutorial - https://book.mql4.com/ru/samples/expert

Ich verstehe nicht, wie sich der Wert der Variablen Total ändert

Im Block "Auftragseingabe" kann sich der Wert ändern, z. B. zu 1 werden.

Wenn der Auftrag geschlossen wird, ändert sich der Wert der Variable "Total" im Block "Close Orders" nicht, obwohl er meines Erachtens auf Null gesetzt werden sollte (wenn der Auftrag erfolgreich geschlossen wurde).

Die Frage - wie werden in diesem Fall neue Aufträge eröffnet (im Block "Order opening" - if (Total==0 && Opn_B==true) ), wenn das Programm immer noch denkt, dass es Aufträge gibt, die nicht geschlossen sind? Oder kann das Programm nicht einen Auftrag schließen und gleichzeitig einen anderen Auftrag öffnen? Dann verstehe ich nicht, warum es heißt, dass im Beispiel die Option b des Handelskriterienverhältnisses verwendet wird?

 
fevrall:

Guten Tag an alle Forumsmitglieder!

Ich konnte keine Antworten auf die folgenden Fragen finden.

1. Zwei Terminals laufen auf verschiedenen Rechnern (der erste am Arbeitsplatz, der zweite zu Hause) unter demselben realen Konto.

Wenn ein Expert Advisor für ein und dasselbe Währungspaar auf diesen Terminals ausgeführt wird, für dasselbe Währungspaar,

ist es gleichbedeutend mit der Ausführung desselben EA auf demselben Paar in verschiedenen Fenstern desselben Terminals?

2. Wenn Sie den Betrieb von EAs in einem dieser Terminals deaktivieren (indem Sie die entsprechende Schaltfläche verwenden), wie wird dies

ein anderes Terminal beeinflussen?

(Vielen Dank im Voraus!)

1) Zwei verschiedene Terminals sind zwei verschiedene Terminals).

Selbst wenn Sie zwei verschiedene mt4 auf einer Maschine haben, die auf einem Konto arbeiten - sie werden sich nicht überschneiden. Sie können sich zufällig überschneiden, wenn die Ordensmagie übereinstimmt, dann wird der aktive EA den Orden als "seinen eigenen" wahrnehmen.

2) Wenn wir den Handel auf einem Terminal deaktivieren, wird das andere weiter funktionieren, da dieser EA ein Programm ist, das auf diesem Computer im gegebenen MT4 läuft, nicht auf dem Server des Handelszentrums. Das Gleiche gilt, wenn Sie den Computer ausschalten, wird der Expert Advisor nicht handeln. Aber es gibt eine Nuance - wenn der EA vor dem Ausschalten irgendwelche ausstehenden Aufträge platziert hat, werden diese auf dem Markt ausgeführt, auch wenn der EA ausgeschaltet ist.

 
Techno:
Sie können eine Sperre für 1 oder 2 Takte festlegen.

Techno, warum beharren Sie auf einer vorübergehenden Lösung für dieses Problem?

Gibt es keine Möglichkeit, das Problem logisch zu lösen? Ihre Methode könnte zu einer Lösung für mein Problem führen, aber es ist ein indirekter Weg, es zu lösen...

 

obla4ko, ich danke Ihnen!

 
obla4ko:

Ich erinnere mich :), Ihr Rat ist gut, aber "es geht um Nuancen", wie PapaYozh es ausdrückt !

Bei der Arbeit mit Durchschnittswerten zählt jeder Balken - Statistik, Sie wissen schon! :)) - Ich muss also nach anderen, subtileren Lösungen suchen....

Wenn ich Ihr Problem richtig verstanden habe, dann sollten Sie sich nicht an der Auftragsschlusszeit orientieren. Sie sollten mit dem Zeitpunkt des Balkens beginnen, der das Signal zur Eröffnung der Position gab. Ich persönlich würde wie folgt vorgehen:

1) eine Variable vom Typ datetime erstellen, in die ich den Wert Time[0] eingeben würde, wenn die Bestellung erfolgreich aufgegeben wurde;

2) in der Funktion init() diese Variable mit dem Wert "0" initialisieren. Ich bevorzuge eine explizite Initialisierung, da dies bei der Überprüfung des Codes klarer ist;

3) Wenn die Bedingungen für die Eröffnung einer Position eintreten, vergleichen Sie vor dem Senden der OrderSend(...)-Anforderung den Wert dieser Variablen mit dem Wert Time[0], und wenn sie nicht gleich sind, senden Sie eine Anforderung.

4) Wenn die Position geöffnet wird, wird der Wert von Time[0] in eben dieser Variablen gespeichert.

---

Ich weiß nicht, ob ich es gut erklärt habe, aber ich habe mein Bestes versucht.

Natürlich ist dies der primitivste Ansatz, denn der EA könnte sich tatsächlich auf dem Balken neu initialisieren, auf dem die Order eröffnet wurde, und wir sollten solche Situationen beim Schreiben des EA berücksichtigen. Aber die Variante, die ich beschrieben habe, reicht auch für die Anfangsphase aus.

 

Guten Tag zusammen!

Programmierer und Amateure brauchen Ihre Hilfe! Das Wesen ist die Notwendigkeit für eine einfache Anzeige, die die horizontale Linie zeigen würde, dh geben Sie ihm eine Ebene, von der er tanzte (nach unten oder oben, kein Unterschied) und es zieht eine bestimmte Anzahl von Punkten wieder die Linie, und so weiter auf die angegebene Ebene. Zum Beispiel, das Niveau von 1,2500 bis 1,3400, eine neue Linie alle 50 Punkte ...


Vielen Dank im Voraus an alle, die mir antworten...

 

Es ist interessant, wie Mädchen tanzen... :)

Ich bin zurück bei den "Streichen" meines DC...

Wie ist das möglich?

... ...es ist interessant, wie sich die Posen in der Luft öffnen... Demo-Konto.

Wie ist das möglich?

Meines Erachtens sollten die Positionen, wenn sie vor der Lücke geöffnet wurden, dort stehen, wo sie geöffnet wurden, und nicht am Himmel schweben...
... Nun, wenn sie verschoben wurden, warum dann nicht an die Stange nach der Lücke, sondern irgendwo in der Luft... Wunder... :)

 

artmedia70, es ist ein Ausrutscher auf eine Lücke) Ändern Sie Ihre dtz )) fuck it ))
 
artmedia70:

... Interessant, wie sich die Posen in der Luft öffnen... Demo-Konto.


Vergessen Sie nicht, dass auf dem Chart der Preis Bid ist, die Kaufaufträge (die Sie anscheinend haben) öffnen sich bei Ask.
 
PapaYozh:

Vergessen Sie nicht, dass auf dem Chart der Preis Bid ist, die Kaufaufträge (wie es aussieht, haben Sie sie) öffnen sich auf Ask.
Eröffnen wir nicht einen Kauf auf Ask ???????? Und der Spread kann nicht 60 Pips betragen (er muss nach dem Gap liegen), und wenn er vor dem Gap liegt, ist der Spread von 325 Pips für den EUR unglaublich. :)