Zum Inhalt springen
View in the app

A better way to browse. Learn more.

#T/N/X/T

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Frage zu iHighest

Geschrieben
int iHighest( string symbol, int timeframe, int type, int count=WHOLE_ARRAY, int start=0)

Returns the shift of the maximum value over a specific number of periods depending on type.

Parameters:

symbol - Symbol the data of which should be used to calculate indicator. NULL means the current symbol.

timeframe - Timeframe. It can be any of Timeframe enumeration values. 0 means the current chart timeframe.

type - Series array identifier. It can be any of the Series array identifier enumeration values.

count - Number of periods (in direction from the start bar to the back one) on which the calculation is carried out.

start - Shift showing the bar, relative to the current bar, that the data should be taken from.

Sample:

 

  double val;
 // calculating the highest value on the 20 consequtive bars in the range
 // from the 4th to the 23rd index inclusive on the current chart
 val=High[iHighest(NULL,0,MODE_HIGH,20,4)];

Quelle: http://docs.mql4.com/series/iHighest

 

Zu dieser Funktion habe ich eine Frage...

 

Verstehe ich dies richtig, dass ich mir dazu zu den letzten x Bars den Hochpunkt ausgeben lassen kann? Bzw mit iLowest den Tiefpunkt der letzten x Bars?

 

Da einen ja (i.d.R.) nur die abgeschlossen Bars interessieren, frage ich mich noch wie ich die letzte abgeschlossene Bar finde. Muss ich meim Parameter 'start' dann eine 0 oder eine 1 eintragen? Ich würde mir jetzt denken, dass eine 0 als letzter Parameter die noch unfertige Bar bezeichnet und 1 die letzte fertige Bar. Oder werden nur die fertigen gezählt und ich müsste eine 0 an der Stelle nehmen?

 

:cleanglasses:

Bearbeitet von Tibo

Featured Replies

Geschrieben

Verstehe ich dies richtig, dass ich mir dazu zu den letzten x Bars den Hochpunkt ausgeben lassen kann? Bzw mit iLowest den Tiefpunkt der letzten x Bars?

Du verstehst es dann richtig, wenn Du meinst, dass iHighest (bzw. iLowest) Dir nur die Kerze angeben, wo sich Hoch- bzw. Tiefpunkt befindet nicht jedoch den Hoch- bzw. Tiefpunkt selber. Dazu musst Du dann so vorgehen wie in dem Beispiel. Die letzte abgeschlossene Bar hat immer den Wert 1, 0 ist die aktuelle Bar (jeweils bei einem Shift von 0).

Geschrieben

Hi Tibo,

 

die letzte/ aktuelle Bar wird nie abgeschlossen sein, denn wenn sie abgeschlossen ist, ist sie nicht mehr die letzte. :wink:

Die Entscheidung liegt daher bei Dir, ob Du die aktuelle Bar mitberücksichtigen willst oder eben nicht.

 

Willst Du sie mitberücksichtigen, dann wählst für Parameter "Start" den Wert 0, sonst den Wert 1.

Geschrieben
  • Autor

achso

dann muss ich wohl um auch den Wert zu erhalten ihigh und ihighest verschachteln

 

nach dem Schema:

iHigh(iHighest)

 

natürlich mit allen nötigen Parametern. Das war jetzt nur als ausgeschriebene Skizze gedacht...

 

Soweit korrekt?

:declare:

 

 

Nachtrag

@Bull:

Danke! Dann habe ich es ja richtig verstanden

Bearbeitet von Tibo

Geschrieben
High[iHighest(......)]

 

würde es auch tun.

 

iHigh hat mehr Parameter und ich bin schreibfaul. :mocking:

Geschrieben

Ein Beispiel aus meinem aktuellen Code :

 

//+-----------------------------------------------------------------------------------------------+
//|                                   SLV_1.0_S&R().mqh                                           |
//|                           The code should be used for SLV only                                |
//+-----------------------------------------------------------------------------------------------+
//+-----------------------------------------------------------------------------------------------+
//|                                                                                               |
//|   Function  : Support und Resistance finden                                                   |
//|                                                                                               |
//+-----------------------------------------------------------------------------------------------+
//------------------------------------------------------------------------------------------------+
//+-----------------------------------------------------------------------------------------------+
                                                //                                               |
