Jede Anfängerfrage, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Nirgendwo ohne dich - 6. - Seite 35

 
oDin48:

Eigentlich geht es nur darum, eine Taktnummer zuzuweisen und diese in eine Variable zu schreiben, die dann mit dem aktuellen Wert verglichen werden kann.

Das ist nicht nötig. Jeder Balken hat bereits eine eigene Nummer. Alles, was Sie wissen müssen, ist, auf welchem Balken eine Stop-Position geschlossen wurde. Wofür sind die Variablen da? Was passiert, wenn der Expert Advisor neu gestartet wird? Der Wert der Variablen geht dabei verloren. Auf diese Weise können Sie zu jedem beliebigen Zeitpunkt den Barren finden, an dem eine ausgewählte geschlossene Position geschlossen wurde.

Wenn Sie über Programmiererfahrung verfügen, können Sie die von mir beschriebene Logik verstehen und umsetzen.

 
artmedia70:

Sie müssen nur wissen, auf welchem Balken die Stopp-Position geschlossen wurde.

Das ist kein Problem, da ich die erste und die zweite nicht in der gleichen Leiste öffnen muss.

Ich schreibe etwas wie:

if ((Gesamt==0)&&(Bedingung)) {Opn_B=true;} //Beispiel.

Die zweite Order wird nicht geöffnet, aber wenn die erste fehlschlägt, wird sie am Stop geschlossen und die Bedingung wird erneut ausgelöst und der zweite Balken wird geöffnet, was genau das ist, was ich nicht brauche. Aber wenn der nächste Balken SL auslöst und die Bedingung erfüllt ist, dann sind Sie willkommen.

Ich bitte um Entschuldigung, wenn ich mich unklar ausgedrückt habe.

Aber ich sehe das folgendermaßen.

1) Bei der Eröffnung eines Auftrags sollte die Nummer des Balkens, in dem der Auftrag eröffnet wird, in eine Variable geschrieben werden.

2) Wenn die Anzahl der Aufträge 0 ist. Wir überprüfen den Gewinn des letzten Handels (bereits geschrieben).

3) Wenn wir die nächste Order aufgrund des Signals öffnen, prüfen wir, ob die vorherige Order profitabel war oder nicht. Wenn sie verloren war, prüfen wir die Nummern des aktuellen Balkens und des Balkens, an dem die letzte Order geöffnet wurde. Wenn sie nicht übereinstimmen, eröffnen wir einen Auftrag. (kein Problem zu schreiben)

Fazit: Ich brauche eine Funktion, die es mir ermöglicht, die Nummer des Balkens zu kennen, damit ich diesen Wert der Variablen in Schritt 1 zuweisen und ihn mit dem aktuellen Wert (Nummer des Balkens) in Schritt 3 vergleichen kann.

 
oDin48:

Das ist kein Problem, da ich die erste und die zweite nicht in der gleichen Leiste öffnen muss.

Ich schreibe etwas wie:

if ((Gesamt==0)&&(Bedingung)) {Opn_B=true;} //Beispiel.

Die zweite Order wird nicht geöffnet, aber wenn die erste fehlschlägt, wird sie am Stop geschlossen und die Bedingung wird erneut ausgelöst und der zweite Balken wird geöffnet, was genau das ist, was ich nicht brauche. Aber wenn der nächste Balken SL auslöst und die Bedingung erfüllt ist, dann sind Sie willkommen.

Ich entschuldige mich, wenn ich mich unklar ausgedrückt habe.

Aber ich sehe das folgendermaßen.

1) Bei der Eröffnung eines Auftrags sollte die Nummer des Balkens, in dem der Auftrag eröffnet wird, in eine Variable geschrieben werden.

2) Wenn die Anzahl der Aufträge 0 ist. Wir überprüfen den Gewinn des letzten Handels (bereits geschrieben).

