Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools

Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools (http://www.expert-advisor.com/forum/index.php)
-   Programmierung MQL4 (http://www.expert-advisor.com/forum/forumdisplay.php?f=220)
-   -   Aus eigenen Werten mehrere Durchschnitte berechnen und vergleichen (http://www.expert-advisor.com/forum/showthread.php?t=4048)

markusrgb 03.02.15 17:19

hmm, irgendwo ist da der Wurm drin


hab jetzt ganz oben bei denn Externen Abfragen
Code:

double Du[]; // erstellt undbestimmte Anzahl an "Du" Variablen - Anzahl wird Später übertragen
int PeriodenVergleich = PeriodenLaenge;


bei int OnInit()

Code:

ArrayResize(Du,PeriodenVergleich-1); // weist dem "Du" Array die Extern Eingestellte Anzahl "PeriodenLaenge" zu (z.B. Du 0-9)
"PeriodenVergleich" hab ich ganz oben gleich fest auf denn Ursprungszustand von "PeriodenLaenge" gesetzt .... "PeriodenVergleich" ist also immer 10 auch wenn sich der wert von "PeriodenLaenge" ändert.

dann springt er in die

void OnTick()
:



Code:

Alert ("PeriodenLaenge =",DoubleToStr(PeriodenLaenge,0));
Alert ("PeriodenVergleich =",DoubleToStr(PeriodenVergleich,0));
Alert ("PeriodenStueckzahl =",DoubleToStr(PeriodenStueckzahl,0));
Alert ("BerechnungsFreigabe =",DoubleToStr(BerechnungsFreigabe,0));
Alert ("AnzahlMA20 =",DoubleToStr(AnzahlMA20));

//Du[9] = AnzahlMA20;
//Du[PeriodenLaenge-1] = AnzahlMA20;
//Alert ("ArayVariable DU  =",DoubleToStr(Du[9],2));

if (PeriodenLaenge<PeriodenVergleich+1 && PeriodenLaenge>0) //wenn "PeriodenLaenge" 0-9 (10Stück)
  {
  Alert ("Test 1 - PeriodenLaenge zwischen 0-9");
  Du[PeriodenLaenge-1] = AnzahlMA20; //Du[9]=AnzahlMA20 .... Du[8]=AnzahlMA20 ... ---> Du[0]=AnzahlMA20
  Alert ("Test 2");
  PeriodenLaenge--;    // 10-1=9 ... 9-1=8 ... 8-1=7 ---> 1-1=0
  Alert ("PeriodenLaenge =",DoubleToStr(PeriodenLaenge));
  }

Alert ("Test 3");

lasse mir über Alert die Werte anzeigen und
bis Test 1 ist die Welt noch in Ordnung

Alert ("Test 1 - PeriodenLaenge zwischen 0-9");
er springt also in die erste If Abfrage rein

nur ab hier läuft der EA dann nicht mehr weiter
beim Versuch dem Array DU[9] denn Wert AnzahlMA20 zu zuweisen:

Code:

Du[PeriodenLaenge-1] = AnzahlMA20; //Du[9]=AnzahlMA20 .... Du[8]=AnzahlMA20 ... ---> Du[0]=AnzahlMA20
  Alert ("Test 2");


er kommt dann offensichtlich nicht mal mehr aus der If Abfrage wieder heraus

denn "Test3" nach if {} wird nicht mehr im Alert Fenster Angezeigt:confused:

der EA hängt also irgendwie dort fest

markusrgb 03.02.15 19:41

ok... ich hab denn fehler gefunden :cool:


hatte da nen denkfehler

int a [8] z.B erstellt ein Array mit 8 Felden

und nicht 9 .... hatte das vorher falsch verstanden ....

dachte es erstellt feld 0-8 .... also 9

ist aber nicht so :D

:D

traderdoc 03.02.15 19:43

Das Array muß Resized werden:

ArrayResize(Du,PeriodenVergleich);

D.h., wenn PeriodenVergleich = 10 ist, dann gibt es 10 Elemente, mit dem Index 0 bis 9.

traderdoc

markusrgb 03.02.15 20:07

Zitat:

Zitat von traderdoc (Beitrag 28548)
Das Array muß Resized werden:

ArrayResize(Du,PeriodenVergleich);

D.h., wenn PeriodenVergleich = 10 ist, dann gibt es 10 Elemente, mit dem Index 0 bis 9.

traderdoc

ja, habs jetzt erst verstanden .... puhhh .... schwere geburt ...
aber aus fehlern lernt man ja immer noch am besten ....


hab da schon mal vor ner weile was interesantes gefunden ...

https://www.youtube.com/watch?v=v8Dz...E8203&index=58

nur bei denn Arrys war ich bis heut noch nicht :D


Alle Zeitangaben in WEZ +2. Es ist jetzt 12:23 Uhr.

Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.6.1
Powered by vBCMS® 2.7.0 ©2002 - 2024 vbdesigns.de
Copyright ©2009 - 2023 by Expert-Advisor.com - Das Metatrader Forum