Zitat:
Zitat von stoffel
... aber wenn sie den %abstand berechnet kommt es zu unsinnigen Ergebnissen. Zusätzlich habe ich für den aktuellen Chart ein Label-objekt erstellt. Da werden die Ergebnisse korrekt angezeigt
Kling vllt etwas kompliziert ist es aber nicht. Ich hänge einen Screenshot an.
hier mal meine Funktion:
8< --- SNIP ---
Ich hoffe ich habe mich halbwegs klar ausgedrückt.
Im Screenshot unten kann man den Tooltip mit den W52 High/Low % sehen.
Hat jemand eine Idee warum die Berechnung für den aktuellen Chart korrekt ist, nicht aber bei den Tooltips
|
So ganz klar ist das nicht und Dein Bild sieht eher aus wie der Negekampf im Tunnel. Ich habe folgendes gemacht:
1. _Symbol eingesetzt, damit ich das zum Testen auf ein paar Paare schmeißen kann.
2. die w52Prozent erst mal als reinen Wert genommen
3. alle Berechnungen auf _Digit Wert Genauigkeit
4. dann beim Prozent die *100
5. ganz zum Schluß die 2-er Digits für die Prozente
Hier stimmt alles. Code:
Code:
double w52Prozent = NormalizeDouble((w52High-w52Low),_Digits);
double w52HighProzent1 = NormalizeDouble(w52High-Close[0],_Digits);
double w52HighProzent = NormalizeDouble(w52HighProzent1/w52Prozent*100,_Digits);
if(w52HighProzent > 100 || w52HighProzent < 0)Print("w52 ERROR w52HighProzent ",w52HighProzent," ",GetLastError());
double w52LowProzent1 = NormalizeDouble(Close[0]-w52Low,_Digits);
double w52LowProzent = NormalizeDouble(w52LowProzent1/w52Prozent*100,_Digits);
if(w52LowProzent > 100 || w52LowProzent < 0)Print("w52 ERROR w52LowProzent ",w52LowProzent," ",GetLastError());
//Print("end ",GetMicrosecondCount());
Print(_Symbol," w52Prozent Range(100%): ",w52Prozent);
Print(_Symbol," summ H%1+L%1: ",w52HighProzent1+w52LowProzent1);
Print(_Symbol," W52 iHighest: ",w52iHighest," W52 High: ",w52High," W52 High % ",w52HighProzent);
Print(_Symbol," W52 iLowest: ",w52iLowest," W52 Low: ",w52Low," W52 Low % ",w52LowProzent);
Print(_Symbol," summ H%+L%: ",w52HighProzent+w52LowProzent);
LabelCreate(0,"Label",20,20,"text","Arial",12,clrYellow,0,1,"tooltip");
ObjectSetString(0,"Label",OBJPROP_TOOLTIP,
"MarketClose="+DoubleToStr(Close[0],_Digits)
+"\nw52 High="+DoubleToStr(w52High,_Digits)
+"\nw52 Low ="+DoubleToStr(w52Low,_Digits)
+"\nLow % ="+DoubleToStr(w52LowProzent,2)
+"\nHigh %="+DoubleToStr(w52HighProzent,2)
);
Vielleicht geht es so bei Dir. AVT