Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools

Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools (http://www.expert-advisor.com/forum/index.php)
-   Programmierung MQL4 (http://www.expert-advisor.com/forum/forumdisplay.php?f=220)
-   -   Position im Chart(integer), von manuell eingefügter Vertikalen Linie ermitteln (http://www.expert-advisor.com/forum/showthread.php?t=6273)

TTFM2016 03.12.18 00:14

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.

TTFM2016 03.12.18 20:46

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?

TTFM2016 04.12.18 18:14

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);

AVT 05.12.18 21:44

Meine Kommentarzeilen sind immer so aufgebaut (macht das Auskommentieren einfacher)
Code:

Comment( " total="+IntegerToString(AllVertLines)
        +" name="+ObjName
        +" time="+TimeToStr(TimeLine)
        +" bar="+IntegerToString(BarNo)
      );

gibt auch nix an der Ausgabe zu meckern, vielleicht probierst Du das mal.
AVT

TTFM2016 06.12.18 17:16

Danke für den Tip.

War aber ein Anfängerfehler von mir. Ich habe in der Schleife nur eine Variable deklariert, der hintereinander alle Objekte aus dem Chart zugewiesen werden.. Somit wurde gar kein Name angezeigt..


Alle Zeitangaben in WEZ +2. Es ist jetzt 16:26 Uhr.

Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.6.1
Powered by vBCMS® 2.7.0 ©2002 - 2024 vbdesigns.de
Copyright ©2009 - 2023 by Expert-Advisor.com - Das Metatrader Forum