CopyHigh() füllt ein Array mit higs in der gewünschten Anzahl. Also nur die highs. Die Definition von high ist nicht. richtig muss ein Array sein (dynamisch oder statisch)
CopyRates liefert ein Array von MqlRates, kann auch dynamisch oder statisch definiert sein.
Steht aber alles genau in der Reference.
int to_copy = 10; double highs[]; if(CopyHigh(symbol,timeframe,0,to_copy,highs)!=to_copy) return; // hat sich vielfach bewehrt
CopyHigh() füllt ein Array mit higs in der gewünschten Anzahl. Also nur die highs. Die Definition von high ist nicht. richtig muss ein Array sein (dynamisch oder statisch)
CopyRates liefert ein Array von MqlRates, kann auch dynamisch oder statisch definiert sein.
Steht aber alles genau in der Reference.
CopyHigh ist ja eine Integer
was bekomme ich da zurück? bekomme ich da die 10 Hochwerte, z.b 1,25000, und fülle die in ein Arry?
Das die 19 Hochwerte könnte ich mir dann in einer Schleife in die Print Funktion geben zur Kontrolle oder?
Die Hüchst und Tiefstwerte bekommst du mit ArrayMaximum(....) und ArrayMinimum(......)
Das ist aber der Index nicht der Wert!
Das Array sollte als Series definiert werden, damit Index 0 die aktuelle Kerze ist.
Ich such mal in meinen Schätzen ....... gefunden:
double GetMaxVal(double const &Array[], int count) { int i = ArrayMaximum(Array, 0, count); return(Array[i]); } double GetMinVal(double const &Array[], int count) { int i = ArrayMinimum(Array, 0, count); return(Array[i]); }
Das sucht dir von der aktuellen Kerze (in die Vergangenheit) in einer bestimmten Periode das High oder Low.
double high[]; double low[]; int count = 24; ArraySetAsSeries(high,true); ArraySetAsSeries(low ,true); if(CopyHigh(_Symbol,_Period,0,count,high)!=count) return; if(CopyLow (_Symbol,_Period,0,count,low )!=count) return; Print("Highest high: ",GetValMax(high, count)); Print("Lowest low: " ,GetValMin(low , count));
Nicht wirklich getestet, sollte aber funktionieren
Es geht natürlich auch anders:
double GetMaxVal(double const &Array[], int start, int end) { int i; double val=DBL_MIN; for(i=start; i<=end; i++) if(val<Array[i]) val=Array[i]; return(val); } double GetMinVal(double const &Array[], int start, int end) { int i; double val=DBL_MAX; for(i=start; i<=end; i++) if(val>Array[i]) val=Array[i]; return(val); }
- 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,
stehe gerade ein wenig auf der Leiter,
wenn ich die CopyHigh() funktion verwende,
benötige ich dann auch
wenn ja warum?
wenn nein, warum nicht?
danke
amando