void SupRes_Update()                             //                                               |
 {                                              //0                                              |
  if(hilfe2)Print("ZYKLUS 2.1.: ENTRY Support und Resistance finden") ;//                        |
  bool PRT = (Bars > bb && hilfe3)             ;//                                               |
//------------------------------------------------------------------------------------------------|
// 1.): Resistance                                                                                |
                                                //                                               |
      Res240 = iHigh(Markt,TF4,(iHighest(Markt,TF4,MODE_HIGH,6,1)));// Tageshoch                 |
      int T_Res240= iHighest(Markt,TF4,MODE_HIGH,6,1)              ;// Tageshoch                 |
                                                //                                               |
      Res1440 = iHigh(Markt,TF5,(iHighest(Markt,TF5,MODE_HIGH,5,1)));// Wochenhoch               |
      int T_Res1440= iHighest(Markt,TF5,MODE_HIGH,5,1)              ;// Wochenhoch               |
                                                //                                               |
      if (PRT) Print("Resistance 240 : durch Hochbar =[",T_Res240,"]um ",TimeToStr      //       |
      (iTime(Markt,TF4,T_Res240),TIME_DATE|TIME_MINUTES)," bei = ",Res240)             ;//       |
                                                //                                               |
      if (PRT) Print("Resistance 1440 : durch Hochbar =[",T_Res1440,"]um ",TimeToStr    //       |
      (iTime(Markt,TF5,T_Res1440),TIME_DATE|TIME_MINUTES)," bei = ",Res1440)           ;//       | 
//+-----------------------------------------------------------------------------------------------+
// 2.): Support                                                                                   |
                                                //                                               |
      Sup240 = iLow(Markt,TF4,(iLowest(Markt,TF4,MODE_LOW,10,1)))  ;// Tagestief                 |
      int T_Sup240= iLowest(Markt,TF4,MODE_LOW,10,1)               ;// Tagestief                 |
                                                //                                               |
      Sup1440 = iLow(Markt,TF5,(iLowest(Markt,TF5,MODE_LOW,5,1)))  ;// Wochentief                |
      int T_Sup1440= iLowest(Markt,TF5,MODE_LOW,5,1)               ;// Wochentief                |
                                                //                                               | 
      if (PRT) Print("Support 240 : durch Tiefbar =[",T_Sup240,"]um ",TimeToStr         //       |
      (iTime(Markt,TF4,T_Sup240),TIME_DATE|TIME_MINUTES)," bei = ",Sup240)             ;//       |
                                                //                                               | 
      if (PRT) Print("Support 1440 : durch Tiefbar =[",T_Sup1440,"]um ",TimeToStr       //       |
      (iTime(Markt,TF5,T_Sup1440),TIME_DATE|TIME_MINUTES)," bei = ",Sup1440)           ;//       |  
//------------------------------------------------------------------------------------------------+
//------------------------------------------------------------------------------------------------+
  if(hilfe2)Print("ZYKLUS 2.2.: EXIT Support und Resistance finden , TF=",TF);//                 |
  return                                                    ;//                                  |
 }                                                           //0                                 |
//------------------------------------------------------------------------------------------------+
//+-----------------------------------------------------------------------------------------------+

 

Viel Spaß

 

KB

 

PS.: ggfs dann als eine Funktion aus dem Hauptprogramm aufzurufen , also zum Beispiel :

 


//+-----------------------------------------------------------------------------------------------+
//|                                *****   HAUPTPROGRAMM  *****                                   |
//+-----------------------------------------------------------------------------------------------+
                                                //                                               |
int start()                                      //                                               |
{                                                //0                                              |
//+-----------------------------------------------------------------------------------------------+
SupRes_Update()                                 ;//                                               |
Print ( .............)                          ;//Ausgabe der Tages & Wochenwiderstände & Support|
//+-----------------------------------------------------------------------------------------------+
return                                          ;//                                               |
}                                                //0                                              |
//------------------------------------------------------------------------------------------------+
//+-----------------------------------------------------------------------------------------------+

 

und vorher natürlich Globale Variablen definieren !

 double Sup240,Sup1440 ....usw usf 

