|
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 |
|
|||
Hilfe bei ZZ Array
Nabend ,
hoffe jem weiß Rat, hab den Zig Zag vernünftig auslesen können, jedoch wird nach dem fünften Array nix mehr wieder gegeben. woran kann das liegen?? Bild und Code sind dabei LG Code:
double ZIGZAG[9]; double value; int start() { if( BarCount != Bars ) { int count = 0, i = 0, Buffer =0 ; while(count < 8) { for(Buffer =-1 ; Buffer <1; Buffer++) { value = iCustom(Symbol(),0,"ZigZag",5,5,3,Buffer,i); if (value > 0 && Buffer ==0) { ZIGZAG[count] = value; count++; break; } } i++; BarCount = Bars; } } |
|
|||
Hallo,
warum ist der Code so kompliziert? Code:
double ZIGZAG[9]; int start() { int i = 0; double value = 0; for(i =0; i <9; i++) { value = iCustom(Symbol(),0,"ZigZag",5,5,3,0,i); if (value > 0) { ZIGZAG[count] = value; } i++; } } Gruß yytrader |
|
|||
nabend yytrader,
ja mit kleinen Zusätzten macht er das auch, kann man natürlich auch so schreiben aber darum geht es mir nicht, mir gehts darum, dass er nur bis zu 6 werte im array speichert und danach aufhört/die werte verloren gehen und ich nicht verstehe warum, array is ja groß genug, und er läuft die schleife auch durch bis er die anzahl an werten hat und beginnt dann von neuem. deswegen meine frage woran das liegen kann das er die restlichen werte einfach nicht wiedergibt/verloren gehen |
|
|||
Zitat:
Du versuchst mit iCustom auf den Index Buffer -1 zuzugreifen, den gibt es aber nicht. Dein Code müsste einiges an Fehlermeldungen auswerfen wenn Du ihn so ausführst. Deswegen verhält er sich wohl nicht so wie du es gerne hättest. Gruß naranjoe |
|
|||
Da nur der Buffer 0 ausgelesen wird, ist u.a. die for-Schleife im ersten Code völlig überflüssig, zumal richtigerweise festgestellt wurde, dass es keinen Buffer mit -1 gibt.
Der Code von @yytrader ist aber leider auch nicht ganz zielführend, weil erstens der Index count nicht incrementiert wird und zweitens das Shift i nur von 0 bis 9 läuft. Shift i muß allerdings solange incrementiert werden, bis count auf den Wert 9 incrementiert wurde. Erst dann darf die gesamte while-Schleife verlassen werden. Anzumerken sei hier, dass es auch das Feld ZIGZAG[0] mit einem Wert gibt, welches aber nicht im Chart abgebildet wird. Daher: Code:
double ZIGZAG[9]; int start() { int i = 0; double value = 0; int count = 0; while (count < 9) { value = iCustom(Symbol(),0,"ZigZag",5,5,3,0,i); if (value > 0) { ZIGZAG[count] = value; count++; } i++; } }
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis. |
|
|||
moin zusammen,
Zitat:
Fehler werden angezeigt bezüglich des Buffers richtig, aber der Prozess geht ordentlich durch. danke dennoch für die antworten , hab den "Fehler" gefunden, @Traderdoc ja ist richtig ZIGZAG[0] gibt auch nen Wert zurück, hab bei der Beschriftung nur das nur anders hingeschrieben also anders gelabelt bei der Anzeige, nachdem ich alles nach und nach geprüft habe gibt es eig keinen Fehler in der Logik, alle Arrays geben einen Wert wieder nur werden Sie nicht in meinen Objekten oben rechts angezeigt, hab Sie nochmal mit Comment ausgelesen und da wird die ganze Arraylänge gefunden und korrekt hinterlegt. Hab ein bild dran gehängt. Lag wohl doch nur an der Anzeizge, beide Wege funktionieren,sowohl mit als auch ohne fore-schleife aber werd es denoch ändern , die for-schleife is ja wirklich unnötig und spart Rechenarbeit und die ganzen Fehleranzeigen die sind definitiv too much und ist auch so sauberer geschrieben, vielen dank für die Hinweise/Hilfestellung LG |
Lesezeichen |
Stichworte |
array, arrays, mql4, programmierung, programmierung metatrader, zig zag array, zigzag, zigzag array |
Themen-Optionen | Thema durchsuchen |
Ansicht | |
|
|