[ARCHIV] Alle Fragen von Anfängern, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Nirgendwo ohne dich - 3. - Seite 82
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
Danke, aber bei mir funktioniert es nicht. Ich brauche keinen Ausgleich. Oben habe ich geschrieben. Nehmen wir an, für die erste Kerze ist buffer[1]=High[1], für die dritte buffer[3]=Hight[3] und für die zweite Kerze müssen wir berechnen: buffer[2]=MathAbs(Higth[1]-Hight[3])/2 und erhalten das, was ich auf dem Bild möchte.
wolf05632:
SZY: Wie kann ich erreichen, dass ein Indikator nur in einem bestimmten Zeitrahmen (H1) funktioniert, d.h. Berechnungen durchführt (er funktioniert, ist aber nicht sichtbar)?
Warum hat Ihnen meine Version nicht gefallen? :)) Viel einfacher und mit weniger Berechnungen. Oder wollen Sie die Werte bei jedem Takt im Puffer behalten?
Ich habe es versucht, danke, aber es hat nicht funktioniert. Ich konnte sie nicht in der Tabelle anzeigen lassen. Vielleicht habe ich etwas missverstanden. Das Einzige, was ich verstanden habe, ist die Hauptsache: die Elemente im Puffer müssen der Reihe nach (1,2,3...), d.h. ohne Lücken (1,3,5...) und JEDEM! Element im Puffer muss ein Wert zugewiesen sein! :-)
Roman, danke für die Antwort..... Leider verstehe ich eine Sache immer noch nicht. Im Lehrbuch, https://book.mql4.com/ru/basics/expressions, unter "Type Approach". Option 4.1. Berechnung des Ergebnisses eines Integer-Typs
und die Variante 4.2. Eine ähnliche Situation tritt ein, wenn wir ein Ergebnis als Wert eines reellen Typs suchen", die gleiche Formel ist gegeben, aber im ersten Fall wird der Typ der Variablen F als int bezeichnet
und im zweiten Beispiel ist die Variable double
Leider verstehe ich die Logik der Umstellung immer noch nicht. Wenn in der ersten Variante klar ist, warum int der Variablen F zugewiesen wird (d. h. nach der Regel der impliziten Typkonvertierung), warum wird dann in der zweiten Variante double.... zugewiesen verwirrt mich total.
Bitte klären Sie, was ich in meinen Ausführungen übersehen haben könnte.
Ich danke Ihnen im Voraus.
Ich habe es versucht, danke, aber es hat nicht funktioniert. In der Tabelle war nichts zu sehen. Vielleicht habe ich etwas missverstanden?
Haben Sie den gesamten Code kopiert oder nur das, was in der Funktion start() stand? Das ist wichtig!
Das einzige, was ich verstanden habe, ist das Wichtigste: Die Elemente im Puffer müssen hintereinander stehen (1,2,3...), d.h. ohne Lücken (1,3,5...) und JEDEM! Element im Puffer muss ein Wert zugewiesen sein! :-)
Roman, danke für die Antwort..... Leider verstehe ich eine Sache immer noch nicht. Im Lehrbuch, https://book.mql4.com/ru/basics/expressions, unter "Type Adduction. Option 4.1. Berechnung des Ergebnisses eines Integer-Typs
und die Variante 4.2. Eine ähnliche Situation tritt auf, wenn ein Ergebnis als Wert eines reellen Typs gesucht wird", die gleiche Formel ist gegeben, aber in einem Fall wird der Typ der Variablen F als int bezeichnet
und im zweiten Beispiel ist die Variable bereits ein Double
Leider verstehe ich die Logik der Umstellung immer noch nicht. Wenn in der ersten Variante klar ist, warum int der Variablen F zugewiesen wird (d. h. nach der Regel der impliziten Typkonvertierung), warum wird dann in der zweiten Variante double.... hat mich völlig verwirrt.
Bitte erklären Sie mir, was ich in meiner Erklärung übersehen haben könnte.
Vielen Dank im Voraus.
n
Der Interanger-Typ ist ein Duble-Typ, der Duble-Variablen-Typ hat einen größeren Bereich, so dass es nicht möglich ist, dass Variablen in einem Ausdruck "die Möglichkeit" haben, von verschiedenen Typen zu sein, und das Ergebnis ist eine Variable, die einen engeren Bereich von akzeptierten Werten hat, in diesem Fall, der Interanger-Typ. D.h., wenn mindestens eine Variable in einem Ausdruck vom Typ duble ist, muss und kann auch das Ergebnis im Bereich von duble liegen, sonst kommt es zu einem Kompilierfehler - type mismatch.
Einzelheiten finden Sie hier.
Integer ist ein Duble-Typ, und Duble-Variablen haben einen breiteren Anwendungsbereich, so dass es nicht möglich ist, dass Variablen in einem Ausdruck "die Möglichkeit" haben, von verschiedenen Typen zu sein, und das Ergebnis ist eine Variable, die einen engeren Bereich von akzeptierten Werten hat, in diesem Fall der Typ Integer. D.h., wenn mindestens eine Variable in einem Ausdruck vom Typ duble ist, muss und kann auch das Ergebnis im Bereich von duble liegen, sonst kommt es zu einem Kompilierfehler - type mismatch.
Weitere Einzelheiten finden Sie hier.
Ich verwende oft die implizite Typkonvertierung. Aber ich muss unnötige Klammern verwenden.
Leute, was bedeutet #INF - ist es außerhalb des zulässigen Bereichs von double? siehe zweite Zeile von oben (es zählt das Produkt von double TWR, nämlich sein vorheriger Wert wird mit dem nächsten multipliziert). Wie werden diese Werte, die von der TWR-Variablen genommen werden, korrekt gezählt?
Wenn Sie diesen Abschnitt des Lehrbuchs aufmerksam lesen, werden Sie feststellen, dass Sie sich zunächst den Ausdruck links von der Zuordnung "=" ansehen müssen:
Die Regel besagt:
A ist eine Variable vom Typ double auf der linken Seite, und der Wert von A+Y ist eine Zahl vom Typ double.
Achten Sie dann auf den Typ der Variablen, der der Ausdruck zugewiesen ist.
Im ersten Fall: "Zunächst wird der Typ des Ausdrucks A+Y in den Typ int umgewandelt (gemäß der Regel für die Berechnung von Ganzzahlen), und dann wird dieses Ergebnis zum Wert der Ganzzahlvariablen F".
Im zweiten Fall: "Der Zieltyp der Variablen F (links vom Zuweisungszeichen), in diesem Fall der Typ double, ist der gleiche wie der Typ double des Ausdrucks A+Y, so dass keine Zieltypkonvertierung stattfindet".
Verstehen? :)))
Leute, was bedeutet #INF - ist es außerhalb des zulässigen Bereichs von double? siehe die zweite Zeile von oben (es zählt das Produkt von double TWR, nämlich sein vorheriger Wert wird mit dem nächsten multipliziert). Wie werden DIESE Werte der TWR-Variablen korrekt gezählt?
Im Allgemeinen ist INFINITY (kurz INF ) unendlich! :)) Ja, es stellt sich heraus, dass Double nicht genügend Leistung (Speicher) hat, um eine so große Zahl zu speichern.
Und wie man richtig rechnet, kann ich nur raten... Eigenen Typ erstellen, bedingt: Speichern in zusätzlicher Variable Ziffernkapazität, und doppelte Multiplikation mit 10^n, wobei n die Ziffernkapazität ist. Aber in diesem Fall geht die Genauigkeit verloren, und ich sehe, dass Ihre Genauigkeit immer schlechter wird...
Aber vielleicht ist es einfacher, die Logik der Berechnungen zu ändern? :))) Oder vielleicht liegt irgendwo ein Fehler vor.