iBars Daten von den 3 zuletzt geschlossenen Kerzen

 

Hallo MQL5 Experten,

ich bin total neu in dem Thema Coding und habe schon viel gelesen und probiert.

Ich weiß wie ich jetzt auf open, high, low und close der letzten Kerze zugreifen kann. wie kann ich aber diese Informationen für die 3 letzten Kerzen ausgeben? Vielen Dank!

      double   open  = iOpen(Symbol(),Timeframe,shift); 

      double   high  = iHigh(Symbol(),Timeframe,shift);

      double   low   = iLow(Symbol(),Timeframe,shift); 

      double   close = iClose(NULL,Timeframe,shift); 

      int      bars  = iBars(NULL,0);

      Comment(Symbol(),",",EnumToString(Timeframe),"\n", 

           "Open: "  ,DoubleToString(open,Digits()),"\n", 

           "High: "  ,DoubleToString(high,Digits()),"\n", 

           "Low: "   ,DoubleToString(low,Digits()),"\n", 

           "Close: " ,DoubleToString(close,Digits()),"\n", 

           "Bars: "  ,IntegerToString(bars),"\n" 

           ); 

vielen Dank!


Niewby

 

Schau dir mal

MqlRates an

 
Such mal in der Referenz nach CopyRates().
Dokumentation zu MQL5: Zugang zu Zeitreihen und Indikatoren / CopyRates
Dokumentation zu MQL5: Zugang zu Zeitreihen und Indikatoren / CopyRates
  • www.mql5.com
Abzählen der Elemente von der Startposition wird von der Gegenwart zur Vergangenheit durchgeführt, d. h. Startposition, 0, bedeutet die laufende Bar. Beim Kopieren der im voraus unbekannten Anzahl der Daten ist es empfehlenswert, als Feld-Rezipient ein dynamisches Feld zu verwenden, denn wenn die Anzahl der Daten weniger (oder mehr) ist als ein...
 

Dank Carl!

Das ist gut, aber leider bekomme ich nur die Daten von der letzten Kerze. 

wie bekomme ich denn die Daten von den 3 letzten Kerzen? 

 
ibrkar:

Dank Carl!

Das ist gut, aber leider bekomme ich nur die Daten von der letzten Kerze. 

wie bekomme ich denn die Daten von den 3 letzten Kerzen? 

MqlRates rates[];
int      toCopy;

int OnInit()
{
   ArraySetAsSeries(rates,true);
   return(INIT_SUCCEEDED);
}

void OnTick()
{
   if(CopyRates(_Symbol,_Period,0,toCopy,rates)!=toCopy)
      return;
   
   rates[0].high; // zugriff auf aktuelle Kerze
   rates[0].low;
   
   rates[1].high; // zugriff auf letzte Kerze
   rates[1].low;
   
   rates[2].high; // zugriff auf vorletzte Kerze
   rates[2].low;
   
}

Der Code an sich macht natürlich keinen Sinn. Er zeigt nur wie du über den Index auf die Kerzen zugreifen kannst. Open und close gibt's natürlich auch noch.

Das melder auch brav der Compiler, daß dieser Code keinen Effekt hat ;)

Der Zugriff über CopyRates() ist sicher effektiver als die vielen Zugriffe die du machst. Du müsstest dazu den Parameter 'shift' verändern. ist imho eher MQL4 'old school'

 
ibrkar:

Dank Carl!

Das ist gut, aber leider bekomme ich nur die Daten von der letzten Kerze. 

wie bekomme ich denn die Daten von den 3 letzten Kerzen? 

Diese Frage ist jetzt enttäuschend! (Ist das Ausrufezeichen hier korrekt? ;)

Der Link führt zur Dok. und dort gibt es ein Beispiel, das genau diese Frage beantwortet.

 
Carl Schreiber:

Diese Frage ist jetzt enttäuschend! (Ist das Ausrufezeichen hier korrekt? ;)

Der Link führt zur Dok. und dort gibt es ein Beispiel, das genau diese Frage beantwortet.

Eigentlich schon Calli , aber auch hier würde ich sanfte Töne wählen
 
Christian:
Eigentlich schon Calli , aber auch hier würde ich sanfte Töne wählen

Meinst Du? Ist es in gewisser Weise nicht eine Beleidigung und Ausnutzung der Hilfsbereitschaft der erfahrenen Nutzer dieses Forums, wenn das eigene Bemühen nahe Null ist?

Er musst ja nicht einmal nach dem Link suchen.

 

Hallo Alle,

sorry für das Missverständnis. Ihr habt mich falsch verstanden und gestern habe ich schon einen langen Post wo ich Euch alle bedankt habe. Leider aus irgend einen Grund wurde das nicht publiziert oder es gab ein Versehen von mir und habe den Post irgendwie nicht gesendet.

Ich war am suchen und versuchen schon seit Tagen und plötzlich postet ihr mir gute Wege um das Problem zu lösen und es hat sehr gut geklappt. Ich kann nicht das Gute gegen das schlechte tauschen. 

Entschuldigt mich viel Mal wie gesagt, das habe ich überhaupt nicht gemeint. 

Gestern habe ich geschrieben, dass ich die lange Erklärung am Anfang übersehen habe wegen den kleinen Link weiterlesen. Als ich das gesehen habe habe ich sofort kappiert wie es funktioniert und es hat auch funktioniert.


Sorry alle und hoffe ihr verzeiht mein Fehler den ich eigentlich nicht gemacht habe oder zumindest nicht gemeint habe. Ich habe immer bisher Danke! mit Ausrufzeichen geschrieben weil es schöner sah ab jetzt mache ich das nicht mehr :) nur Danke. in Zukunft

 
ibrkar: Ich habe immer bisher Danke! mit Ausrufzeichen geschrieben weil es schöner sah ab jetzt mache ich das nicht mehr :) nur Danke. in Zukunft

Du bist nicht gemeint beim Thema "!" Das wurde aus dem Zusammenhang gerissen bei dir...alles  ist gut ! :-)

Ja die Webseite hier die zickt an und ab. Gewöhne dich dran.

Jeder darf weiterhin Danke! Sagen 

 
Carl Schreiber:

Meinst Du? Ist es in gewisser Weise nicht eine Beleidigung und Ausnutzung der Hilfsbereitschaft der erfahrenen Nutzer dieses Forums, wenn das eigene Bemühen nahe Null ist?

Er musst ja nicht einmal nach dem Link suchen.

Na schau Carl  ist doch alles gar nicht schlimm. Er bemüht sich doch.

Grund der Beschwerde: