Jede Anfängerfrage, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Nirgendwo ohne dich - 6. - Seite 43
Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Helfen Sie mir, eine Funktion zu schreiben, die den maximalen ATR-Wert unter den im Fenster sichtbaren Balken zurückgibt. Ich habe das ganze Internet durchsucht, konnte aber nichts Ähnliches finden.
Ich danke Ihnen,
Helfen Sie mir, eine Funktion zu schreiben, die den maximalen ATR-Wert unter den im Fenster sichtbaren Balken ermittelt. Ich habe das ganze Internet durchsucht, konnte aber nichts Ähnliches finden.
Ich danke Ihnen,
/
extern int p = 4; // ATR-Periode
//------
int start()
{
int i;
Doppel-M;
while( i < WindowBarsPerChart() - p )
{
double a = iATR( NULL, 0, p, i );
wenn ( m < a )
{
m = a;
}
i++;
}
Alert( " Der maximale ATR-Wert in Pips für die sichtbare Anzahl von Balken ist ", m / Punkt ); //
/////
zurück(0);
}
Boeing747 Vielen Dank. Ich hätte hier sofort schreiben sollen.
Die endgültige Variante der Funktion in meiner Version sieht also wie folgt aus
double ATR_Max() {
int i;
Doppel-M;
while( i < WindowBarsPerChart() - p ) {
double a = iATR( NULL, 0, p, i );
wenn ( m < a ) {
m = a;
}
i++;
}
Alert( " Der maximale ATR-Wert für die sichtbare Anzahl von Balken ist - ", m );
zurück(m);
}
Boeing747 Vielen Dank. Ich hätte es gleich hier schreiben sollen.
Die endgültige Variante der Funktion in meiner Version sieht also so aus
double ATR_Max() {
int i;
Doppel-M;
while( i < WindowBarsPerChart() - p ) {
double a = iATR( NULL, 0, p, i );
wenn ( m < a ) {
m = a;
}
i++;
}
Alert( " Der maximale ATR-Wert für die sichtbare Anzahl von Balken ist - ", m );
zurück(m);
}
Ich muss einen Fehler in while( i < WindowBarsChart() - p ) gemacht haben.
höchstwahrscheinlich berechnet die Funktion iATR( NULL, 0, p, i ); Werte für alle Balken im Diagramm, und Sie können oder sollten vielleicht
korrigiert zu while( i < WindowBarsChart() ). Ich habe noch nie mit iATR() gearbeitet; ich sollte es einmal ausprobieren.
Sie können Ihre Funktion auch ohne die Funktion iATR() schreiben, sozusagen in ihrer reinen Form.
Ich muss einen Fehler in while( i < WindowBarsChart() - p ) gemacht haben.
Höchstwahrscheinlich berechnet die Funktion iATR( NULL, 0, p, i ); die Werte für alle Balken im Diagramm.
korrigiert zu while( i < WindowBarsChart() ). Ich habe noch nie mit iATR() gearbeitet; ich sollte es einmal ausprobieren.
Im Grunde kann ich Ihre Funktion auch ohne iATR() schreiben, sozusagen in Reinform.
Ich dachte jetzt auch, dass der Zeitraum nichts damit zu tun hat. Es wäre wahrscheinlich besser, sie zu entfernen.
Kann man das nicht über ein Array machen? Sammeln Sie in einem Array die Werte aller APR im Fenster und finden Sie dann das Maximum mit dieser Funktion - ArrayMaximum Ich fürchte, meine Kenntnisse reichen nicht aus.
Ich habe mir überlegt, dass der Zeitraum nichts damit zu tun hat. Es ist wahrscheinlich besser, sie zu entfernen.
Kann dies nicht über ein Array geschehen? Sammeln Sie in einem Array die Werte aller APR im Fenster und finden Sie dann das Maximum mit dieser Funktion - ArrayMaximum Ich fürchte, meine Kenntnisse reichen dafür nicht aus.
Ja, es ist möglich, iATR(); in einer Schleife zu scrollen, um damit Arrays zu bewerten und dann mit ArrayMaximum den Maximalwert ATR zu extrahieren. Aber trotzdem stellt sich heraus, dass es notwendig ist, speziell für diesen Zweck eine Schleife zu verwenden, um Arrays zu bewerten, wie in der ersten Variante . aber in der ersten Variante wurde das Maximum während des Scrollens einer Schleife berechnet, die viel sparsamer ist als mit der Variante ArrayMaximum. Sie brauchen keine speziellen Kenntnisse, Sie können detaillierte Beschreibungen über ArrayMaximum in einem Lehrbuch oder Nachschlagewerk finden.
Danke, ich werde morgen versuchen, das zu überprüfen. Noch eine Frage: Wie kann ich in dieser Funktion Tester-Ressourcen sparen, so dass der Maximalwert nach dem Erscheinen eines neuen Balkens berechnet wird und nicht bei jedem Tick?
Danke, ich werde morgen versuchen, den Vorgang zu überprüfen. Noch eine Frage: Wie kann ich die Ressourcen des Testers in dieser Funktion speichern, so dass der Maximalwert berechnet wird, wenn ein neuer Balken erscheint und nicht bei jedem Tick?
Für den Anfang können Sie Folgendes versuchen
auf einer globalen Ebene erklären t
und über die Schleife schreiben
wenn ( t != Time[0] )
{
t = Zeit[0];
// Schleife, in der ATRmax berechnet wird
}
auf diese Weise wird die Berechnung in der Schleife einmal bei der Eröffnung eines neuen Taktes durchgeführt. vielleicht gibt es noch andere, cleverere Varianten...
Boeing747, dr.Vasgenich, Leute, könnt ihr nicht die "SRC"-Taste benutzen oder ist das für euch in Ordnung?
Boeing747, dr.Vasgenich, Leute, könnt ihr nicht die "SRC"-Taste benutzen oder ist das für euch in Ordnung?