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.


Portalsuche


Werbung

Login
Benutzername:
Kennwort:


Statistik
Themen: 3824
Beiträge: 37902
Benutzer: 6.074
Aktive Benutzer: 496
Links: 80
Wir begrüßen unseren neuesten Benutzer: hmf44
Mit 483 Benutzern waren die meisten Benutzer gleichzeitig online (21.04.16 um 17:12).
Neue Benutzer:
vor 4 Stunden
- hmf44
vor 8 Stunden
- Crossa
vor 9 Stunden
- snatshit
vor einem Tag
- Roerich
vor einem Tag
- John_Liver...

Onlineuser
'Wer ist online' anzeigen Benutzer: 3
Gäste: 49
Gesamt: 52
Team: 0
Team:  
Benutzer:  bfranz, Domke01, traderdoc
Freunde anzeigen

Empfehlungen

Werbung

Like Tree1Likes
Thema geschlossen
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt 02.02.16
Mitglied
 
Registriert seit: Feb 2016
Beiträge: 103
Lena befindet sich auf einem aufstrebenden Ast
Standard Unerklärlicher Fehler

Hallo,
ich habe mit einem Indikator ein Problem. Und zwar zeichnet mir dieser nachdem die Differenzen zwischen verschiedenen Perioden verglichen und anschließend mit einem Vergleichswert abgeglichen wurden einen entsprechenden Pfeil in den Chart. Das funktioniert soweit auch. Leider treten in unregelmäßigen Abständen Fehler aud. Und zwar werden dann mit nahezu jedem neuen Bar weitere Pfeile gezeichnet. Dies passiert auch ausschließlich in zwei WP (EURAUD und GBPAUD). In allen anderen WP auf denen ich den Indikator laufen lasse ist der Fehler nicht. Daher bin ich wirklich absolut ratlos woran dies liegen kann.
Vielleicht hat einer Zeit und Lust mal drüber zu schauen.
Ich habe die mql Datei angehängt und einen Screenshot vom Fehler.

Evtl liegt es auch daran, dass ich Renkos nutze. Wenn es kein Programmierfehler ist würde ich aber aufhören zu suchen.
Angehängte Grafiken
Dateityp: jpg Screenshot GBPAUD.jpg (273,1 KB, 24x aufgerufen)
Angehängte Dateien
Dateityp: mq4 AlarmRenko_1.mq4 (5,4 KB, 11x aufgerufen)
  #2 (permalink)  
Alt 02.02.16
Benutzerbild von Crashbulle
Elite Mitglied
 
Registriert seit: Sep 2011
Ort: Voreifel
Beiträge: 584
Crashbulle befindet sich auf einem aufstrebenden Ast
Crashbulle eine Nachricht über MSN schicken Crashbulle eine Nachricht über Skype™ schicken
Standard

Ohne mir die datei anzuschauen,
fällt mir nur ein,
das bei erreichen einer gewissen Stärke es ein Signal gibt.
Sollte diese Stärke anhalten (trotz Barveränderung), werden Signale weiter ausgeben bis diese Stärke-grenze unterschritten wird.
__________________
Was hoch aufsteigt, fällt tief herunter
Portfolio
Portfolio_1
  #3 (permalink)  
Alt 02.02.16
Mitglied
 
Registriert seit: Feb 2016
Beiträge: 103
Lena befindet sich auf einem aufstrebenden Ast
Standard

@Crashbulle: Wie willst Du auf einen progammtechnischen Fehler etwas Sinnvolles schreiben wenn Du dir den Code nicht einmal anschaust?
Worauf soll sich bitte deine Aussage zur Stärke beziehen? Hat das auch nur im entferntesten etwas mit meiner Frage bzw mit dem geschildertem Problem zu tun.
Tu mir einen Gefallen, wenn Du nichts zu sagen hast, dann lass es.
Crashbulle likes this.
  #4 (permalink)  
Alt 03.02.16
Mitglied
 
Registriert seit: Feb 2016
Beiträge: 103
Lena befindet sich auf einem aufstrebenden Ast
Standard

So ist es besser. Bei meinem ersten Beitrag wusste ich noch nicht wie ich den Code einfüge.

Code:
#property copyright "Copyright 2016, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property indicator_chart_window
//#property strict

#property indicator_buffers 2
#property indicator_color1 Chartreuse
#property indicator_color2 Red
#property indicator_width1 2
#property indicator_width2 2

