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: 4280
Beiträge: 39485
Benutzer: 6.595
Aktive Benutzer: 246
Links: 80
Wir begrüßen unseren neuesten Benutzer: rustembilgi
Mit 667 Benutzern waren die meisten Benutzer gleichzeitig online (vor 3 Wochen um 05:39).
Neue Benutzer:
vor einem Tag
- rustembilg...
vor einem Tag
- plamdam
vor 3 Tagen
- sh3ldn
vor 4 Tagen
- trader2
vor 5 Tagen
- qaseem

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

Empfehlungen

Antwort
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt vor 2 Wochen
Mitglied
 
Registriert seit: Sep 2018
Beiträge: 107
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
Mit Zitat antworten
  #2 (permalink)  
Alt vor 2 Wochen
Premium Mitglied
 
Registriert seit: Jun 2016
Ort: Österreich
Beiträge: 351
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.
Mit Zitat antworten
  #3 (permalink)  
Alt vor 2 Wochen
Mitglied
 
Registriert seit: Sep 2018
Beiträge: 107
Max2018 befindet sich auf einem aufstrebenden Ast
Standard

ok, dann also

Code:
      double MACDtip[20]
ist das für das Beispiel richtig?
Mit Zitat antworten
  #4 (permalink)  
Alt vor 2 Wochen
Premium Mitglied
 
Registriert seit: Jun 2016
Ort: Österreich
Beiträge: 351
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.
Mit Zitat antworten
  #5 (permalink)  
Alt vor 2 Wochen
Mitglied
 
Registriert seit: Sep 2018
Beiträge: 107
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
Mit Zitat antworten
  #6 (permalink)  
Alt vor 2 Wochen
Premium Mitglied
 
Registriert seit: Jun 2016
Ort: Österreich
Beiträge: 351
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.
Mit Zitat antworten
  #7 (permalink)  
Alt vor 2 Wochen
Premium Mitglied
 
Registriert seit: Jun 2016
Ort: Österreich
Beiträge: 351
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).
Mit Zitat antworten
  #8 (permalink)  
Alt vor 2 Wochen
Premium Mitglied
 
Registriert seit: Jun 2016
Ort: Österreich
Beiträge: 351
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---
Mit Zitat antworten
  #9 (permalink)  
Alt vor 2 Wochen
Mitglied
 
Registriert seit: Sep 2018
Beiträge: 107
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);
Mit Zitat antworten
  #10 (permalink)  
Alt vor 2 Wochen
Mitglied
 
Registriert seit: Sep 2018
Beiträge: 107
Max2018 befindet sich auf einem aufstrebenden Ast
Standard

komisch manchmal ist Max>Min und dann wieder Min>Max ... da kann doch was nicht stimmen
Mit Zitat antworten
Antwort

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:35 Uhr.


Der Wavesnode - Spam Firewall
-----------------------------------------------------------------------------------------------------------------------------
Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.
Powered by vBCMS® 2.7.0 ©2002 - 2019 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.
-----------------------------------------------------------------------------------------------------------------------------