![]() |
|
Startseite | Registrieren | Hilfe | Benutzerliste | Kalender | Suchen | Heutige Beiträge | Alle Foren als gelesen markieren |
Programmierung MQL4 Hier gehts rund ums Programmieren in MQL4. |
![]() |
|
Themen-Optionen | Thema durchsuchen | Ansicht |
|
|||
![]()
Hi Zuassammen,
steck grad ein wenig fest, Array´s sind leider mein Alptraum ![]() Ich hoffe jem kann mir weiter helfen. Ich versuche Werte im M5 auszulesen. Beginnen möchte ich immer am Anfang eines Tages. Bis dahin ganz einfach. Nur wie bekomme ich es hin das dass Array die ausgerechnete Anzahl der Kerzen seit Beginn des angefangenen Tages übernimmt?!? Habs mit ArrayResize probiert und versucht die ermittelten Kerzen vom Tagesbeginn rein zu nehmen , aber der fliegt sofort aus dem Array. Habs auch so versucht: AO[Tagesbeginn] , wollt er aber ned annehmen , obwohl da ein int dran hängt,was ich auch ned nachvollziehen kann, vllt könnte mir das auch jem erklären. Der Versuch mit iAO(Symbol(),0,(iHighest(Symbol(),0,MODE_HIGH,Tage sbeginn,1)) ) ging auch schief weil da falsche Werte raus kamen. Wenn ich nen Wert unter 288 angeben (Anzahl der Kerzen bei M5 für 24H )flieg ich natürlich da auch raus. Screenshot hab ich auch eingebunden, Anbei mein Code: Code:
int BarCount = 0; int OnInit() { //--- //--- return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Expert deinitialization function | //+------------------------------------------------------------------+ void OnDeinit(const int reason) { //--- } //+------------------------------------------------------------------+ //| Expert tick function | //+------------------------------------------------------------------+ int start() { if(BarCount != Bars) { Peaks(); BarCount = Bars; } return(0); } //+------------------------------------------------------------------+ void Peaks() { datetime heute = Time[0],Beginn = heute - heute % 86400; // Ermittlung eines neuen Tages int Tagesbeginn = iBarShift(NULL,0, Beginn,true); double AO[210]; //ArrayResize(AO,Tagesbeginn,0); double wert; for(int i=0 ; i<=Tagesbeginn; i++) { wert = iAO(Symbol(),0,i); AO[i] = wert; } int maxValueIdx=ArrayMaximum(AO,WHOLE_ARRAY,0); int minValueIdx=ArrayMinimum(AO,WHOLE_ARRAY,0); double Letztes_AO_Hoch = AO[maxValueIdx]; double Letztes_AO_Tief = AO[minValueIdx]; double Letztes_Hoch = High[iHighest(Symbol(),0,MODE_HIGH,Tagesbeginn,1)]; double Letztes_Tief = Low[iLowest (Symbol(),0,MODE_LOW ,Tagesbeginn,1)]; Comment("AO_Hoch: " ,Letztes_AO_Hoch,"\nAO_TIEF :",Letztes_AO_Tief,"\nKerzen seit Tagesbeginn:",Tagesbeginn ,"\nHoch: " ,Letztes_Hoch,"\nTIEF :",Letztes_Tief,"\nBeginn: ",Beginn); } |
|
|||
![]()
Das Erste, was auffällt ist diese Zeile:
for(int i=0 ; i<=Tagesbeginn; i++) muss lauten ArrayResize(AO,Tagesbeginn); for(int i=0 ; i<Tagesbeginn; i++), weil, wenn Tagesbeginn die Dimension darstellt die Felder von 0 bis Tagesbeginn-1 laufen und das Feld AO[Tagesbeginn] wäre somit Out of Range. double AO[]; in den globalen Variablen deklarieren! traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis. |
|
|||
![]()
danke Doc!!! hat super funktioniert
![]() |
|
|||
![]()
vllt ist einer so nett und kann mir ne Anfängerfrage beantworten?!
Wieso lassen sich keine Variablen in Arrays rein hauen?!? als Beispiel: Code:
int W= 20; int S = 12; int Y[] = {W,S}; Direkte Zuweisung so wie hier funktioniert ja auch Code:
int w = 10; bspl[0]= w; LG |
![]() |
Lesezeichen |
Stichworte |
array, array resize, arrays, arrays resizen, mql4, programmierung, programmierung metatrader, resize |
Themen-Optionen | Thema durchsuchen |
Ansicht | |
|
|