extern bool AlertPopups=true;
extern bool AlertSounds=true;
bool AlertEmails=false;
bool AlertNotifications=false;
string SoundFile = "news.wav";

double THV_Coral;             //Variablen für Coral und Donchian Channel
bool DCTop;
bool DCBottom;

datetime OldTime;             //Für Alarm 1 Mal
int Auswahl=0;                //Auswahlvariable Alarm
int Risiko = 11;

double buf_0[];               //Array zum speichern der Tiefwerte
double buf_1[];               //Array zum speichern der Hochwerte
double buf_2[];               //Array zum speichern der Vergleichswerte

bool Abfrage_01 = false;      //Variable für Arrow_up
bool Abfrage_02 = false;      //Variable für Arrow_down

int i,j,k;                    //Variable für Schleifenzähler
int z1,z2,z3;                 //Variable für Auswahlentscheidung

double AbsWert;               //Absolutvariable der Summe von durchschnittlicher Differenz aus den letzten 10 Perioden
double VerglWert;             //Absolutvariable aus dem WPR
double HochWert;
double TiefWert;

int init()
{
   IndicatorBuffers(3);
   SetIndexStyle(0, DRAW_ARROW, STYLE_SOLID, 1);   //Arrow_up   
   SetIndexArrow(0, 233); 
   SetIndexBuffer(0, buf_0);
   SetIndexStyle(1, DRAW_ARROW, STYLE_SOLID, 1);   //Arrow_down
   SetIndexArrow(1, 234); 
   SetIndexBuffer(1, buf_1);
   SetIndexLabel(0,"Arrow_up");
   SetIndexLabel(1,"Arrow_down");
   SetIndexBuffer(2, buf_2);
   return (0);
}

int deinit()
{
   Comment("");
   return (0);
}

int start()
{
   int Balken = IndicatorCounted();
//----
   THV_Coral   = iCustom(Symbol(), 0, "Coral"   , 0, 55, 0, 1);       //Lage der Coral in der vorherigen Periode  
   DCTop       = iCustom(Symbol(), 0, "Donchian", 40, 0, 1);          //Top-Wert des Dochian Channels auf der vorherigen Kerze 
   DCBottom    = iCustom(Symbol(), 0, "Donchian", 40, 1, 1);          //Bottom-Wert des Dochian Channels auf der vorherigen Kerze
//-----

   for(j=0; j<=9; j++)                        
      AbsWert += MathAbs(High[j] - Low[j]);     //Summierung der Differenz von High und Low der letzten 10 Perioden. Davon wird der Betrag gewählt.
   AbsWert=AbsWert/10;                          //Durchsnittswert des vorher erwittelten Betrags
   j=0;                                         
//-----   
   while(j<=9 && z1<1) 
      {if(MathAbs(Open[j]-(Close[j+1]))>=2.0*AbsWert) z1++; j++;}    //Vergleicht 10 Perioden lang ob die Differrenz zwischen Open und Close >= 2 Mal dem durschnittlichem Absolutwert ist
   if(z1>=1) z2=j;
   else z2=-1;
   j=0; z1=0;
   while(j<=6 && z1<1)
      {if(MathAbs(Close[j+3]-Close[j])>=4.6*AbsWert) z1++; j++;}     //Vergleicht 7 Perioden lang ob die Differenz zwischen Close (Periode j+3) und Close (Periode j) >= 4,6 Mal dem durchschnittlichem Absolutwert ist.
   if(z1>=1) z3=j;
   else z3=-1;
//-----   
   if(z2>-1) Risiko=3;                             //Abschnitt wählt den Risikofaktor
   else Risiko=11;
   if(z3>-1) Risiko=4;
   else Risiko=11;
//-----         
   for(i=Bars-Balken; i>=0; i--)          
   {
      VerglWert=100-MathAbs(iWPR(NULL,0,Risiko,i));   //Es wird ein Vergleichswert auf Basis der WPR berechnet. 
      buf_2[i]=VerglWert;                             //Speichert Vergleichswert in Array (Position i)
      HochWert=0;
      TiefWert=0;
//-----      
      if(VerglWert<29)                                         //Abgleich des Vergleichswertes mit dem Grenzwert 29
      {
         for(k=1 ;buf_2[i+k]>29 && buf_2[i+k]<=71; k++);       //Durchlaufe das Array solange die darin gespeicherten Vergleichswerte zwischen 29 und 71 liegen. Erhöhe den Zähler bei jedem Durchlauf um den Faktor 1.
         if(buf_2[i+k]>71) HochWert=High[i]+AbsWert/2;         //Nachem die Schleife durchlaufen wurde, wird geprüft ob der Vergleichswert > 71 ist. Hochwert wird berechnet.
      }
      if(VerglWert>71)                                         //Abgleich des Vergleichswertes mit dem Grenzwert 71
      {
         for(k=1; buf_2[i+k]>=29 && buf_2[i+k]<71; k++);       //Durchlaufe das Array solange die darin gespeicherten Vergleichswerte zwischen 29 und 71 liegen. Erhöhe den Zähler bei jedem Durchlauf um den Faktor 1.
         if(buf_2[i+k]<29) TiefWert=Low[i]-AbsWert/2;          //Nachdem die Schleife durchlaufen wurde, wird geprüft ob der Vergleichswert < 29 ist. Tiefwert wird berechnet.
      }
//-----
      if(TiefWert!=0 && Abfrage_01==FALSE)                   
      {
         buf_0[i]=TiefWert-1*Point;          //Zeichnet Arrow_up
         Abfrage_01=TRUE;
         Abfrage_02=FALSE;
         Auswahl=1;                          //Variable für Auswahl des Alarm (siehe unten)
      }
      if(HochWert!=0 && Abfrage_02==FALSE)
      {
         buf_1[i]=HochWert+1*Point;          //Zeichnet Arrow_down
         Abfrage_01=FALSE;
         Abfrage_02=TRUE;
         Auswahl=2;                          //Variable für Auswahl des Alarm (siehe unten)
      }
   }
//-----   
   
   //RenkoAlarm
   if(OldTime != Time[0])
   {
   if(Close[2]-Open[2]<0 && Close[1]-Open[1]>0 && Auswahl==2)     //Positiver Bar nachdem ein negativer Pfeil gezeichnet wurde         
      doAlerts(Symbol()+" Buy Signal",SoundFile);          
   if(Close[2]-Open[2]>0 && Close[1]-Open[1]<0 && Auswahl==1)     //Negativer Bar nachdem ein positiver Pfeil gezeichnet wurde
      doAlerts(Symbol()+" Sell Signal",SoundFile);
   OldTime=Time[0];
   }
   return (0);
}

