[ARCHIV]Alle Fragen von Anfängern, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht daran vorbei. Ohne dich kann ich nirgendwo hingehen - 5. - Seite 228
![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
Wo ist die beste Stelle für die Deklaration eines Variablentyps (int, double usw.) im Hinblick auf die Verringerung des Ressourcenverbrauchs bei der Programmausführung? Zum Beispiel kann int i global oder in int start() deklariert werden ... for (int i=OrdersTotal()-1; i>=0; i--) ... Ich habe das Gefühl, dass eine Deklaration bei jedem Tick kostspieliger ist als eine einmalige Deklaration auf globaler Ebene, direkt nach externen Parametern. Oder ist der Unterschied in der Ressourcenintensität derselbe?
Alle Variablen (Speicherplätze) werden einmal beim Programmstart angelegt und müssen dann an der Stelle, an der sie im Text vorkommen, initialisiert werden(Variablendeklaration), was aber nicht immer geschieht. Wenn Sie also wollen, dass alles richtig funktioniert, vergessen Sie nicht, sie bei der Deklaration ausdrücklich zu initialisieren.
Ich habe den Code korrigiert, damit er mit Ihrem übereinstimmt.
Beim Test wurden vier Aufträge in der Reihenfolge ihrer Einstellung beim ersten Tick geschlossen, der fünfte wurde beim nächsten Tick geschlossen. Wahrscheinlich ist hier etwas anderes falsch, wie ich mehrfach getestet habe.
Ich stelle Ihnen den Code des Programms und die Protokolle des Testers zur Verfügung.
Mit freundlichen Grüßen. Shurkin
Das ist klar. Ersetzen Sie
zu.
Es liegt folgende Situation vor:
Ich habe ein Stück Code gezeigt, bei dem es ein Missverständnis gibt. Alle Variablen werden als global deklariert. Mit der FunktionIsObjectFound() erhalte ich die Werte des ersten und zweiten Preispunktes des Objekts, den Namen und den Preiswert des Objekts auf dem aktuellen Balken. Wenn das Objekt gefunden wird, sollte die Funktion im Modus true beendet werden , ansonsten im Modusfalse .
Zu Beginn habe ich eine Bedingung festgelegt, die besagt, dass ich die Funktion verlasse, wenn das Objekt nicht gefunden wird:
Ich lasse es im Tester laufen, ich habe keine Objekte gezeichnet, es gibt nichts - ein nacktes Diagramm. Trotzdem wird die Funktion nicht beendet und entsprechend nicht gedruckt:
Die Startfunktion läuft weiter. Was hat es damit auf sich?
Globale Variablen sind globale Suchen. Was können Sie über den Algorithmus sagen, ohne das Datenmodell zu kennen?
Ich würde die Daten genau verfolgen. Und isObj wirklich boolesch, und all das ...
Globale Variablen sind globale Suchen. Was können Sie über den Algorithmus sagen, ohne das Datenmodell zu kennen?
Ich würde die Daten genau verfolgen. Und isObj wirklich boolesch, und all das ...
isObj ist ein int. Gibt das Fenster zurück, in dem sich das Objekt befindet, falls es eines gibt. Wenn sie nicht vorhanden ist, wird -1 zurückgegeben. Dem Dokument zufolge beginnt das Hauptfenster bei 0 und dann die Unterfenster... Bislang ist dies ein Entwurf für einen Trading Expert Advisor, also ein reines Signal. Aber sie gibt Nachrichten heraus, wann immer sie will.