int HighestHigh=iHighest(_Symbol,PERIOD_CURRENT,MODE_HIGH,Candles,i); int LowestLow=iLowest(_Symbol,PERIOD_CURRENT,MODE_LOW,Candles,i);ihighest spuckt dir lediglich den index raus. Also die stelle, andem sich der höchste wert der Candles-Kerzen befindet.
Oh vergiss es. du frägst das ja richtig ab. entschuldige!
Also angezeigt wird die Linie schon mal und macht auch den Verlauf schon mal gut mit, aber leider ist der Wert total falsch!
Woran liegt das jetzt?
kijunsenBuffer[i]=high[HighestHigh]+low[LowestLow]/2.0/Candles;
Die Candles(=26) ist zuviel. Du willst ja nur den Mittelwert aus HH und LL. In denen hast Du schon die Candles verbaut.
Was heißt den:
? Ist das ein Mittelwert und für welche Kerze wird denn mit welchen anderen Werten der Preis berechnet?
Das was da steht als Kommentar, die Letzetn 26 Kerzen als Berechnugsbasis und davon der Mittelwert also das höchste Hoch und das tiefste Tief basierend auf 26 Kerzen das durch 2 als Mittelwert.
Verstehe deine Frage nicht
Die Candles(=26) ist zuviel. Du willst ja nur den Mittelwert aus HH und LL. In denen hast Du schon die Candles verbaut.
Ja hatte ich auch gedacht aber dann kommt n gar nix mehr.
kijunsenBuffer[i]=high[HighestHigh]+low[LowestLow]/2.0/Candles; //Kijun Linie = (Höchstes Hoch + Tiefstes Tief) / 2 (für die letzten 26 Perioden)
Das macht an mehreren Stellen keinen wirklichen Sinn:
1. willst Du ja keinen gleitenden Durchschnitt berechnen, brauchst also die Candles an der Stelle nicht (mehr).
2. Gilt immer noch Punkt- vor Strichrechnung! In Deinem Fall addierst Du also zum high noch das "doppelt" geteilte low
3. Versuchs mal anstatt des high[] mit High[] (musst Du dann auch nicht als Array vorab initialisieren)
Probier das mal (ansonsten ggf. mal mit iHigh probieren):
kijunsenBuffer[i]=(High[HighestHigh]+Low[LowestLow])/2.0;
Ja hatte ich auch gedacht aber dann kommt n gar nix mehr. bzw der wert st astronomisch hoch
Also wie schon gesagt, wenn Du nur den Mittelwert nehmen möchtest, hat die 26 da nichts mehr zu suchen.
if(rates_total<Candles) return(rates_total); int limit=rates_total-prev_calculated; if(limit==0) limit++; for(int i=0; i<limit; i++) { if(i>rates_total-Candles) continue; int HighestHigh=iHighest(_Symbol,PERIOD_CURRENT,MODE_HIGH,Candles,i); int LowestLow=iLowest(_Symbol,PERIOD_CURRENT,MODE_LOW,Candles,i); kijunsenBuffer[i]=high[HighestHigh]+low[LowestLow]/2; //Kijun Linie = (Höchstes Hoch + Tiefstes Tief) / 2 (für die letzten 26 Perioden) Print(kijunsenBuffer[0]); }
Gibt immer noch falsche Werte, an sich sollte es doch aber stimmen. Denn das höchte hoch der letzten 26 Kerzen und das Tiefste Tief der letzten 26 Kerzen wird ja berechnet mittels iHighest und iLowest das ganze + und dann /2
Wie findest Du heraus, dass es falsche Werte gibt?
Hoffentlich nicht durch das:
Print(kijunsenBuffer[0]);
Wenn ja, dann ersetze die 0 mal durch das i.
- 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 im Rahmen meines Kurses schreibe ich einige Übungen um mein Verständnis zu erweitern, das Thema Customindikatoren ist nach wie vor ein Schwerpunkt.
Nun hab ich also als Übungsaufgabe vorgenommen ein eigenen Indikator zu Schreiben.
Dieser Indikator soll den Kijunsen des Ichimoku nachzeichen. Als Kontrolle vergleiche ich dann die Werte mit den Ichhimoku wo ja Der Kijunsen ei teil davon ist.
Klar kann ich den ichimoku so utzen und einfach nur den Wert der Kijunsen ausgeben aber das ist nicht zielführend, ich will ja lernen wie man so n Indi selber schreibt und den Aufbau kapieren.
So aber nu an´s Werk:
Also angezeigt wird die Linie schon mal und macht auch den Verlauf schon mal gut mit, aber leider ist der Wert total falsch!
Woran liegt das jetzt?