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: 4482
Beiträge: 40710
Benutzer: 6.866
Aktive Benutzer: 252
Links: 80
Wir begrüßen unseren neuesten Benutzer: hk0163
Mit 2.475 Benutzern waren die meisten Benutzer gleichzeitig online (16.01.20 um 22:38).
Neue Benutzer:
vor 19 Stunden
- hk0163
vor einem Tag
- magnr1
vor einem Tag
- boypac007
vor 2 Tagen
- Anja
vor 4 Tagen
- ThaScorp

Onlineuser
'Wer ist online' anzeigen Benutzer: 1
Gäste: 79
Gesamt: 80
Team: 0
Team:  
Benutzer:  Domke01
Freunde anzeigen

Empfehlungen

Thema geschlossen
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt 07.08.19
Mitglied
 
Registriert seit: Sep 2018
Beiträge: 139
Max2018 befindet sich auf einem aufstrebenden Ast
Standard Maximum oder Minimum eines Indikators

Hi,

ich will das Maximum und Minimum eines Indikators auslesen - klappt aber irgendwie nicht

Code:
      double MACDtip[1],MACDMinWert,MACDMaxWert;
      int MACDmini,MACDmaxi;      
      for(int u=0;u=20;u++)
      {
      MACDtip[u]=iMACD(NULL,0,MACDWert1,MACDWert2,9,PRICE_CLOSE,MODE_MAIN,u);
      MACDmini=ArrayMaximum(MACDtip,WHOLE_ARRAY,0);
      MACDmaxi=ArrayMinimum(MACDtip,WHOLE_ARRAY,0);
      }
      MACDMinWert=iMACD(NULL,0,MACDWert1,MACDWert2,9,PRICE_CLOSE,MODE_MAIN,MACDmini);
      MACDMaxWert=iMACD(NULL,0,MACDWert1,MACDWert2,9,PRICE_CLOSE,MODE_MAIN,MACDmaxi);
      Print("MACDMinWert: ",MACDMinWert);
wo ist der Fehler
  #2 (permalink)  
Alt 07.08.19
Premium Mitglied
 
Registriert seit: Jun 2016
Ort: Österreich
Beiträge: 362
Leopold befindet sich auf einem aufstrebenden Ast
Standard

Hallo.

Hier sind ein paar Fehler. Ich kann diese gern mit dir durcharbeiten.

1. Fehler:

Code:
double MACDtip[1];
Damit wird das Array nur 1 Wert groß. Du musst die Größe der gewünschten Anzahl an Werten zuweisen oder diese Dynamisch (mit []) festlegen und die Größe immer wieder anpassen.
  #3 (permalink)  
Alt 07.08.19
Mitglied
 
Registriert seit: Sep 2018
Beiträge: 139
Max2018 befindet sich auf einem aufstrebenden Ast
Standard

ok, dann also

Code:
      double MACDtip[20]
ist das für das Beispiel richtig?
  #4 (permalink)  
Alt 07.08.19
Premium Mitglied
 
Registriert seit: Jun 2016
Ort: Österreich
Beiträge: 362
Leopold befindet sich auf einem aufstrebenden Ast
Standard

Genau!

MACDMinWert, MACDMaxWert, MACDmini und MACDmaxi würde ich noch den Wert 0 zuweisen, damit diese auch einen Initialen Wert haben.

2. Fehler die for Schleife

Code:
for(int u=0;u=20;u++)
bei int u=0 musst du jetzt wissen ob du auch wirklich den aktuellen wert dabei haben willst. 0 ist für die aktuelle Periode, und diese ist noch nicht abgeschlossen. Wenn du nur Werte für abgeschlossene Perioden verwenden willst musst du mit 1 beginnen.

bei u=20 hier wird die Bedingung eingegeben bei der die Schleife noch ausgeführt wird. d.h. hier müsstest du <= bzw < verwenden. Aber Achtung, da du 20 Werte für dein Array willst musst du darauf achten auch nur 20 Werte dem Array zuzuweisen. Wenn du einen 21 Wert zuweisen willst bekommst du einen Fehler.
  #5 (permalink)  
Alt 07.08.19
Mitglied
 
Registriert seit: Sep 2018
Beiträge: 139
Max2018 befindet sich auf einem aufstrebenden Ast
Standard

SUPER Danke, so läuft es zumindest schon.....

Code:
      double  MACDtip[20],MACDMinWert,MACDMaxWert;
      int MACDmini,MACDmaxi;      
      for(int u=1;u<=20;u++)
      { 
      MACDtip[u]=iMACD(NULL,0,MACDWert1,MACDWert2,9,PRICE_CLOSE,MODE_MAIN,u);
      MACDmini=ArrayMaximum(MACDtip,WHOLE_ARRAY,0);
      MACDmaxi=ArrayMinimum(MACDtip,WHOLE_ARRAY,0);
      }
      MACDMinWert=iMACD(NULL,0,MACDWert1,MACDWert2,9,PRICE_CLOSE,MODE_MAIN,MACDmini);
      MACDMaxWert=iMACD(NULL,0,MACDWert1,MACDWert2,9,PRICE_CLOSE,MODE_MAIN,MACDmaxi);
      Print("MACDMinWert: ",MACDMinWert);
