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: 3739
Beiträge: 36561
Benutzer: 5.889
Aktive Benutzer: 518
Links: 80
Wir begrüßen unseren neuesten Benutzer: Jensemann
Mit 483 Benutzern waren die meisten Benutzer gleichzeitig online (21.04.16 um 17:12).
Neue Benutzer:
vor einem Tag
- Jensemann
vor einem Tag
- Dimi87
vor einem Tag
- harlei60
vor 2 Tagen
- marli
vor 2 Tagen
- crisc

Onlineuser
'Wer ist online' anzeigen Benutzer: 7
Gäste: 56
Gesamt: 63
Team: 0
Team:  
Benutzer:  Dennis605, Falke29, fxnoob, Gunharrr, Jensemann, next user, Stier
Freunde anzeigen

Empfehlungen

Werbung

Antwort
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt 01.06.17
Neues Mitglied
 
Registriert seit: Aug 2015
Beiträge: 2
bennibunny befindet sich auf einem aufstrebenden Ast
Question Höchster Indikatorwert der letzten xPerioden???

Hallo zusammen,

ich suche schon seit Tagen nach einer Lösung konnte aber weder im Forum noch bei etlichen google-Suchen das richtige finden.

Wie kann ich mir bei mql4 mir den höchsten wert eines Indikators (in meinem Fall des ATR) berechnen lassen.
Beispielsweise soll der Höchste Wert der letzten 3 Perioden >= dem Höchsten Wert der letzten 28 Perioden sein.

Mit dem iHighest() arbeite ich schon, allerdings funktioniert dieser leider nur auf Preisdaten. Wäre doch schön gewesen wenn man diesen auch für Indikatorenwerte benutzen könnte.

Vielen Dank im voraus und ich bin sicher das die Antwort auch für andere Interessant ist.
Mit Zitat antworten
  #2 (permalink)  
Alt 03.06.17
Mitglied
 
Registriert seit: Nov 2015
Beiträge: 84
Adlerauge befindet sich auf einem aufstrebenden Ast
Standard

Indikatoren schreiben ihre Werte in Buffer.
Buffer sind Arrays.
Den höchsten Wert eines Arrays kann man so ermitteln:

PHP-Code:

int Beispiel_Array
[10] = {7,3,11,17,2,7,11,3,22,1};
int Anzahl_zu_pruefender_Werte 10;

int groesster_Wert_Array Beispiel_Array[0];
for (
int i=1iAnzahl_zu_pruefender_Wertei++)
   {
    if (
groesster_Wert_Array Beispiel_Array[i] )
      {
       
groesster_Wert_Array Beispiel_Array[i];
      }
   }
Alert("groesster_Wert_Array: ",IntegerToString(groesster_Wert_Array)); 

Geändert von Adlerauge (03.06.17 um 12:21 Uhr)
Mit Zitat antworten
  #3 (permalink)  
Alt 03.06.17
Mitglied
 
Registriert seit: Nov 2015
Beiträge: 84
Adlerauge befindet sich auf einem aufstrebenden Ast
Standard

man sollte noch eine kleine Begrenzung einbauen, damit die Abfrage nicht über die Array-Länge hinausgehen kann:

PHP-Code:

int Beispiel_Array
[10] = {7,3,11,17,2,7,11,40,41,42};
int Anzahl_zu_pruefender_Werte 11;   // die 11 wäre hier zu gross und wird in der nächsten Zeile auf 10 korrigiert

if (ArraySize(Beispiel_Array) < Anzahl_zu_pruefender_WerteAnzahl_zu_pruefender_Werte ArraySize(Beispiel_Array);

int groesster_Wert_Array Beispiel_Array[0];
for (
int i=1iAnzahl_zu_pruefender_Wertei++)
   {
    if (
groesster_Wert_Array Beispiel_Array[i])
      {
       
groesster_Wert_Array Beispiel_Array[i];
      }
   }
 
Alert("groesster_Wert_Array: ",IntegerToString(groesster_Wert_Array)); 
Mit Zitat antworten
  #4 (permalink)  
Alt 03.06.17
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 1.817
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Mann könnte es auch ganz knapp halten:

int Beispiel_Array[10] = {7,3,11,17,2,7,11,40,41,42};

int maxID = ArrayMaximum(Beispiel_Array,WHOLE_ARRAY,0);

int Max_Value = Beispiel_Array[maxID];

traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.
Mit Zitat antworten
  #5 (permalink)  
Alt 04.06.17
Neues Mitglied
 
Registriert seit: Aug 2015
Beiträge: 2
bennibunny befindet sich auf einem aufstrebenden Ast
Standard

Oh vielen Dank für eure Antworten, wie man den größten Wert aus einer Zahlenreihe berechnen lässt habe ich kapiert.

Allerdings habe ich da noch eine eine Frage wie bekomme ich denn die Werte des Indikators z.B. des iATR in den array? Der array[123] kann ja schließlich nur mit Zahlen etwas anfangen.


MfG

bennibunny
Mit Zitat antworten
  #6 (permalink)  
Alt 04.06.17
Mitglied
 
Registriert seit: Nov 2015
Beiträge: 84
Adlerauge befindet sich auf einem aufstrebenden Ast
Standard

nun, ich bin kein Spezialist für den ATR, da ich ihn nicht benutze, aber er gibt offensichtlich einen double-Wert zurück und der Array lässt sich über Shift in der ATR-Funktion ansprechen:
double iATR(
string symbol, // symbol
int timeframe, // timeframe
int period, // averaging period
int shift // shift
);

Den höchsten Wert auslesen könntest Du demnach so:

PHP-Code:

int ATR_Zeitrahmen 
60;
int ATR_Periode 14;
int Anzahl_zu_pruefender_Werte 100;

double groesster_Wert_ATR iATR(NULLATR_ZeitrahmenATR_Periode0);

for (
int i=1iAnzahl_zu_pruefender_Wertei++)
   {
    if (
groesster_Wert_ATR iATR(NULLATR_ZeitrahmenATR_Periodei)) groesster_Wert_ATR iATR(NULLATR_ZeitrahmenATR_Periodei);
   }
 
Alert("groesster_Wert_ATR: ",DoubleToString(groesster_Wert_ATR)); 
Ob das auch mit der MQL4-eigenen Funktion geht, die Traderdoc oben angeführt hat, weiss ich nicht - müsste er selbst beantworten..... würde mich auch interessieren ;-)
Mit Zitat antworten
  #7 (permalink)  
Alt 04.06.17
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 1.817
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Nun, in dem eben genannten Beispiel des iATR wurde ja kein Array benutzt.
Die Funktion ArrayMaximum() würde hier nur funktionieren, wenn vorher die x Werte des ATR in ein Array geschrieben werden und dann ArrayMaximum() daraufhin angewendet wird.
Man könnte allerdings das ArrayMaximum in den Indicator integrieren, sofern man die mq4-Datei besitzt, denn dort werden die ATR-Werte in einem Array abgelegt.

traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.
Mit Zitat antworten
Antwort

Lesezeichen

Stichworte
höchster, höchster indikatorwert, indikatorwert, mql4, perioden, programmierung, programmierung metatrader, programmierung mql4


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 19:31 Uhr.



-----------------------------------------------------------------------------------------------------------------------------
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.
-----------------------------------------------------------------------------------------------------------------------------