|
Programmierung MQL4 Hier gehts rund ums Programmieren in MQL4. |
|
Themen-Optionen | Thema durchsuchen | Ansicht |
|
|||
Arrow am letzten Bar finden
Hallo,
ich suche ein Arrow am letzten Bar. Wie kann man das programmieren? - das Arrow heißt z.B. "Name + Präfix" - Suche nur nach "Name" - am letzten oder vorletztem Bar suchen. Ich wollte zuerst das Arrow über den Indicatorbuffer abfragen, aber da friert mir das Programm ein. Danke! |
|
|||
Das sind verdammt wenig Informationen für eine Lösung.
1. Woher kommt der Arrow, aus einem Indikator? 2. Wie wird der erzeugt, über einen Buffer oder ein Objekt? 3. Bei einem Buffer: wie sieht der Wert aus, wenn kein Arrow da ist? Anmerkung: Name ist entweder Präfix+BasisName oder BasisName+Suffix. Und dann muß Du schon wissen, ob das nun die aktuelle oder vorige Kerze sein soll, oder ob Du so lange suchen willst bis Du einen Arrow findest. Also, die ganze Anfrage noch mal präziser, bitte. AVT |
|
|||
Im Indikatorbuffer steht der Preis für das Arrow. Dieser wird dann über ObjectCreate() erzeugt (wenn ich den Code richtig gelesen habe).
Da ich nicht sicher bin, ob das Arrow immer an der aktuellen Kerze erscheint, würde ich gerne die letzten beiden Kerzen über eine for-Schleife absuchen lasen. Beim Namen des Arrows habe ich mich wahrscheinlich etwas ungenau ausgedrückt. Name = "abc" + Präfix mit SringFind(Name,"abc",0) bekomme ich dann "abc". Falls noch weitere Infos gebraucht werden, bitte fragen. Danke derumuro Geändert von derumuro (18.02.21 um 19:37 Uhr) |
|
|||
Zitat:
Code:
bool Result=false; // === fange beim letzten/neusten Objekt an zu suchen for(int i=0; i<ObjectsTotal()-1; i++) { string Search="abc"; //wonach suchen wir string obj_name=ObjectName(i); //Name des jeweiligen Objektes if(obj_name==Search) //wenn der Name "abc" lautet { // === hat der Pfeil dieselbe Zeit wie die laufende Kerze if(ObjectGetInteger(0,obj_name,OBJPROP_TIME)==Time[0]) Result=true; // === hat der Pfeil dieselbe Zeit wie die vergangene Kerze if(ObjectGetInteger(0,obj_name,OBJPROP_TIME)==Time[1]) Result=true; } } if(Result==true) Print("Pfeil auf letzter oder aktueller Kerze"); In etwa so geht die Abfrage, kannst Du aber noch mit weiteren Bedingungen erweitern, z.B. wenn Objekte kein Pfeil ist, dann continue. Hoffe, das hilft Dir schon weiter. AVT |
|
|||
Guten Morgen AVT,
dein Code funktioniert ! Danke dafür ! Da jeder neue Arrow einen anderen Namen hat (Präfix ändert sich ständig), musste ich nur noch eine kleine Änderung vornehmen. aus Code:
if(name == "abc") .... Code:
if(StringSubstr(name,0,3) == "abc")..... derumuro Geändert von derumuro (19.02.21 um 10:28 Uhr) |
Lesezeichen |
|
|