[Archiv!] Jede Anfängerfrage, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht daran vorbei. Könnte nirgendwo ohne dich hingehen - 2. - Seite 228

 
artmedia70:

Es hängt alles davon ab, ob diese Variable allen EA-Funktionen zur Verfügung steht (nun ja... nicht allen, aber sicher einigen). Dann ist die Variable global.

Wenn sie nur in einer Funktion verwendet wird, ist sie lokal.

Die Frage ist, in welches Wasser man die Blumen stellen soll, in normales oder gesüßtes Wasser" ... Während du rätst, werden die Blumen zu einem Besen... :))

:о)

Ich habe diese Regeln irgendwie herausgefunden, aber in der Praxis haben meine Befehle nicht funktioniert. Während ich also nach dem Problem suchte, habe ich viele Varianten ausprobiert und Variablen ins Globale verschoben, wie z. B. Statik, aber es hat alles funktioniert, obwohl ich nur eine Funktion habe. Ich bin mir aber immer noch nicht sicher, ob das der Grund dafür war. Ich bin verwirrt und habe beschlossen, hier zu fragen. Sie haben nichts über statische Variablen gesagt. Vielleicht sollten wir sie so machen? Ich verstehe nicht, dass die Variablen zurückgesetzt werden, wenn Sie den Start erneut eingeben (z. B. bei einem Tick)? Und die Statik nicht? Wenn ja, wird My ticks zu Null?

PS Verdammt, ich habe mit dem Programmieren angefangen, ich schreibe einen Gral....., wenn es genug Gras.... gibt, sieht es so aus, als ob ich jetzt ein Stammgast hier bin :))

 
drknn:
Wenn Ihr Maklerunternehmen gleitende Spreads anbietet, ist es besser, die automatische Bestimmung der Spread-Größe in der Startfunktion des EA zu verwenden und den Slippage auf z.B. drei Spreads einzustellen. Dann wird sich der Schlupf dynamisch verändern.
Das ist eine großartige Idee, ich sollte das mal ausprobieren. Ich danke Ihnen.
 
artmedia70:
Versuchen Sie zunächst, den Slippage von der Volatilität abhängig zu machen. In einem ruhigen Markt wird er minimal sein, in einem schnellen Markt wird er sich weiter ausbreiten.

Ich fürchte, wenn man mit H1 arbeitet, wird es schwierig sein, die Volatilität für eine einzelne Kerze zu berechnen, man muss sich überlegen, wie man sie berechnet.
 
Fam:

:о)

Diese Theorie habe ich irgendwie verstanden, aber in der Praxis funktionierten meine Aufträge nicht, und auf der Suche nach dem Problem habe ich viele Varianten ausprobiert und Variablen als statisch in global verschoben, aber es hat alles funktioniert, obwohl die Funktion die gleiche ist. Ich bin mir aber immer noch nicht sicher, ob das der Grund dafür war. Ich bin verwirrt und habe beschlossen, hier zu fragen. Sie haben nichts über statische Variablen gesagt. Vielleicht sollten wir sie so machen? Ich verstehe nicht, dass die Variablen zurückgesetzt werden, wenn Sie den Start erneut eingeben (z. B. bei einem Tick)? Und die Statik nicht? Wenn ja, wird My ticks zu Null?

PS Damn, begann die Programmierung eng, ich schreibe den Gral....., wenn das Gras genug...., so scheint es, ich bin ein Stammgast hier jetzt :))


Eine lokale Variable ist eine Variable, die innerhalb einer Funktion deklariert wird. Der Geltungsbereich lokaler Variablen ist der Körper der Funktion, in der die Variable deklariert ist. Eine lokale Variable kann mit einer Konstante oder einem Ausdruck, der ihrem Typ entspricht, initialisiert werden.

Eine globale Variable ist eine Variable, die außerhalb aller Funktionen deklariert wird. Der Geltungsbereich von globalen Variablen ist das gesamte Programm. Eine globale Variable ist auf keiner Ebene lokalisiert. Eine globale Variable kann nur durch eine Konstante, die ihrem Typ entspricht, initialisiert werden (nicht aber durch einen Ausdruck). Globale Variablen werdennur einmal initialisiert, bevor spezielle Funktionen ausgeführt werden.

