Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools
Zurück   Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools > Metatrader 4 > Programmierung MQL4

Programmierung MQL4 Hier gehts rund ums Programmieren in MQL4.

Login
Benutzername:
Kennwort:


Statistik
Themen: 4973
Beiträge: 43249
Benutzer: 7.221
Aktive Benutzer: 81
Links: 84
Wir begrüßen unseren neuesten Benutzer: Thomas75
Mit 2.475 Benutzern waren die meisten Benutzer gleichzeitig online (16.01.20 um 22:38).
Neue Benutzer:
vor 2 Stunden
- Thomas75
vor 16 Stunden
- JosephTK
vor 2 Tagen
- Hopfen&Mal...
vor 3 Tagen
- frankmicha...
vor einer Woche
- DFeck

Onlineuser
'Wer ist online' anzeigen Benutzer: 0
Gäste: 645
Gesamt: 645
Team: 0
Team:  
Benutzer:  
Freunde anzeigen

Empfehlungen

Thema geschlossen
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt 23.06.16
Mitglied
 
Registriert seit: Apr 2014
Beiträge: 118
Trader6666 befindet sich auf einem aufstrebenden Ast
Standard 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;
     }    
  }
Angehängte Grafiken
Dateityp: png ZZ.png (21,0 KB, 13x aufgerufen)
  #2 (permalink)  
Alt 24.06.16
Mitglied
 
Registriert seit: May 2015
Beiträge: 124
yytrader befindet sich auf einem aufstrebenden Ast
Standard

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++;
     }    
  }
Ich denke der Code sollte das gleiche machen? Sehe ich das richtig?

Gruß

yytrader
  #3 (permalink)  
Alt 24.06.16
Mitglied
 
Registriert seit: Apr 2014
Beiträge: 118
Trader6666 befindet sich auf einem aufstrebenden Ast
Standard

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
  #4 (permalink)  
Alt 25.06.16
Elite Mitglied
 
Registriert seit: Jun 2010
Ort: Trier
Beiträge: 116
naranjoe befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
... deswegen meine frage woran das liegen kann das er die restlichen werte einfach nicht wiedergibt/verloren gehen
weil Dein Code fehlerhaft ist.
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
  #5 (permalink)  
Alt 25.06.16
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.733
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

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++;
     }    
  }
traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.
  #6 (permalink)  
Alt 25.06.16
Mitglied
 
Registriert seit: Apr 2014
Beiträge: 118
Trader6666 befindet sich auf einem aufstrebenden Ast
Standard

moin zusammen,

Zitat:
weil Dein Code fehlerhaft ist.

Deswegen verhält er sich wohl nicht so wie du es gerne hättest.
wenn es das nicht wäre, hätte ich diesen Thread nicht aufgemacht
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
Angehängte Grafiken
Dateityp: png ZZC.png (21,2 KB, 13x aufgerufen)
Thema geschlossen

Lesezeichen

Stichworte
array, arrays, mql4, programmierung, programmierung metatrader, zig zag array, zigzag, zigzag array

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are aus
Pingbacks are aus
Refbacks are aus




Alle Zeitangaben in WEZ +1. Es ist jetzt 14:19 Uhr.





Suchmaschine - Reisen - Wavesnode - Facebook Forum - Spam Firewall
-----------------------------------------------------------------------------------------------------------------------------
Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Powered by vBCMS® 2.7.0 ©2002 - 2024 vbdesigns.de
SEO by vBSEO 3.6.1
Copyright ©2009 - 2023 by Expert-Advisor.com - Das Metatrader Forum
MetaTrader bzw. MetaTrader 4 und MetaTrader 5 sind eingetragene Marken der MetaQuotes Software Corp.
-----------------------------------------------------------------------------------------------------------------------------