[ARCHIV!] Alle Fragen von Anfängern, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Ohne dich kann ich nirgendwo hingehen - 4. - Seite 515

 
trend_lab:
Und im Allgemeinen wirft man NewBar weg, schaut sich den Zeitpunkt der letzten Auftragseröffnung an und vergleicht ihn mit Time[0]. Wenn sie höher ist, ist es Ihr Fall, Sie können alles löschen.

Ja, ich denke, ich werde es tun müssen. Vielen Dank dafür :)
 
Noterday:
Mann, ich verstehe immer noch nicht, wie man das macht. Ich benötige einen Code, bei dem das Löschen und Schließen von Aufträgen erst beim nächsten Candlestick ausgelöst wird. Aber auch andere Leuchter sollten sich an diesem Tag öffnen. Das bedeutet, dass das Programm erneut in die Löschung eingreift. Ich brauche eine Fahne, aber mein Gehirn schwitzt schon, um zu verstehen, wie man es macht :)

Lesen Sie die Funktion OrderSend() sorgfältig durch. Sie hat einen Parameter für schwebende Aufträge:

expiration - Срок истечения отложенного ордера.

Wenn Sie einen schwebenden Auftrag zu Beginn des aktuellen Tages = iTime (Symbol(), PERIOD_D1, 0) eröffnen, dann addieren Sie zu dieser Zeit einen weiteren Tag - 1440 * 60. Wenn schwebende Aufträge nicht ausgelöst werden, werden sie zu Beginn des nächsten Tages von selbst gelöscht.

P.S. Das Ende des aktuellen Taktes kann auch über die Funktion iBarShift() gesteuert werden:

    if (iBarShift (Symbol(), PERIOD_D1, OrderOpenTime()) == 0) return(0);

oder andere "Körperbewegungen" zu dieser Bedingung, indem das OrderTicket() der letzten Bestellung verfolgt wird.

 
TarasBY:

Lesen Sie die Funktion OrderSend() sorgfältig durch. Sie hat einen Parameter für schwebende Aufträge:

Wenn Sie einen schwebenden Auftrag zu Beginn des aktuellen Tages = iTime (Symbol(), PERIOD_D1, 0) eröffnen, dann addieren Sie zu dieser Zeit einen weiteren Tag - 1440 * 60. Die ausstehenden Aufträge, die nicht ausgelöst werden, werden zu Beginn des nächsten Tages automatisch gelöscht.


Ich habe es gelesen, mein DC scheint es nicht zu unterstützen.
 
Noterday:
Ich habe es gelesen, die DC scheint es nicht zu unterstützen.
Gibt es so etwas?
 
Nun, ich denke schon, oder vielleicht ist es auch nur ein Problem mit meinem Terminal. Ich habe bereits in einem benachbarten Thread gesagt, dass ich auch keine Berichte aus der Registerkarte "Kontoverlauf" speichere...
 
Noterday:
Nun, ich denke schon, oder vielleicht ist es auch nur ein Problem mit meinem Terminal. Ich habe bereits in einem benachbarten Thread gesagt, dass ich auch keine Berichte aus der Registerkarte "Kontoverlauf" speichere...
Seltsamerweise tue ich das auch nicht, obwohl mein Körperbau 416 ist. Allerdings hat das Terminal nichts mit der Löschung von ausstehenden Aufträgen zu tun, die nach Ablauf der Frist nicht ausgeführt wurden - das ist Sache des Servers der Maklerfirma.
 
hoz:

Ehrlich gesagt, bin ich jetzt schon völlig verwirrt. Ich habe nicht einmal Beispiele, um zu sehen, wie andere es machen.

Ich verstehe, dass Sie die Werte nicht nur erhalten, sondern sie auch anderen Variablen zuweisen müssen?


Ich brauche die Grundlagen nicht. Ich bin mir der variablen Sichtbarkeit durchaus bewusst. Im Lehrbuch steht nichts über die Übergabe von Variablenwerten per Referenz. Warum schickst du mich dorthin? Wollen Sie mich auf den Arm nehmen?


Nein, das bin ich nicht. Sie halten Ihr Wissen über den Geltungsbereich für stark übertrieben. Das soll keine Beleidigung sein, es ist nur offensichtlich, dass Sie die Grundlagen nicht beherrschen.

Ich habe etwas Zeit, also werde ich es "mit den Fingern" versuchen: Sie haben Variablen innerhalb einer Funktion beschrieben - dort sind sie vorhanden. Die Funktion hat ihre Arbeit beendet und der den Variablen zugeordnete Speicher wird freigegeben. Dann verweisen Sie auf das, was Sie außerhalb des Bereichs der Variablen verwenden? An dieser Adresse kann jeglicher "Müll" liegen. Man kann nur froh sein, dass die Entwickler weitsichtig waren und die Adressarithmetik ausgeschlossen haben. Das Ergebnis der Funktion wird, wenn es nach außen weitergegeben werden muss, immer als Wert und nicht als Referenz übergeben (d. h. wir übergeben den Wert selbst und nicht die Adresse der Speicherzelle, in der der Wert gespeichert ist). Es gibt natürlich Ausnahmen, aber nicht für µl4 (außer bei der Arbeit mit Arrays). Lesen Sie ihn also bitte noch einmal - es kann nicht schaden.

 
VladislavVG:

Wir können uns nur über die Weitsicht der Entwickler freuen, die die Adressarithmetik abgeschafft haben.

Aber sie ist da, auch wenn sie nicht beschrieben wird ...
 
valenok2003:


Was ist mit Arrays?


Bei Arrays ist das nicht schwierig: Normalerweise wird ein Array als Parameter per Referenz von außen übergeben - innerhalb der Funktion verarbeiten Sie es innerhalb der Funktion und brauchen nichts zurückzugeben - das Ergebnis wird sofort erhalten. Die Notwendigkeit, den Verweis (oder die Adresse) zurückzugeben, kann entstehen, wenn Sie innerhalb einer Funktion dynamisch Speicher für das Array zuweisen und das Array selbst dort beschreiben. Um dieses Array dann außerhalb der Funktion zu verwenden, müssen Sie die Adresse des zugewiesenen Speicherbereichs außerhalb übergeben.

Das klingt erschreckender als es ist. Wenn das nicht klar ist, kann ich Ihnen einige Beispiele nennen.

 
VladislavVG:


Bei Arrays ist es nicht kompliziert: Normalerweise wird ein Array als Parameter per Referenz von außen übergeben - innerhalb der Funktion verarbeiten Sie es innerhalb der Funktion und brauchen nichts zurückzugeben - das Ergebnis wird sofort erhalten. Die Notwendigkeit, den Verweis (oder die Adresse) zurückzugeben, kann entstehen, wenn Sie innerhalb einer Funktion dynamisch Speicher für das Array zuweisen und das Array selbst dort beschreiben. Um dieses Array dann außerhalb der Funktion zu verwenden, müssen Sie die Adresse des zugewiesenen Speicherbereichs außerhalb übergeben.

Das klingt erschreckender als es ist. Wenn Sie das nicht verstehen, kann ich Ihnen einige Beispiele nennen.



Danke, das ist klar. D.h., wenn eine Variable oder ein Array auf einer höheren Ebene beschrieben wird, kann man auf ihre Adresse so oft verweisen, wie man will.