3) Wenn wir die nächste Order aufgrund des Signals öffnen, prüfen wir, ob die vorherige Order profitabel war oder nicht. Wenn sie verloren war, prüfen wir die Nummern des aktuellen Balkens und des Balkens, in dem die letzte Order geöffnet wurde. Wenn sie nicht übereinstimmen, eröffnen wir einen Auftrag. (kein Problem zu schreiben)

Fazit: Ich brauche nur eine Funktion, die mir die Nummer des Balkens mitteilt, damit ich diesen Wert der Variablen aus Schritt 1 zuweisen und mit dem aktuellen Wert (Nummer des Balkens) in Schritt 3 vergleichen kann.

Wie auch immer... Besuchen Sie den Thread von Igor Kim - dort finden Sie zahlreiche Beispiele. Ich habe noch keine Zeit, sorry...
 
artmedia70:
Verwenden Sie bei der Überprüfung der MASK-Abweichung ein Delta von 2 - 3 Punkten.


Füge ich zu jedem Pips hinzu? Ist es möglich, diese zwei oder drei Punkte zu programmieren?
 
oDin48:

Das ist kein Problem, da ich die erste und die zweite nicht in der gleichen Leiste öffnen muss.

Ich schreibe etwas wie:

if ((Gesamt==0)&&(Bedingung)) {Opn_B=true;} //Beispiel.

Die zweite Order wird nicht geöffnet, aber wenn die erste fehlschlägt, wird sie am Stop geschlossen und die Bedingung wird erneut ausgelöst und der zweite Balken wird geöffnet, was genau das ist, was ich nicht brauche. Aber wenn der nächste Balken einen SL auslöst und die Bedingung erfüllt ist, dann sind Sie willkommen.

Ich bitte um Entschuldigung, wenn ich mich unklar ausgedrückt habe.

Aber ich sehe das folgendermaßen.

1) Bei der Eröffnung eines Auftrags sollte die Nummer des Balkens, in dem der Auftrag eröffnet wird, in eine Variable geschrieben werden.

2) Wenn die Anzahl der Aufträge 0 ist. Wir überprüfen den Gewinn des letzten Handels (bereits geschrieben).

3) Wenn wir die nächste Order aufgrund des Signals öffnen, prüfen wir, ob die vorherige Order profitabel war oder nicht. Wenn sie verloren war, prüfen wir die Nummern des aktuellen Balkens und des Balkens, an dem die letzte Order geöffnet wurde. Wenn sie nicht übereinstimmen, eröffnen wir einen Auftrag. (kein Problem zu schreiben)

Fazit: Ich brauche eine Funktion, die es mir ermöglicht, die Nummer des Balkens zu kennen, damit ich diesen Wert der Variablen in Schritt 1 zuweisen und ihn mit dem aktuellen Wert (Nummer des Balkens) in Schritt 3 vergleichen kann.



Diese Funktion gibt die Taktnummer der letzten geschlossenen Position zurück

Aufruf von

if(Total==0 && NumberOfBarCloseLastPos()!=0)
   {
   Opn_B=true;
   }
 

Ich danke Ihnen vielmals. Ich dachte schon, ich hätte etwas Falsches erklärt, als ich feststellte, dass die Lösung einfach sein müsste.

Sie waren sehr hilfreich.

 

Kann mir jemand sagen, wenn ich ein Skript oder einen EA schreibe, was ist die maximale Anzahl von Elementen, die ich in ein Array einbauen kann?

 
Dikii:

Kann mir jemand sagen, wenn ich ein Skript oder einen EA schreibe, was ist die maximale Anzahl von Elementen, die ich in ein Array packen kann?

Aus einem benachbarten Thread........

 

Leute!

wie man in OrderSend die Verfallszeit des schwebenden Auftrags "heute" angibt.

 
smartemiy:

Leute!

wie man in OrderSend die Verfallszeit des schwebenden Auftrags "heute" angibt.

Richtiger wäre DeleteOrder zu einem bestimmten Zeitpunkt. In den seltensten Fällen führt das DC diesen Ablauf durch und löscht den Auftrag auf Befehl des EA!
Grund der Beschwerde: