[ARCHIV] Alle Fragen von Anfängern, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Nirgendwo ohne dich - 3. - Seite 631
![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
...Versuchen Sie, die gleiche Frage anders zu formulieren, damit niemand darauf herumhackt... ;)
Warum sollte ich eine Frage formulieren, auf die ich die Antwort kenne?
Das bedeutet, dass wir für die Berechnung des Indikators auf dem aktuellen Balken eine bestimmte Anzahl früherer Kurswerte benötigen, in diesem Fall PeriodSMA. Wenn wir den Index des Anfangsbalkens nicht verringern, werden wir mehrere falsch berechnete Indikatorwerte ganz links im Diagramm haben.
Alsu, wenn es Ihnen nichts ausmacht, könnten Sie mir ein kleines Beispiel geben? Ich verstehe den Sinn dieser "Verschiebung" nicht wirklich. Schließlich wird die gesamte Balkenreihe auf jeden Fall berechnet, warum dann diese Verschiebung? Und warum PeriodSMA und nicht irgendeine
und nicht irgendeinen anderen Wert, der davon abweicht? Ich kann nirgendwo eine Beschreibung oder Erklärung zu diesem Problem finden. Ich danke Ihnen!
Ich habe wahrscheinlich eine dumme Frage, aber wenn das Terminal fünfstellige Anführungszeichen verwendet, sollten die globalen Variablen auch mit zusätzlichen Nullen angegeben werden? Zum Beispiel TP = 500 statt 50?
Alsu, wenn es Ihnen nichts ausmacht, könnten Sie mir ein kleines Beispiel geben? Ich verstehe den Sinn dieser "Verschiebung" nicht wirklich. Schließlich wird die gesamte Balkenreihe auf jeden Fall berechnet, warum dann diese Verschiebung? Und warum PeriodSMA und nicht irgendeine
und nicht irgendeinen anderen Wert, der davon abweicht? Ich kann nirgendwo eine Beschreibung oder Erklärung für dieses Problem finden. Ich danke Ihnen!
Sie müssen zum Beispiel einen einfachen gleitenden Durchschnitt mit PeriodSMA berechnen. Um den SMA zu berechnen, müssen Sie die Werte der letzten PeriodSMA-Balken addieren und durch den PeriodSMA dividieren. Es ist offensichtlich, dass es für die Balken mit den Nummern Bars-1, Bars-2, ..., Bars-PeriodSMA+1 nicht funktionieren wird, weil wir einfach nicht die notwendige Anzahl von Balken für die Berechnung haben (der ganz linke Balken hat den Index Bars-1). Daher müssen wir die Berechnung des Indikators nicht mit dem letzten Balken im Diagramm beginnen, sondern mit dem Balken mit dem Index Bars-PeriodSMA.
Warum wird dieser Wert angegeben und nicht ein beliebiger? Diese Verschiebung des Berechnungsbeginns ermöglicht es uns, die maximale Anzahl von Balken zu berechnen, ohne die Korrektheit der Berechnung zu beeinträchtigen.
Aber bedenken Sie, dass dies der einfachste Fall ist. Manchmal ist aus dem Code nicht sofort ersichtlich, wie viele vergangene Takte das Programm für die Berechnung benötigt und woher genau diese Verschiebung kommt. Nun, Sie sollten den Entwickler fragen, der den Code geschrieben hat. Aber im Allgemeinen gibt es einen universellen Weg - schauen Sie sich einfach den Code an, was im Prinzip der maximale Index des Balkens unter Verwendung von Preisdaten und Indexpufferdaten während des Programmablaufs erhalten werden kann, normalerweise wird es bereits in diesem Stadium klar...
new_sl = NormalizeDouble(MathMax(order_open_price + MathMax(STOP_LOSS*coef,stop_level)*Point, Ask + stop_level*Point), Digits) feel this construction
Und übrigens, in der Frage wurde das Beispiel für TP erwartet und Sie haben "new_sl = ".
Sie sollten aufmerksamer sein, Anfänger sollten schließlich ..., die Antwort sollte clever sein, nicht abstrus.
Wenn du erwähnt hättest, dass deine "coef"-Variable 10 für 5 Ziffern und 1 für 4 Ziffern ist, hätte ich es auch gemerkt, aber sonst...
Und übrigens, in der Frage wurde das Beispiel für TP erwartet und Sie haben "new_sl = ".
Sie sollten aufmerksamer sein, Anfänger sollten schließlich ..., die Antwort sollte clever sein.
Ich wünschte, jemand würde mir eine funktionierende Strategie verraten (eine Männerträne fällt auf den Boden...)
Wenn ich richtig verstanden habe, kann dieses Konstrukt nach start() eingefügt werden?
Wie gebe ich auch der Variablen coef die Werte aus dem vorherigen Kommentar? Ich meine 10 für eine 5. Stelle und 1 für eine 4. Stelle?
Wenn ich es richtig verstehe, kann dieses Konstrukt nach start() eingefügt werden?
Auch coef Variable, wie man es die Werte aus dem vorherigen Kommentar geben? Ich meine 10 für ein 5-Symbol und 1 für ein 4-Symbol?
Die Expert Advisors, die ich verwende, sind ungefähr gleich aufgebaut:
if (Ziffern==4 || Ziffern==2) coef=1; sonst coef=10; // Multiplikator für verschiedene Kontotypen 4/2 und 5/3Die EAs, die ich verwende, sind in etwa so aufgebaut:
if (Ziffern==4 || Ziffern==2) coef=1; sonst coef=10; // Multiplikator für verschiedene Kontotypen 4/2 und 5/3Danke für die Klarstellung!
Und nur um zu klären, wenn ich mechanisch 0 hinzufügen, wird TP und SL in dieser Art von Terminal arbeiten?