Frage zu objectget und objectgetvaluebyshift

 

HI kann jemand mit diesem helfen. Ich habe eine ea, die einen Preis-Wert von einer horizontalen Linie oder Trendlinie bekommt. Allerdings habe ich den Code wie folgt, aber es wird nicht abholen entweder Wert. Wenn ich entfernen Sie die Objectgetvaluebyshift wird es abholen die Horizontale Linie Preis und umgekehrt. Aber ich brauche es, um beide zu erkennen und den Wert von der Linie zu erhalten, die ich auf meinem Diagramm habe (entweder ein trand oder h_line). Vielleicht kann jemand ein bisschen Code posten, damit ich verstehen kann, was zu tun ist.

Danke.

tp =(ObjectGetValueByShift( TP_P, OBJPROP_PRICE1)) || (ObjectGet( TP_P, OBJPROP_PRICE1));

 

ObjectGetValueByShift( string name, int shift)

OBJPROP_PRICE1 ist nicht die "Verschiebung"... Shift ist die Taktnummer, an der Sie den Wert ablesen wollen - anwendbar auf Trendlinien und ähnliche Objekte

double tp = ObjectGetValueByShift( TP_P, 0); // unter der Annahme, dass TP_P eine String-Variable ist, die den Namen des Objekts enthält, und Sie den Wert der Linie beim aktuellen Takt wollen

 
phy:

ObjectGetValueByShift( string name, int shift)

OBJPROP_PRICE1 ist nicht die "Verschiebung"... Shift ist die Taktnummer, an der Sie den Wert ablesen wollen - anwendbar auf Trendlinien und ähnliche Objekte

double tp = ObjectGetValueByShift( TP_P, 0); // unter der Annahme, dass TP_P eine String-Variable ist, die den Namen des Objekts enthält, und Sie den Wert der Linie beim aktuellen Takt wollen


Ich habe versucht, was Sie erklärt haben. Es scheint nicht zu funktionieren. Jede andere Info wäre toll.
 

gavin:

I have tried what you have explianed. It doesnt seen to work. Any other info would be great.

Erhält das, was Sie erklärt haben, den Wert sowohl von einer Trendlinie als auch von einer h_line, je nachdem, was ich gerade im Diagramm geladen habe?

 

Posten Sie Ihren Code, wir haben keine Ahnung, was Sie getan haben.

 

Dies ist, was ich hatte.

--------------------------------------------------------

String TP_P;
if (OrderType()==OP_BUY) TP_P = BTP;
if (OrderType()==OP_SELL) TP_P = STP;

double tp;

tp =(ObjectGetValueByShift( TP_P, OBJPROP_PRICE1)) || (ObjectGet( TP_P, OBJPROP_PRICE1));

-----------------------------------------------------------------------------------------------------------------

Ich habe dann stattdessen das eingefügt, was du gesagt hast, ja?

----------------------------------------------------------

tp = ObjectGetValueByShift( TP_P,0);

 

irgendwelche Helfer?

 
if (ObjectType(TP_P) == OBJ_TREND) tp = ObjectGetValueByShift(TP_P, shift);
else                               tp = ObjectGEt(TP_P, OBJPROP_PRICE1)
 
WHRoeder:


So einfach, jetzt habe ich es gesehen. Vielen Dank, Kumpel, für die Hilfe. Das hat genau so funktioniert, wie ich wollte. Prost....
 

Hallo,

Ich habe den folgenden Code, um den Preis von der Trendlinie zu erhalten. Es funktioniert nicht. Bitte um Hilfe.

int obj_total = ObjectsTotal();
string name;
for(int j = 0; j<obj_total; j++)
{
name = ObjectName(j);
Print(j, "Objekt - ", name);
}
if(ObjectType(name) == OBJ_TREND && name == "Trendline1-m30")
{
Preis1 = ObjectGetValueByShift(name, 0);
}

if(ObjectType(name) == OBJ_TREND && name == "Trendline2-m30")
{
price2 = ObjectGetValueByShift(name, 0);
}

 

Hallo, bitte verwenden Sie die SRC-Taste, wenn Sie Code posten.

Der gesamte gelb markierte Code befindet sich AUSSERHALB der "for"-Schleife.

Der Wert von "name" ist also immer der Name des endgültigen Objekts.

int obj_total = ObjectsTotal();
   string name;
   for(int j = 0; j<obj_total; j++)
   {
   name = ObjectName(j);
   Print(j, "Object - ", name);
   }
      if(ObjectType(name) == OBJ_TREND && name == "Trendline1-m30")
      {
       price1 = ObjectGetValueByShift(name, 0);
      }

      if(ObjectType(name) == OBJ_TREND && name == "Trendline2-m30")
      {
       price2 = ObjectGetValueByShift(name, 0);
      }


Versuchen Sie vielleicht Folgendes (vorausgesetzt, price1 und price2 sind bereits an anderer Stelle deklariert):

   int obj_total = ObjectsTotal();
   string name;
   for(int j = 0; j<obj_total; j++)
     {
      name = ObjectName(j);
      Print(j, "Object - ", name);
      if(ObjectType(name) == OBJ_TREND && name == "Trendline1-m30")
        {
         price1 = ObjectGetValueByShift(name, 0);
        }

      if(ObjectType(name) == OBJ_TREND && name == "Trendline2-m30")
        {
         price2 = ObjectGetValueByShift(name, 0);
        }
     }