Geschrieben

...die letzte/ aktuelle Bar wird nie abgeschlossen sein, denn wenn sie abgeschlossen ist, ist sie nicht mehr die letzte. :wink:

Ich glaube Du verkomplizierst hier unnötigerweise etwas. Tibo hat nach der letzten abgeschlossenen Bar gefragt und die ist eben eindeutig durch die 1 bestimmbar :wink:.

Geschrieben
  • Autor

@Kleinbroker:

Danke für die ausführliche Antwort. Der Code birgt gute Anregungen!

 

@conglom-o

Danke - die Bestimmung mit Hilfe des Parameter 1 wurde ja schon beantwortet.

 

Wozu man das nutzt düfte ja klar sein ;)

Ich möchte einen kleinen EA schreiben, der bei Ausbrüchen aktiv wird. Konkret versoche ich gerade eine Strategie die ich woanders gelesen habe in Code umzuwandeln. Sozusagen als Übung. Dazu werde ich aber sobald ich erste Ergebnisse habe, an anderer Stelle eine Thread aufmachen und den im Forum posten. ;)

Geschrieben

@Kleinerbroker

 

 double Res240 = iHigh(Symbol(),PERIOD_H4,(iHighest(Symbol(),PERIOD_H4,MODE_HIGH,6,1)));// Tageshoch                 |
      int T_Res240= iHighest(Symbol(),PERIOD_H4,MODE_HIGH,6,1)              ;// Tageshoch

 

Ich bekomme bei deinem Code das Hoch der letzten 6 H4 Perioden und nicht das Tageshoch. Wäre es nicht besser einfach iHigh(Symbol(), PERIOD_D1, 0) zu nehmen? So bekommt man auch immer den aktuellen Höchstkurs. Ganz was anderes wäre es natürlich, wenn man z.B. Oanda als Broker hat, dann verschwierigt sich das nochmals wegen der Zeitverschiebung, hier bin auch noch am testen und habe noch nichts Endgültiges gefunden, da ich mich immer noch zu blöd mit den Schleifen/Arrays tue.

Geschrieben

datetime start = Hour();
      double Res240 = iHigh(Symbol(),0,(iHighest(Symbol(),0,MODE_HIGH,start,1)));// Tageshoch

 

Das würde auch gehen, zählt durch Hour() dann immer ab 0:00 Uhr.

Bearbeitet von remon

Geschrieben
der letzten 6 H4 Perioden und nicht das Tageshoch

 

Immer erwischt Ihr mich bei meinen Schlampereien :nictation:

 

Richtig hätte ich schreiben müssen : Das HH/LL der letzten ( 6 * 4) 24 h == 1 day . Sorry

 

Tibo, Tip Mythos sehr zu empfehlen (siehe PN :zwinker: )

 

Grüße

 

KB

Geschrieben

Nachsatz : Es gibt immer noch die CD zu kaufen oder aber - und so habe ich das gemacht - als Kunde von QTrade diese CD als Werbegeschenk zu erhalten .

 

Diese CD hat mir sehr geholfen .

 

KB

 

PS.: Wie immer, ich habe keinerlei persönlichen Vorteil von diesem Hinweis

PPS.: Cxalgo "gib Gas" :zwinker:

  • 3 Jahre später...
Geschrieben

Weiss zufällig jemand von Euch wie ich das Hoch einer bestimmen range, zb von 08 Uhr bis 09:15 uhr, herausfinden kann? Daran bin ich bisher leider gescheitert

Geschrieben

Weiss zufällig jemand von Euch wie ich das Hoch einer bestimmen range, zb von 08 Uhr bis 09:15 uhr, herausfinden kann? Daran bin ich bisher leider gescheitert

Das musst du genauer spezifizieren!

 

Willst du es aus einem Indikator heraus berechnen?

Soll es immer die gleiche Zeit, oder nur eine bestimmte Dauer sein?

Soll der Bereich einstellbar sein?

Aus welchem Timeframe heraus soll die Bestimmung stattfinden?

 

Edit:

Vergiss die Fragen wieder! Ich hab deinen anderen Post gesehen. Warum stellst du die selbe Frage eigentlich 2x? fool.gif

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

Account

Navigation

Suche

Suche

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.