|
Programmierung MQL4 Hier gehts rund ums Programmieren in MQL4. |
|
Themen-Optionen | Thema durchsuchen | Ansicht |
|
|||
Position im Chart(integer), von manuell eingefügter Vertikalen Linie ermitteln
Hallo, wie kann ich die Position (z.B. 10. Kerze) von einer manuell eingefügten Vertikalen Linie ermitteln?
Hier noch der nicht funktionierende Code. int obj_total=ObjectsTotal(0,0,OBJ_VLINE); string name1; int V1; int f=0; for(int i=0;i<=obj_total;i++) { if(ObjectType(i)==OBJ_VLINE && f<=0) { name1 = ObjectName(i); f++; } } V1 = ObjectGet(name1,OBJPROP_TIME1); Comment ("ObjectsTotal ",obj_total," name1 ",name1," V1 ",V1); Das einzige was er ausgibt für V1 ist ein Preis.. Hoffe, es ist nicht alles falsch und es gibt noch Hoffnung. |
|
|||
Mit dem Code bekomme ich schonmal die Position der Linie als Datum(in Sekunden) angezeigt.
for(int t=0;t<=ObjectsTotal();t++) { string name=ObjectName(t); if(ObjectType(name)==OBJ_VLINE) { Shift2 = ObjectGetInteger(0,name,OBJPROP_TIME); } Comment("Shift2 ",Shift2," ","Name ",name, "ObjectsTotal ",ObjectsTotal()); } Jetzt müsste ich ja irgendwie über eine Matheformel auf den "Shiftwert" kommen.. Ist zwar ultra kompliziert, aber eine mögliche Lösung denke ich.. Achso ne Kleinigkeit noch, der Name wird mir über die Comment Funktion nicht angezeigt. Gibt es da einen Trick weil es ein string ist? |
|
|||
Es funktioniert jetzt. Anstatt einer Matheformel brauchte ich lediglich noch iBarShift.. Wenn jemand noch einen Tip hat, warum der "name1" nicht über Comment angezeigt wird, wäre ich sehr dankbar. Hier der Code:
int Shift1; string name1; for(int t=0;t<=ObjectsTotal();t++) { if(Shift1<=0) { name1=ObjectName(t); if(ObjectType(name1)==OBJ_VLINE) { Shift1 = ObjectGetInteger(0,name1,OBJPROP_TIME); } } } int Vline = iBarShift(0,0,Shift1); |
|
|||
Meine Kommentarzeilen sind immer so aufgebaut (macht das Auskommentieren einfacher)
Code:
Comment( " total="+IntegerToString(AllVertLines) +" name="+ObjName +" time="+TimeToStr(TimeLine) +" bar="+IntegerToString(BarNo) ); AVT |
Lesezeichen |
|
|