void doAlerts(string message,string soundfile){                   //Alarmfunktion
 if (AlertPopups) Alert(message);
 if (AlertSounds) PlaySound(soundfile);
 if (AlertEmails) SendMail(message,message);
 if (AlertNotifications) SendNotification(message);
}
  #5 (permalink)  
Alt 07.02.16
Mitglied
 
Registriert seit: Feb 2016
Beiträge: 103
Lena befindet sich auf einem aufstrebenden Ast
Standard

Habe den Fehler gefunden und gelöst. Falls einer sich damit beschäftigt haben sollte braucht er keine Zeit mehr verschwenden.
  #6 (permalink)  
Alt 07.02.16
Benutzerbild von asfranz
Mitglied
 
Registriert seit: Nov 2015
Ort: Rheda -Wiedenbrück
Beiträge: 84
asfranz befindet sich auf einem aufstrebenden Ast
Standard

Hallo Lena,

Wäre schön wenn du uns teil haben läst wo der Fehler war.

Und die Korrektur on stell würdes.

Gruß Franz
________________________

Die ganze Natur ist eigentlich nichts anderes als ein Zusammenhang von Erscheinungen nach Regeln.
* Immanuel Kant
deutscher Philosoph (1724 - 1804)
  #7 (permalink)  
Alt 10.02.16
Mitglied
 
Registriert seit: Feb 2016
Beiträge: 103
Lena befindet sich auf einem aufstrebenden Ast
Standard

Vergiss was ich geschrieben habe. Der blöde Bug ist noch immer da. Keine Ahnung woran es liegen kann.

Habe aber ein wenig verändert. Inzwischen sieht es so aus:

Code:
#property copyright "Copyright 2016, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property indicator_chart_window
//#property strict

#property indicator_buffers 2
#property indicator_color1 Chartreuse
#property indicator_color2 Red
#property indicator_width1 2
#property indicator_width2 2

extern bool AlertPopups=true;
extern bool AlertSounds=true;
bool AlertEmails=false;
bool AlertNotifications=false;
string SoundFile = "news.wav";

double Tief,Hoch;             //Variablen für Tief/Hochwerte bei letztem Alarm
double THV_Coral;             //Variablen für Coral und Donchian Channel
bool DCRand;                  //Variable zum Entscheid ob oberer oder unterer Rand des DC zuletzt verschoben wurde

