Merkmale der Sprache mql5, Feinheiten und Techniken - Seite 168
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
Wenn Sie eine Meldung über ein Speicherleck erhalten, bedeutet dies, dass es keinen expliziten Befehl zur Freigabe dieses Speichers gab.
Wenn das Programm beendet wird (wenn Sie diese Meldungen erhalten), gibt es den gesamten Speicher frei, einschließlich des ausgelaufenen Speichers.
Vielleicht habe ich den Begriff "Leck" zu locker verwendet. Der Punkt ist, dass eine Ressource im Speicher hängen bleibt, deren Name nicht einmal erkennbar ist, wenn das Objekt gelöscht wird. Und wenn Sie ihren Namen kennen, können Sie sie nur aus dem Programm löschen, das die Ressource erstellt hat.
Jetzt ist es sehr einfach, ein Skript für Market zu schreiben, das das Terminal auf dem VPS aussetzt (nicht notwendigerweise absichtlich) und den gesamten Speicher mit Ressourcen füllt, die nach der Skriptausführung nicht gelöscht werden.
Einige Handelsserver können mehr als eine Art von Konto auf einmal führen. Zum Beispiel, ECN und Standard. In diesem Fall dürfen Symbole keine Präfixe haben, d.h. die Namen sind gleich.
In diesem Fall entsprechen die Balkenhistorie (einschließlich des aktuellen Werts von Bid/Ask/Last auf dem Chart) und die Tickhistorie immer nur einem Kontotyp.
Und die Daten von Market Watch entsprechen denjenigen, mit denen sie verbunden sind.
Aus diesem Grund ist es leicht zu beobachten, dass der Market Watch mit den Charts und der Tick-Historie völlig inkonsistent ist.
Es ist mir schon mehrfach passiert, dass das Kartensymbol versehentlich (von Hand) an der Stelle geändert wurde, an der ein Kampfberater steht.
Schutz gegen Symbolwechsel.
Dementsprechend nehme ich die Geschichte eine Woche vor der Zusammenstellung. Es ist praktisch.
Wenn Sie einen EA starten, müssen Sie oft entscheiden, ab welchem Zeitpunkt der Kursverlauf ermittelt werden soll. Damit ich sie nicht jedes Mal manuell eingeben muss, habe ich es so gemacht.
Dementsprechend nehme ich die Geschichte eine Woche vor der Zusammenstellung. Bequem.
Warum sollten Sie sich zu sehr auf den Optimierer verlassen? Das ist besser:
#define WEEK 604800
Notunterbrechungsfunktion, scheint gut zu funktionieren
Notunterbrechungsfunktion, scheint gut zu funktionieren
Es ist richtig, das zu tun - ich war froh, dass es passiert ist... wir haben es mit@Victhttps://www.mql5.com/ru/forum/318246/page10#comment_12651569
sondern dies:
- nichtExit http://www.delphibasics.ru/Exit.php
- nichtabbrechen http://www.delphibasics.ru/Abort.php
es istHalt http://www.delphibasics.ru/Halt.php
UPD: ein solches Skript wird dringend benötigt
die Sache ist notwendig - ich war froh, es geschehen zu sehen..., hier ist das Problem, das wir mit@Victhttps://www.mql5.com/ru/forum/318246/page10#comment_12651569
sondern dies:
- nichtExit http://www.delphibasics.ru/Exit.php
- nichtabbrechen http://www.delphibasics.ru/Abort.php
es istHalt http://www.delphibasics.ru/Halt.php
UPD: ein solches Skript wird dringend benötigt
Das hat noch nicht geklappt(((.
Ich kann nicht erkennen, warum ich das brauche!
Wenn die Entwickler Exit / Abort als Standard angegeben hätten, dann wäre es möglich, die Datenverarbeitung korrekt zu beenden, wenn z.B. TF nicht bereit ist - OHLC-Daten, es wäre auch nützlich für die Verarbeitung von Aufträgen, die an den Server gesendet werden... es wäre praktisch, den Code an einer beliebigen Stelle zu unterbrechen und vor dem nächsten Tick zu beenden, ohne endlos return() zum Verlassen von OnTick()
Ich kann nicht erkennen, warum ich das brauche!
Wenn die Entwickler Exit / Abort als Standard angegeben hätten, dann wäre es möglich, die Datenverarbeitung korrekt zu beenden, wenn z.B. TF nicht bereit ist - OHLC-Daten, es wäre auch nützlich für die Verarbeitung von Aufträgen, die an den Server gesendet werden... es wäre praktisch, den Code an einer beliebigen Stelle zu unterbrechen und vor dem nächsten Tick zu beenden, ohne endlos return() zum Verlassen von OnTick()
Nun, ich konnte nicht, noch nicht...