[WARNUNG GESCHLOSSEN!] Alle Fragen von Neulingen, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Ohne dich kann ich nirgendwo hingehen. - Seite 192

 

Bitte geben Sie mir einen Hinweis. Ich verstehe nicht, warum MathMax nicht funktioniert.

Auch die vereinfachte Version des Codes (einfacher geht's nicht) funktioniert nicht. Die Variable GBPUSD_High funktioniert nicht :-( Während GBPUSD_Low gut funktioniert.

P.S. Ich interessiere mich nur für die Werte auf den Balken ab dem Moment, in dem der Indikator geladen wird.

//+-------------------------------------------------------------------
#property indicator_separate_window
#property indicator_buffers3
#property indicator_color1 Black
#property indicator_color2 Gray
#property indicator_color3 Gray
//--------------------------------------------------------------------
double GBPUSD[], GBPUSD_High[], GBPUSD_Low[];
//--------------------------------------------------------------------

int init()
{
//--------------------------------------------------------------------

SetIndexBuffer(0
,GBPUSD);
SetIndexStyle (0,DRAW_LINE,STYLE_SOLID,2
);
SetIndexBuffer(1
,GBPUSD_High);
SetIndexStyle (1,DRAW_LINE,STYLE_DOT,1
);
SetIndexBuffer(2
,GBPUSD_Low);
SetIndexStyle (2,DRAW_LINE,STYLE_DOT,1);
//--------------------------------------------------------------------

return;
}
//--------------------------------------------------------------------

int start()
{

int Counted_bars, i;
//--------------------------------------------------------------------
Counted_bars=IndicatorCounted();
i=Bars-Counted_bars-1;

while (i>=0)
{
GBPUSD[i]=Close[i];

if (GBPUSD_Low[i]==0) GBPUSD_Low[i]=GBPUSD[i];
GBPUSD_High[i]=MathMax(GBPUSD_High[i],GBPUSD[i]);
GBPUSD_Low[i]=MathMin(GBPUSD_Low[i],GBPUSD[i]);
i--;
}
//--------------------------------------------------------------------

return;
}
//--------------------------------------------------------------------

Zum Laden natürlich auf GBPUSD.

 
alderru >> :

Bitte geben Sie mir einen Hinweis. Ich verstehe nicht, warum MathMax nicht funktioniert.

Auch die vereinfachte Version des Codes (einfacher geht's nicht) funktioniert nicht. Die Variable GBPUSD_High funktioniert nicht :-( Während GBPUSD_Low gut funktioniert.

P.S. Ich interessiere mich nur für die Werte auf den Balken ab dem Zeitpunkt, an dem der Indikator geladen wird.

Natürlich muss ich ihn auf GBPUSD laden.

MathMax hat damit nichts zu tun. Variante:

while ( i>=0)
{
GBPUSD[ i]=Close[ i];
GBPUSD_High[ i]=High  [ i];
GBPUSD_Low[ i]=Low[ i];

//if (GBPUSD_Low[i]==0) GBPUSD_Low[i]=GBPUSD[i];

GBPUSD_High[ i]=MathMax( GBPUSD_High[ i], GBPUSD[ i]);
GBPUSD_Low[ i]=MathMin( GBPUSD_Low[ i], GBPUSD[ i]);
i--;
}
 
tmp.0 >> :

>>MathMax hat damit nichts zu tun.

Ganz genau! Es ist also klar, dass High immer größer oder gleich Close ist, MathMin ist dasselbe ;)

 
OneDepo писал(а) >>

Ganz genau! Es ist also klar, dass High immer größer oder gleich Close ist, MathMin ist dasselbe ;)

Als Beispiel habe ich absichtlich die Berechnung von bereits bekannten Werten angegeben. Im Original suche ich nach Höchst- und Tiefstwerten auf einem Balken einer völlig anderen Variablen. Wenn der Indikator gezeichnet wird, wird die Kurve der Variablen natürlich neu gezeichnet, während der Balken gebildet wird. Ich bin auf der Suche nach den Grenzpunkten.