datetime OldTime;             //Für Alarm 1 Mal
int Auswahl;                  //Auswahlvariable Alarm
int b;                        //Auswahlvariable welcher Rand des Donchianchannels zum Zeitpunkt des WPR-Signals aktiv ist

double buf_0[];               //Array zum speichern der Tiefwerte
double buf_1[];               //Array zum speichern der Hochwerte
double buf_2[];               //Array zum speichern der WPR
double buf_3[];               //Array zum speichern der Top-Werte des Donchianchannels
double buf_4[];               //Array zum speichern der Low-Werte des Donchianchannels

int i,k,x,y;                  //Variable für Schleifenzähler

double WPR;                   //Variable aus dem WPR

int init()
{
   IndicatorBuffers(5);
   SetIndexStyle(0, DRAW_ARROW, STYLE_SOLID, 1);   //Arrow_up   
   SetIndexArrow(0, 233); 
   SetIndexStyle(1, DRAW_ARROW, STYLE_SOLID, 1);   //Arrow_down
   SetIndexArrow(1, 234); 
   SetIndexLabel(0,"Arrow_up");
   SetIndexLabel(1,"Arrow_down");
   SetIndexBuffer(0, buf_0);
   SetIndexBuffer(1, buf_1);
   SetIndexBuffer(2, buf_2);                       //Buffer für WPR
   SetIndexBuffer(3, buf_3);                       //Buffer für Top-Wert des Donchianchannels
   SetIndexBuffer(4, buf_4);                       //Buffer für Low-Wert des Donchianchannels
   return (0);
}

int deinit()
{
   Comment("");
   return (0);
}

