Das was Du suchst ist ähnlich dem ATR, hier findest Du dessen Code: https://www.mql5.com/de/code/12
Du kannst Dich danach richten.
- www.mql5.com
Keinesfalls stimmt: return(0) in der OnCalculate. Damit zwingst du diese Funktion immer wieder alle vorhandenen Kerzen abzuarbeiten.
int OnCalculate(const int rates_total, const int prev_calculated, const datetime &time[], const double &open[], const double &high[], const double &low[], const double &close[], const long &tick_volume[], const long &volume[], const int &spread[]) { return (rates_total); }Calli ist mir zuvor gekommen. Der ATR ist ein gutes Beispiel.
Vielen Dank für die Antworten, habe mir den ATR code mal angeschaut und den unteren code übernommen und ja es funktionierte, es wurde auch ins neue Fenster gezeichnet, einfach nicht korrekt wie ich es mir wünschte.
Für den Indikator (Oszillator -/+) brauche ich keine Berechnung auf x Perioden nur immer die gehandelte Kerze, wenn eine neue Kerze gehandelt wird, die alte Kerze fest im Datenfenster bleibt und die neue wieder auf jedem Tick berechnet.
Gibt es das Beispiele oder kann mir da jemand helfen wie es mit dem Code weitergeht nach OnCalculate?
Danke im Voraus für eure Kommentare.
Grüsse Fabian
Ich verstehe nicht ganz, was Du meinst, aber der Code ist nicht 'repainting', d.h. alte Kerzen/Bars/Werte zu den Kerzen/.. (älter als die aktuelle) werden nicht mehr geändert(!), sondern nur grafisch verschoben, wenn eine neue Kerze entsteht.
Jeder neue Tick ist ja nur für die aktuell offenen Kerze und ändert die jeweiligen weiteren Berechnungen auch des ATR (und anderer Indikatoren).
Vielen Dank für die Antworten, habe mir den ATR code mal angeschaut und den unteren code übernommen und ja es funktionierte, es wurde auch ins neue Fenster gezeichnet, einfach nicht korrekt wie ich es mir wünschte.
Für den Indikator (Oszillator -/+) brauche ich keine Berechnung auf x Perioden nur immer die gehandelte Kerze, wenn eine neue Kerze gehandelt wird, die alte Kerze fest im Datenfenster bleibt und die neue wieder auf jedem Tick berechnet.
Gibt es das Beispiele oder kann mir da jemand helfen wie es mit dem Code weitergeht nach OnCalculate?
Danke im Voraus für eure Kommentare.
Grüsse Fabian
Verstehe ich das richtig, daß du eigentlich nur zwei Kerzen sehen möchtest. Nämlich die alte(index 1) und die neueste(index 0), sofern diese TimeSeries sind?
A*B((Close-Low)/(High-Low)-C)*D und das soll die Berechnung sein ?
B ist eine Funktion?
A bisserl meht Info wär erforderlich!
Ist im Prinzip alles machbar. wenn du Kerzen darstellen möchtest benötigst du
SetIndexStyle(0,DRAW_BARS);
an Stelle von
SetIndexStyle(0,DRAW_LINE);
Falls ich da richtig liege schau dir den Heiken-Ashi Indikator an. Ich hänge den da dran, falls du ihn nicht hast.
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Hallo,
ich bin ein frischling im programmieren und bin gerade an einem kleinen Projekt um die gegenwärtige und vergangenen Kerzen zu berechnen in einem Oszillator (auf jedem Tick). Mein Problem ist, dass ich nicht weiss wie fortfahren mit der Berechnung und zeichnen im einem separtem Indikatorfenster.
Der Code sieht folgendermassen aus:
Die Variablen sind frei erfunden und dienen um den Oszillator frei zu bestimmen.
Die Berechnung sollte so aussehen und im neuen Fenster gezeichnet werden:
A*B((Close-Low)/(High-Low)-C)*D (alle daten sollten frei, auch in anderen Varianten geändert werden können)
Ich bitte um Hilfe.
Grüsse Fabian