Leider ist der von dir beschriebene Fehler für mich nicht nachvollzoehbar, sodass ich auch keine Unrichtigkeit feststellen kann.
bei mir sieht die Darstellung der Einzelglieder zu Bildung Deines DX so aus:
Hierbei ist
- Histogramm (grün) := DXplus = DMIplus(Length)
- Histogramm (rot) := DXminus = DMIminus(Length)
- Line (blau) := DXsum = DXplus + DXminus
- Line (gelb) := DXdiff = DXplus - DXminus
- Line (dunkelrot) := DX = DXdiff/DXsum
- Line (grau) := Nullinie
input: LenDMI(14),display(0);
vars: DXplus(0), DXminus(0), DXsum(0), DXdiff(0), D0);
DXplus=DMIplus(LenDMI); DXminus=DMIminus(LenDMI);
DXsum=DXplus+DXminus; DXdiff=DXplus-DXminus; DX=100*(DXdiff)/(DXsum);
if display=1 then begin plot1(DXplus,"plot1"); plot2(DXminus,"plot2"); plot3(DXsum,"plot3"); plot4(DXdiff,"plot4"); end else begin plot1(DX,"plot1"); plot2(0,"plot2"); print (date:8:0, time:8:0, DXplus:8:2, DXminus:8:2, DXdiff:8:2, DXsum:8:2, DX:8:0); end;
Hilfreich für Dich könnte die print-Zeile sein, die dir die jeweiligen Einzelwerte im Debugfenster anzeigt (auch bei geladenen Indikatoren DX Wilder (einmal mit display=1 und einmal mit display=1) im Datenfenster aufgelistet.
Den Wert -300% kannst Du allein vom Ansatz nur dann erhalten, wenn der Zähler größer als der Nenner wird. Da der Zähler sich als Differenz der beiden Werte darstellt, die im Nenner als Summe auftreten, kann der Fall Zähler ablsolut großer als Nenner nur dann auftreten, wenn Vorzeichen der Einzelterme berücksichtigung finden. DIplus und DIminus sind aber eweils positive Werte in der Spanne zwischen Null und 100, wenn sie als Relation zu der TrueRange prozentuell bestimmt werden.
Vielleicht findest Du bald die Stelle, die Dir das Ergebnis -300% bescherte.
Gruß Uwe
|