int start()
{
   int Multiplier = 1;
      if(Digits == 3 || Digits == 5) Multiplier = 10;
      if(Digits == 6) Multiplier = 100;   
      if(Digits == 7) Multiplier = 1000;
//-----
   THV_Coral   = iCustom(Symbol(), 0, "Coral"   , 0, 55, 0, 1);      //Lage der Coral in der vorherigen Periode  
   for(i=Bars; i>=0; i--)
   {  buf_3[i]    = iCustom(Symbol(), 0, "Donchian", 40, 0, i);      //Top-Wert des Dochian Channels 
      buf_4[i]    = iCustom(Symbol(), 0, "Donchian", 40, 1, i);}     //Buttom-Wert des Dochian Channels
   
   for(i=Bars; i>=0; i--)
   {  if       (High[i]>=buf_3[i+1])DCRand=true;                     //Wurde der obere Rand des DC durchbrochen wird die Variable DCRand auf true gesetzt
      else if  (Low [i]<=buf_4[i+1])DCRand=false;}                   //Wurde der untere Rand durchbrochen wird DC Rand auf false gesetzt
//-----
   int counted_bars=IndicatorCounted();
   if(counted_bars<0)return(-1);
   if(counted_bars>0)counted_bars--;
   i=Bars-counted_bars-1;
   while(i>0)
   {
      WPR=100-MathAbs(iWPR(NULL,0,11,i));                      //WPR wird abgefragt und umgerechnet 
      buf_2[i]=WPR;                                            //Speichert WPR in Array (Position i)
//-----      
      if(WPR<29)                                               //Abgleich des WPR mit dem Grenzwert 29
      {
         for(k=1 ;buf_2[i+k]>=29 && buf_2[i+k]<=71; k++);      //Durchlaufe das Array solange die darin gespeicherten WPR zwischen 29 und 71 liegen. Erhöhe den Zähler bei jedem Durchlauf um den Faktor 1.
         if(buf_2[i+k]>71)
         {
            buf_1[i]=High[i]+2*Point*Multiplier;               //Zeichnet Arrow_down
            Auswahl=2;                                         //Variable für Auswahl des Alarm (siehe unten)
            if       (DCRand==true) b=1;                       //Abfrage welcher Rand des Donchianchannels zu diesem Zeitpunkt als letztes berührt wurde
            else if  (DCRand==false)b=0;
         }
      }
      else if(WPR>71)                                          //Abgleich des WPR mit dem Grenzwert 71
      {
         for(k=1; buf_2[i+k]>=29 && buf_2[i+k]<=71; k++);      //Durchlaufe das Array solange die darin gespeicherten WPR zwischen 29 und 71 liegen. Erhöhe den Zähler bei jedem Durchlauf um den Faktor 1.
         if(buf_2[i+k]<29) 
         {
            buf_0[i]=Low[i]-2*Point*Multiplier;                //Zeichnet Arrow_up
            Auswahl=1;                                         //Variable für Auswahl des Alarm (siehe unten)
            if       (DCRand==true) b=1;                       //Abfrage welcher Rand des Donchianchannels zu diesem Zeipunkt als letztes berührt wurde
            else if  (DCRand==false)b=0;
         }
      }
   i--;   
   }
//-----   
   if(OldTime != Time[0])                                                                                //Auswahl Alarmabschnitt
   {
   if       (Close[2]-Open[2]<0 && Close[1]-Open[1]>0 && Auswahl==2 && x==0 && b==1)                     //Abfrage: Positiver Bar, WPR zeigt negativen Pfeil, Zähler =0, oberer Rand des DC wurde verschoben         
               {doAlerts(Symbol()+" Buy Signal ",SoundFile);x++; y=0; Tief=Low[1];}                      //Ausgabe Alarm, Zähler eins hochsetzen, Zähler auf Null setzen, Tiefpunkt setzen
   else if  (Close[2]-Open[2]<0 && Close[1]-Open[1]>0 && Auswahl==2 && x==0 && b==0)                     //Abfrage: wie zuvor mit der Änderung dass der untere Rand des DC verschoben wurde         
               {x=0; y=0;}                                                                               //Beide Zähler werden auf Null gesetzt
   else if  (Close[2]-Open[2]<0 && Close[1]-Open[1]>0 && Auswahl==2 && x>=1 && Low[1]<Tief)              //Abfrage: Positiver Bar, WPR zeigt negativen Pfeil, Zähler>=1, aktuelles Tief ist kleiner vorherigem Tief
               {doAlerts(Symbol()+" Buy Signal ",SoundFile);x++; y=0; Tief=Low[1];}                      //Ausgabe Alarm, Zähler eins hochsetzen, Zähler auf Null setzen, Tiefpunkt setzen
//-----               
   if       (Close[2]-Open[2]>0 && Close[1]-Open[1]<0 && Auswahl==1 && y==0 && b==0)                     //        
               {doAlerts(Symbol()+" Sell Signal ",SoundFile);y++; x=0; Hoch=High[1];}
   else if  (Close[2]-Open[2]>0 && Close[1]-Open[1]<0 && Auswahl==1 && y==0 && b==1)                     //        
               {y=0;x=0;}
   else if  (Close[2]-Open[2]>0 && Close[1]-Open[1]<0 && Auswahl==1 && y>=1 && High[1]>Hoch)
               {doAlerts(Symbol()+" Sell Signal ",SoundFile);y++; x=0; Hoch=High[1];}
   OldTime=Time[0];
   }
   return (0);
}

void doAlerts(string message,string soundfile){                   //Alarmfunktion
 if (AlertPopups) Alert(message);
 if (AlertSounds) PlaySound(soundfile);
 if (AlertEmails) SendMail(message,message);
 if (AlertNotifications) SendNotification(message);
}
Am Anfang dachte ich noch es kann nicht so schwer sein einen Indikator zu schreiben. Inzwischen bin ich aber nur noch verwirrt, denn egal was ich veränder, es kommt immer der selbe verdammt Fehler. Ich wünschte mir, es würden schon ein Dutzend Fehler beim kompilieren angezeigt. Dann wüsste ich wenigstens wo ich nachsehen muss.
  #8 (permalink)  
Alt 10.02.16
Mitglied
 
Registriert seit: Feb 2016
Beiträge: 103
Lena befindet sich auf einem aufstrebenden Ast
Standard

Anmerkung: Ich habe nicht daran gedacht dass es natürlich keinen Sinn macht etwas zu überprüfen oder sogar nur nach zu schauen wenn man keine Ahnung hat wofür es gut ist bzw was die Aufgabe sein soll. Daher eine kurze Erläuterung zu dem "Problem-Indikator".

