Frage an die Profis
Hi, ich bin gerade am überlegen, was genau die BREAK-Anweisung in folgendem Zusammenhang bewirkt.
Code:
void PlaceArrowUp(int Parameter){ |
Und noch eine Frage:
Dass man nur eine begrenzte Zahl an indicator_buffers benutzen darf ist mir bewusst. Aber kann es sein, dass man auch nur eine begrenzte Anzahl an gewöhnlichen Arrays verwenden darf ? |
Zitat:
"Aber kann es sein, dass man auch nur eine begrenzte Anzahl an gewöhnlichen Arrays verwenden darf?" Das wäre mir neu. Nur wird die Geschwindigkeitsperformance Deines PCs unter einer Vielzahl von Arrays leiden, v.a. wenn diese mehrdimensional sind und zahlreiche Felder aufweisen. traderdoc |
Danke für die Antwort, ich frage mich nun, ob es in MQL eine Funktion gibt, die mir die Ableitung einer Indikatorlinie errechnet.
Falls es keine bessere Option gibt, errechne ich einfach die Steigung zwischen 2 nebeneinanderliegenden Punkten. |
Nein, eine solche Funktion gibt es nicht.
traderdoc |
Beim anwenden meines Indikators habe ich festgestellt, dass er an manchen Stellen nicht die gewünschte Anzeige macht, obwohl der Code keine Syntax-Fehler enthält.
Ist es möglich, dass der Indikator mit anderen Kursdaten arbeitet, als sie im Chart angegeben werden ? Ich meine gelesen zu haben, dass die Historie zum testen von von EA's von den angezeigten Werten abweicht und dass 2 Historien mit verschiedenen Datentypen existieren, auf die MT4 zugreift. Meine Frage lautet nun: Kann ich eine Historie downloaden und MT4 so einstellen, dass auch genau diese Historie angezeigt UND mit ihr gerechnet wird ? |
Das Nichtanzeigen von Signalen muß ja nicht zwangsläufig auf Systaxfehler basieren. Oder anders gesagt, ein Systaxfehler würde automatisch zum Versagen der Lauffähigkeit des Indikators führen.
Und es wird nur auf die im entsprechenden Ordner hinterlegte Kurshistorie zurückgegriffen. Viel wahrscheinlicher könne sein, dass der Indikator auf Daten in einem anderen TimeFrame zugreift und diese mitverarbeitet und dann im Arbeitstimeframe daraufhin keine Signale liefert. Dazu müßte man einen Blick in den Code werfen. traderdoc |
Ich habe den Code mal etwas reduziert, um nur das Wesentliche zu zeigen.
Die Strategie ist dem ersten Bild zu entnehmen. Code:
#property indicator_chart_window Ich dachte mir ich löse das Problem durch das Setzen eines Flags: counterUp wird 0, wenn der untere MA unterschritten wurde und wird 1, wenn der obere MA überschritten wurde, aber es verschwinden dann die guten Pfeile. Ich verstehe nicht, warum der Pfeil erst gesetzt wird, wenn der obere MA 2mal durchstoßen wurde..... Code:
#property indicator_chart_window |
Nun, die Antwort ist, wenn man den Code vor sich hat, meistens ganz einfach. So auch hier:
Code:
void PlaceArrowUp(int i){ Es wird immer ein Pfeil gesetzt, wenn z.B.!! 1. das Open der Kerze 1 über dem oberen MA liegt und 2. das Open der Vorgängerkerze 2 unter und das Close dieser Kerze über dem oberen MA liegt und 3. von Kerze 2 aus gesehen (incl. dieser) 26 Kerzen nach links irgendwann mal das Low jener Kerze unter dem unteren MA liegt. Damit sind alle Bedingungen genannt. Der Pfeil in dem linken gelben Kreis ist ok, weil innerhalb der letzten 26 Kerze mindestens 2 mit dem Low unter dem unteren MA lagen. Die Kerze links neben der Pfeilkerze hat das Open unter und das Close über dem oberen MA und da Open der Pfeilkerze liegt über dem oberen MA also alles palletti! Aber!!!!!!!, auch der Pfeil in dem linken blauen Kreis ist völlig regelkonform, denn für diese Pfeilkerze gelten dieselben Bedingungen wie für die vorhergenannte, denn auch in diesem Fall befindet sich mindesten 1 Kerze mit dem Low unter der unteren MA, die Kerze links der Pfeilkerze har den oberen MA gekreuzt und das Open der Pfeilkerze liegt über dem oberen MA - auch alles paletti. Dasselbe gilt für die anderen beiden Pfeile!! traderdoc |
Deshalb wollte ich ja im 2. Code eine neue Variable einfúhren, die den Wert 0 annimmt, sobald der untere MA durchbrochen wurde.
Sobald der obere MA durchbrochen wird soll ein Pfeil gesetzt werden und diese Variable den Wert 1 annemhen. Bevor diese Variable nicht wieder auf 0 ist, darf kein weiterer Pfeil gezeichnet werden. So habe ich das im 2. CODEBLOCK implementieren wollen, aber als Resultat erhalte ich das,was im 2. Bild zu sehen ist. |
Alle Zeitangaben in WEZ +2. Es ist jetzt 11:41 Uhr. |
Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.6.1
Powered by vBCMS® 2.7.0 ©2002 - 2024 vbdesigns.de
Copyright ©2009 - 2023 by Expert-Advisor.com - Das Metatrader Forum