Lag noch ein Fehler vor
  #6 (permalink)  
Alt 07.08.19
Premium Mitglied
 
Registriert seit: Jun 2016
Ort: Österreich
Beiträge: 362
Leopold befindet sich auf einem aufstrebenden Ast
Standard

Hab was übersehn:

Du benötigst ja auch den Index für das Array und der beginnt bei 0.
Darum wär es doch besser int u=0 und die Bedingung u<20 verwenden. Damit hast du den Index für das Array. Bei der Indikator abfrage musst du dann aber den Index u+1 verwenden, damit er dann beim Indikator bei 1 beginnt.

Code:
for(int u=0;u<20;u++)
      {
      MACDtip[u]=iMACD(NULL,0,MACDWert1,MACDWert2,9,PRICE_CLOSE,MODE_MAIN,u+1);
      ...
      }
Es gäbe auch noch die möglichkeit für das Array einen eigenen Zähler zu verwenden aber Das ist doch eine sauberere Lösung.
  #7 (permalink)  
Alt 07.08.19
Premium Mitglied
 
Registriert seit: Jun 2016
Ort: Österreich
Beiträge: 362
Leopold befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Max2018 Beitrag anzeigen
SUPER Danke, so läuft es zumindest schon.....

Code:
      double  MACDtip[20],MACDMinWert,MACDMaxWert;
      int MACDmini,MACDmaxi;      
      for(int u=1;u<=20;u++)
      { 
      MACDtip[u]=iMACD(NULL,0,MACDWert1,MACDWert2,9,PRICE_CLOSE,MODE_MAIN,u);
      MACDmini=ArrayMaximum(MACDtip,WHOLE_ARRAY,0);
      MACDmaxi=ArrayMinimum(MACDtip,WHOLE_ARRAY,0);
      }
      MACDMinWert=iMACD(NULL,0,MACDWert1,MACDWert2,9,PRICE_CLOSE,MODE_MAIN,MACDmini);
      MACDMaxWert=iMACD(NULL,0,MACDWert1,MACDWert2,9,PRICE_CLOSE,MODE_MAIN,MACDmaxi);
      Print("MACDMinWert: ",MACDMinWert);
Lag noch ein Fehler vor
Hier bekommst du nämlich das Problem, dass du dann MACDtip[20] einen Wert zuweisen willst und dieser dann außerhalb des Berechs des Arrays liegt und dieser endet bei 19 (bei 20 ist der Index 0-19).
  #8 (permalink)  
Alt 07.08.19
Premium Mitglied
 
Registriert seit: Jun 2016
Ort: Österreich
Beiträge: 362
Leopold befindet sich auf einem aufstrebenden Ast
Standard

Die abfrage vom Min und Max Wert brauchst du nicht in die Schleife integrieren. Das Kannst du auch nachher machen:

Code:
MACDMinWert=MACDtip[ArrayMinimum(MACDtip,WHOLE_ARRAY,0)];
MACDMaxWert=MACDtip[ArrayMaximum(MACDtip,WHOLE_ARRAY,0)];
Damit kannst du dir auch die beiden Variablen MACDmini und MACDmaxi sparen.


Das sollte es dann gewesen sein. Vielleicht postest du den Code dann nochmal, dann schau ich nochmal drüber.

---Leopold---
  #9 (permalink)  
Alt 07.08.19
Mitglied
 
Registriert seit: Sep 2018
Beiträge: 139
Max2018 befindet sich auf einem aufstrebenden Ast
Standard

Klappt nicht .... der Maximalwert ist kleiner als das Minimum

Code:
      double  MACDtip[20],MACDMinWert,MACDMaxWert;
      int MACDmini,MACDmaxi;      
      for(int u=0;u<20;u++)
      { 
      MACDtip[u]=iMACD(NULL,0,MACDWert1,MACDWert2,9,PRICE_CLOSE,MODE_MAIN,u+1);
      MACDmini=ArrayMaximum(MACDtip,WHOLE_ARRAY,0);
      MACDmaxi=ArrayMinimum(MACDtip,WHOLE_ARRAY,0);
      }
      MACDMinWert=iMACD(NULL,0,MACDWert1,MACDWert2,9,PRICE_CLOSE,MODE_MAIN,MACDmini);
      MACDMaxWert=iMACD(NULL,0,MACDWert1,MACDWert2,9,PRICE_CLOSE,MODE_MAIN,MACDmaxi);
      Print("MACDMinWert: ",MACDMinWert,"/ MACDMAXWert: ",MACDMaxWert);
  #10 (permalink)  
Alt 07.08.19
Mitglied
 
Registriert seit: Sep 2018
Beiträge: 139
Max2018 befindet sich auf einem aufstrebenden Ast
Standard

komisch manchmal ist Max>Min und dann wieder Min>Max ... da kann doch was nicht stimmen
Thema geschlossen

Lesezeichen

Stichworte
indikator minimum maximum

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 +2. Es ist jetzt 08:45 Uhr.





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