Ich denke jeder kennt den Williams %R Indikator. Auf diesem baut mein Indikator auf. Es soll ein Pfeil eingezeichnet werden wenn ein Über bzw Unterverkauftlevel (bei mir die festgelegten Werte (29 &71) erreicht wird.

Der eigentliche Alarm erfolgt dann bei dem ersten Bar bzw Renko in Gegenrichtung.

Vielleicht findet sich ja doch jemand der mir Helfen kann und dazu bereit ist. Ich erwarte keine kostenlose Arbeit.
  #9 (permalink)  
Alt 10.02.16
Gesperrter Benutzer
 
Registriert seit: Jan 2016
Beiträge: 62
pischinger befindet sich auf einem aufstrebenden Ast
Standard

lena,

da es beim kompilieren keinen fehler gibt scheint es programmiertechnisch zu stimmen.

logikfehler können trotzdem entstehen!

da bei mir ein fehler fürs array2 kommt, muss der fehler davor liegen, es kommen falsche, keine oder zuviele daten im array an. oder irgendwas verändert die array daten zum unguten.

da du indikatoren mit shift 0-9 -> array abfragst habe ich dir empfohlen deine vielen if,else,while etc routinen zu vereinfachen und mal strikt "ols school" die indi abzufragen und die ergebnisse zu loggen, dann kann du diese werte mit deinen vielen if,while schleifen vergleichen, kommt ein identischer wert raus, weißt du das deine indi abfragen stimmen.

gerade weil du mit icustom externe indis abfragst, könnte das problem auch dort sein oder entstehen, würde sogar empfehlen diese direkt zu integrieren wenn du die möglichkeit hast

dann die routinen prüfen die deine ergebnisse in die arrays schicken, abfragen und loggen,
somit weißt du ob dein array input stimmt und mit den abfragen die ergebnisse stimmen.

indi output muss mit array input stimmen, ausser gewollte manipulation.
array output muss mit input 71/29 vergleich stimmen
usw....

ps: #property strict aktivieren! bugs können auch bei metatrader vorkommen
  #10 (permalink)  
Alt 10.02.16
Mitglied
 
Registriert seit: Feb 2016
Beiträge: 103
Lena befindet sich auf einem aufstrebenden Ast
Standard

Was meinst Du mit Array mit Shift 0-9 abzufragen?
Ich habe keine Ahnung wie ich die Abfragen noch weiter vereinfachen kann ohne die Funktionsweise zu verändern. Wenn ich Abfragen weglassen könnte würde ich es sehr gerne machen.
Ich habe die Werte schon an verschiedenen Stellen im Indikator ausgelesen und geprüft ob diese stimmen. Da ist mir kein Fehler aufgefallen.

Woran es nicht liegen kann ist das einbinden des Donchian und der THV_Coral. Denn der Bug ist auch vorhanden wenn ich diesen Teil deaktiviere. Selbst wenn ich den kompletten Bereich des Alarms mit den vielen if Abfragen deaktiviere und die Funktion wirklich ausschließlich darauf beschränke einen Pfeil beim erreichen der Zonen 29 bzw 71 zu setzen taucht das Problem auf.

Das Problem muss also definitiv in einer der folgenden Zeilen stecken.

Code:
   int counted_bars=IndicatorCounted();
   if(counted_bars<0)return(-1);
   if(counted_bars>0)counted_bars--;
   i=Bars-counted_bars-1;
   while(i>0)
   {
      WPR=100-MathAbs(iWPR(NULL,0,11,i));                      //WPR wird abgefragt und umgerechnet 
      buf_2[i]=WPR;                                            //Speichert WPR in Array (Position i)
//-----      
      if(WPR<29)                                               //Abgleich des WPR mit dem Grenzwert 29
      {
         for(k=1 ;buf_2[i+k]>=29 && buf_2[i+k]<=71; k++);      //Durchlaufe das Array solange die darin gespeicherten WPR zwischen 29 und 71 liegen. Erhöhe den Zähler bei jedem Durchlauf um den Faktor 1.
         if(buf_2[i+k]>71)
         {
            buf_1[i]=High[i]+2*Point*Multiplier;               //Zeichnet Arrow_down
         }
      }
      else if(WPR>71)                                          //Abgleich des WPR mit dem Grenzwert 71
      {
         for(k=1; buf_2[i+k]>=29 && buf_2[i+k]<=71; k++);      //Durchlaufe das Array solange die darin gespeicherten WPR zwischen 29 und 71 liegen. Erhöhe den Zähler bei jedem Durchlauf um den Faktor 1.
         if(buf_2[i+k]<29) 
         {
            buf_0[i]=Low[i]-2*Point*Multiplier;                //Zeichnet Arrow_up
         }
      }
   i--;   
   }
Thema geschlossen

Lesezeichen

Stichworte
fehler pfeile, mql4, pfeil, pfeile, programmierung, programmierung metatrader


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 20:08 Uhr.



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