Wenn sich die Kontrolle in einem Programm innerhalb einer Funktion befindet, sind die Werte lokaler Variablen, die in einer anderen Funktion deklariert wurden, nicht verfügbar. Der Wert einer globalen Variablen ist in allen Spezial- und Benutzerfunktionen verfügbar.

Statische Variable

Auf der physischen Ebene werden lokale Variablen im temporären Speicherbereich der jeweiligen Funktion dargestellt. Es gibt eine Möglichkeit, eine innerhalb einer Funktion deklarierte Variable im permanenten Speicher des Programms zu lokalisieren. Zu diesem Zweck muss bei der Deklaration einer Variablen der Modifikator static vor dem Variablentyp angegeben werden:

Statische Variablen werden nur einmal initialisiert. Jede statische Variable kann mit einer Konstante initialisiert werden, die ihrem Typ entspricht (im Gegensatz zu einer einfachen lokalen Variable, die mit einem beliebigen Ausdruck initialisiert werden kann). Wenn es keine explizite Initialisierung gibt, wird eine statische Variable mit Null initialisiert. Statische Variablen werden in einem permanenten Bereich des Programmspeichers gespeichert undihre Werte gehen nicht verloren, wenn die Funktion verlassen wird. Gleichzeitig haben statische Variablen eine Einschränkung, die lokalen Variablen eigen ist - der Geltungsbereich einer statischen Variable bleibt die Funktion, innerhalb der diese Variable deklariert wurde, im Gegensatz zu globalen Variablen, deren Werte von jeder Stelle im Programm aus zugänglich sind.

https://book.mql4.com/ru/variables/types

 
Das ist alles ziemlich selbsterklärend. Es stellt sich heraus, wenn eine statische Variable erfunden wird, deren Werte nicht verloren gehen, wenn die Funktion beendet wird, dann alle anderen Variablen verlieren wir Werte auf jedem Tick? (wenn START bei jedem Tick aufgerufen wird)
 
Fam:
Es ist alles irgendwie klar. Es stellt sich heraus, dass, wenn wir eine statische Variable erfinden, deren Werte beim Verlassen der Funktion nicht verloren gehen, alle anderen Variablen ihre Werte bei jedem Tick verlieren? (wenn START bei jedem Tick aufgerufen wird)

Die lokalen Variablen werden bei jedem Tick neu initialisiert.

Machen Sie sich nicht die Mühe - verwenden Sie Global, um Tickets zu speichern und vergessen Sie es. Oder erstellen Sie ein Array (Auftragsbuchhaltung). Alle Arrays sind standardmäßig statisch.

 
Danke, das habe ich. Ich möchte nur wissen, was das Ergebnis ist. Wissen Sie, wie Sie eine hohe Simulationsqualität und eine geringe Fehlanpassung des Diagramms erreichen können? Ich habe das Gefühl, dass es nicht an mir oder dem Programm liegt, sondern am schlechten Wetter (oder am guten, ich muss es noch herausfinden). Wie kann die Software den "menschlichen" Faktor nicht gut simulieren, das verstehe ich nicht?
 
ZZZEROXXX:

Ich fürchte, wenn wir mit H1 arbeiten, wird es schwierig sein, die Volatilität für eine einzelne Kerze zu berechnen. Wir müssen darüber nachdenken, wie wir sie berechnen können.
Die durchschnittliche Amplitude über 18 Takte ist deutlich
 

Hallo zusammen!

Können Sie mir bitte bei dieser Frage helfen?

Ich versuche, den genauen Wert der Eröffnung(Open[i]) oder Schließung(Close[i]) des Währungspaares EURUSD mit einem fünfstelligen Wert nach Null zu erhalten, aber als Antwort erhalte ich immer einen gerundeten Wert!

 
Wenn die Zahlen nach der Null entfernt werden, versuchen Sie, einer Integer-Variablen einen Preiswert zu zuweisen, also wird double benötigt.