Fragen von Anfängern MQL5 MT5 MetaTrader 5 - Seite 1076
![MQL5 - Sprache von Handelsstrategien, eingebaut ins Kundenterminal MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
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
Wie kann ich eine große Datei in einer Zeile lesen?
FileReadString()
Beim Lesen aus einer bin-Datei muss die Länge der zu lesenden Zeichenkette angegeben werden. Beim Lesen aus einer txt-Datei ist die Länge der Zeichenfolge nicht erforderlich, und die Zeichenfolge wird von der aktuellen Position bis zum Zeilenvorschubzeichen "\r\n" gelesen. Beim Lesen aus einer CSV-Datei ist die Länge der Zeichenkette nicht erforderlich. Die Zeichenkette wird von der aktuellen Position bis zum nächsten Begrenzungszeichen oder bis zum Endzeichen der Zeichenkette gelesen.
Das ist nicht das, was ich meine.
"Und mit einem logischen NICHT zu lösen - die Bits invertieren, aber ich habe kein Terminal - ich kann mich nicht erinnern, wie man ein bitweises NICHT in MQL macht, und ich will nicht die Online-Hilfe lesen".
Ich meine, entweder du lieferst mir einen Beweis oder du lässt es bleiben ))))
"Jeder kann einen Fehler machen. Nur die Starken können einen Fehler eingestehen!". Wenn es noch niemand geäußert hat, ist das meine Weisheit ))). Wenn es schon jemand gesagt hat - ich habe die Weisheit eines weisen Mannes wiederholt ))))
Ich verstehe Ihre Behauptungen immer noch nicht? Wollen Sie damit sagen, dass ich Ihnen etwas beweisen soll? - Und warum? ))))
Hier habe ich via NOT nachgebaut und alle diskutierten Varianten geprüft:
Die NOT-Variante funktioniert mit jeder TF, füllt sich aber nach (~TF_ unter der wir anzeigen & TF_eine älter als die gewünschte TF)-1;
Guten Tag zusammen! Eine Frage noch...
Es gibt ein MQL5-Programm, es hat eine Einstellung (eine Menge) von "Input-Parameter". Das Programm führt Berechnungen durch und erstellt / löscht und verwaltet grafische Objekte nach Bedarf.
Nach der Änderung von Eingabeparametern aus dem Setup-Fenster wird das EreignisInit erzeugt, was zu einer Programminitialisierung und den Objekten "Neu berechnen" und "Neu zeichnen" führt, was im Prinzip das ist, was benötigt wird, aberdas EreignisInitwird auch erzeugt , wenn die Diagrammperiode geändert wird (und andere), was dazu führt, dass der Prozess jedes Mal wiederholt wird, auch wenn er nicht benötigt wird.
Frage:Wie kann ich die Programminitialisierung beimInit-Ereignis ausschließen, wenn dieEingabeparameter nicht geändert werden, sondern die Initialisierung beim Programm-(Terminal-)Start belassen wird?
Mögliche Variante: die eingestellten Werte zu speichern und sie zu vergleichen, wenn das Ereignis Init eintritt, und wenn sie unterschiedlich sind, die Initialisierung zu erlauben, aber es gibt eine Menge Eingabeparameter...
Guten Tag zusammen! Eine Frage noch...
Es gibt ein MQL5-Programm, es hat eine Einstellung (eine Menge) von "Input-Parameter". Das Programm führt Berechnungen durch und erstellt / löscht und verwaltet grafische Objekte nach Bedarf.
Nach der Änderung von Eingabeparametern aus dem Setup-Fenster wird das EreignisInit erzeugt, was zu einer Programminitialisierung und den Objekten "Neu berechnen" und "Neu zeichnen" führt, was im Prinzip das ist, was benötigt wird, aber das EreignisInit wird auch erzeugt , wenn die Diagrammperiode geändert wird (und andere), was dazu führt, dass der Prozess jedes Mal wiederholt wird, auch wenn er nicht benötigt wird.
Frage:Wie kann ich die Programminitialisierung beimInit-Ereignis ausschließen, wenn die Eingabeparameter nicht geändert werden, sondern die Initialisierung beim Programm-(Terminal-)Start belassen wird?
Mögliche Variante: die eingestellten Werte zu speichern und sie zu vergleichen, wenn das Ereignis Init eintritt, und wenn sie unterschiedlich sind, die Initialisierung zu erlauben, aber es gibt eine Menge Eingabeparameter...
Hier sind einige Tipps für ein anderes, ähnliches Problem
Forum für Handel, automatisierte Handelssysteme und Strategietests
Funktioniert im EA, aber nicht richtig im Indikator, Musik beim Start des Indikators
Ihor Herasko, 2019.06.17 14:12
Ja.
Forum zum Thema Handel, automatisierte Handelssysteme und Strategietests
Es funktioniert in Expert Advisor, aber es ist nicht korrekt in Indikator, Musik auf Indikator Start
Taras Slobodyanik, 2019.06.17 16:25
5. Sie können ein Objekt auch auf dem Diagramm belassen und seinen Anwesenheitsstatus überprüfen, wenn Sie starten.Hier sind einige Tipps für ein anderes, ähnliches Problem
Danke für die Antwort, es sieht so aus, als ob wir in unserem Fall den Zustand von ein paar Dutzend Änderungen von Korrespondenzen verfolgen müssen , indem wir dies durch ein "Leerzeichen" auf dem Graphen beschreiben, um ihre Änderungen zu verfolgen, oder eine unnötige Initialisierung in Kauf nehmen müssen, solange es nicht so viele Objekte gibt...
Aber die Frage, die Sie gestellt haben, lautete.
Guten Tag, alle zusammen! Eine Frage noch...
Es gibt ein MQL5-Programm, es hat Einstellungen (eine Menge) "Input-Parameter". Das Programm führt Berechnungen durch und erstellt / löscht und verwaltet grafische Objekte nach Bedarf.
Nach der Änderung von Eingabeparametern aus dem Setup-Fenster wird das EreignisInit erzeugt, was zu einer Programminitialisierung und den Objekten "recalculate" und "redraw" führt, was im Prinzip das ist, was benötigt wird, aber das EreignisInit wird auch erzeugt , wenn die Diagrammperiode (und andere)geändert wird , was dazu führt, dass der Prozess jedes Mal wiederholt wird, auch wenn er nicht benötigt wird.
Frage:Wie kann ich die Programminitialisierung beimInit-Ereignis ausschließen, wenn die Eingabeparameter nicht geändert werden, sondern die Initialisierung beim Programm-(Terminal-)Start belassen wird?
Mögliche Variante: die eingestellten Werte zu speichern und sie zu vergleichen, wenn das Ereignis Init eintritt, und wenn sie unterschiedlich sind, die Initialisierung zu erlauben, aber es gibt eine Menge Eingabeparameter...
Und in Ihrer Situation wird einer dieser Tipps diese unnötigen Neuzeichnungen von Objekten verhindern. Und wenn diese Objekte in OnDeinit() gelöscht werden, sollten Sie auch dort das Löschen verbieten, wenn Sie das Diagramm wechseln.
Dies ist ein Forum für Handel, automatisierte Handelssysteme und Strategietests.
Wie kann ich die globale Variable des Terminals beim Schließen des Diagramms löschen?
Alexey Viktorov, 2019.06.29 08:40
Beachten Sie diese Tabelle
ANLASS_PROGRAMM
0
Experte funktioniert nicht mehr durch Aufruf von ExpertRemove()
REASON_REMOVE
1
Programm aus der Tabelle entfernt
REASON_RECOMPILE
2
Programm neu kompiliert
REASON_CHARTCHANGE
3
Das Diagrammsymbol oder die Periode wurde geändert
REASON_CHARTCLOSE
4
Das Diagramm ist geschlossen
GRUND_PARAMETER
5
Eingabeparameter wurden vom Benutzer geändert
REASON_ACCOUNT
6
Ein anderes Konto wurde aktiviert oder erneut mit dem Handelsserver verbunden, weil die Kontoeinstellungen geändert wurden
GRUND_VORLAGE
7
Eine weitere Diagrammvorlage wurde angewendet
REASON_INITFAILED
8
OnInit()-Handler gab einen Wert ungleich Null zurück
REASON_CLOSE
9
Terminal wurde geschlossen
und in dieser Zeile Ihres Codes
Aber wenn ich mich richtig an den Anfang Ihres Problems erinnere, ist es besser, die Bedingung wie folgt zu formulieren
Aber in Ihrer Frage war es
In Ihrem Fall wird einer dieser Tipps das unnötige Neuzeichnen von Objekten verhindern. Und wenn diese Objekte in OnDeinit() gelöscht werden, dann sollten Sie auch dort das Löschen verbieten, wenn Sie das Diagramm wechseln.
Ich habe in der Codebase kein EA-Beispiel gefunden, bei dem eine Schließungsbedingung gesetzt werden kann, nicht nur Standard-SL/TP. Kann mir jemand einen Tipp geben?
Was ist der Unterschied zwischen Öffnungs- und Schließbedingung?
Ich habe in der Codebase kein Beispiel für einen EA gefunden, bei dem man die Schlussbedingung einer Position schreiben kann und nicht nur den Standard-SL/TP. Kann mir das jemand sagen?
Vladimir Karputov hatte solche Bedingungen in seinen Codes, aber Sie müssen selbst lernen, seinen Code zu lesen)