Ich verstehe nicht, warum die MathMax-Funktion nicht von selbst funktioniert. MathMin funktioniert gut; GBPUSD_Low-Kurve wird gezeichnet...

Haben Sie irgendwelche Anmerkungen zur Programmiergrammatik?

Bitte, installieren Sie den Indikator, sagen Sie mir, was falsch ist, warum GBPUSD_High nicht berechnet wird.

 
alderru >> :

Als Beispiel habe ich absichtlich die Berechnung von bereits bekannten Werten angegeben. Im Original suche ich nach dem Maximum und Minimum eines Balkens einer völlig anderen Variablen. Wenn der Indikator angezeigt wird, wird die Kurve der Variablen natürlich während der Balkenbildung neu gezeichnet. Ich bin auf der Suche nach den Grenzpunkten.

Ich verstehe nicht, warum die MathMax-Funktion selbst nicht funktioniert.

Haben Sie irgendwelche Anmerkungen zur grafischen Programmierung?

Installieren Sie den Indikator und sagen Sie mir, was hier falsch ist, warum GBPUSD_High nicht berechnet wird.

Lassen Sie sich nicht täuschen. Fügen Sie dies in Ihren bevorzugten Teil des Codes ein:

Print (GBPUSD_High[i],":",GBPUSD_Low[i],":",GBPUSD[i]); 
und Sie werden eine Offenbarung auf der Registerkarte "Experten" erleben.
 
tmp.0 писал(а) >>

Lassen Sie sich nicht täuschen. Sie setzen den Code dort ein, wo Sie ihn haben wollen:

und Sie werden eine Offenbarung auf der Registerkarte "Experten" erleben.

Und wenn schon...

Es gibt keine Epiphanie. Print druckt nur zwei Werte, genauso wie es den Indikator anzeigt. Was ist mit dem dritten?

Haben Sie überhaupt versucht, das zu tun, was Sie empfehlen?

 
Nächste Frage, bitte :)
 
tmp.0 писал(а) >>
Nächste Frage, bitte :)

Sehr clever.

Vielen Dank für die "Hilfe".

 
alderru >> :

Sehr clever.

Danke für die "Hilfe".

Sie haben die Antwort bereits oben erhalten. Der Grund dafür ist die Verwendung eines nicht zugewiesenen Wertes im rechten Teil des Zuweisungsoperators. Was bedeutet GBPUSD_High[i] in der Zeichenfolge

GBPUSD_High[i]=MathMax(GBPUSD_High[i],GBPUSD[i]);

Es wurde Ihnen auch eine Möglichkeit aufgezeigt, die Situation zu korrigieren. Lassen Sie die Ironie hinter sich.


 
OneDepo писал(а) >>

Der Grund dafür ist die Verwendung eines nicht zugewiesenen Wertes auf der rechten Seite des Zuweisungsoperators.

Die Angabe von Indikatorpuffern bedeutet also nicht, dass die Zellwerte gleich Null sind. Richtig?

Daher wird MathMax nicht berechnet, da einer der zu vergleichenden Werte (nämlich GBPUSD_High) keinen Wert hat (nicht einmal Null).

Ich verstehe. Danke OneDepo.

Ich entschuldige mich dafür, dass ich mit meiner Vereinfachung alle verwirrt habe (Wortspiel beabsichtigt). Wie bereits erwähnt, interessiere ich mich nicht für den Wert von High Quotes, sondern für den Maximalwert auf dem Balken meiner eigenen Funktion, dessen Kurve der Indikator erfolgreich zeichnet und erneut durchläuft, während er den Balken bildet. Dies ist der Bereich, in dem der Indikator während des Balkens, der mich interessiert, neu gezeichnet wird.

Ich werde darüber nachdenken.

P.S. Aber warum wird MathMin als unproblematisch angesehen, die Bedingungen sind gleich und werden als gleich deklariert?

P.S.: Ich bin sehr unverblümt. Ich kann es nicht tun. Hilfe, bitte.

Grund der Beschwerde: