Question sur l'objetget et l'objetgetvaluebyshift

 

Quelqu'un peut-il m'aider ? J'ai un ea qui obtient une valeur de prix à partir d'une ligne horizontale ou d'une ligne de tendance. Cependant, j'ai le code suivant mais il ne prend aucune des deux valeurs. Si j'enlève l'Objectgetvaluebyshift, il récupère le prix de la ligne horizontale et vice versa. Mais j'ai besoin qu'il reconnaisse les deux et obtienne la valeur de la ligne que j'ai sur mon graphique (soit un trand ou une h_line). Peut-être que quelqu'un pourra poster un bout de code pour que je puisse comprendre ce qu'il faut faire.

Merci.

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

 

ObjectGetValueByShift( string name, int shift)

OBJPROP_PRICE1 n'est pas le "shift"... Shift est le numéro de la barre à laquelle vous voulez prendre la valeur -- applicable à la ligne de tendance et aux objets similaires

double tp = ObjectGetValueByShift( TP_P, 0) ; // en supposant que TP_P est une variable chaîne contenant le nom de l'objet, et que vous voulez la valeur de la ligne à la barre actuelle

 
phy:

ObjectGetValueByShift( string name, int shift)

OBJPROP_PRICE1 n'est pas le "shift"... Shift est le numéro de la barre à laquelle vous voulez prendre la valeur -- applicable à la ligne de tendance et aux objets similaires

double tp = ObjectGetValueByShift( TP_P, 0) ; // en supposant que TP_P est une variable chaîne contenant le nom de l'objet, et que vous voulez la valeur de la ligne à la barre actuelle


J'ai essayé ce que vous avez expliqué. Cela ne semble pas fonctionner. Toute autre information serait la bienvenue.
 

gavin:

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

Est-ce que ce que vous avez expliqué permet d'obtenir la tension à partir d'une ligne de tendance ou d'une h_line, selon ce que j'ai chargé sur le graphique à ce moment-là ?

 

Postez votre code, nous n'avons aucune idée de ce que vous avez fait.

 

C'est ce que j'avais.

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

chaîne de caractères TP_P ;
si (OrderType()==OP_BUY) TP_P = BTP ;
si (OrderType()==OP_SELL) TP_P = STP ;

double tp ;

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

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

J'ai alors mis ceci à la place, ce que vous avez dit oui....

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

tp = ObjectGetValueByShift( TP_P,0) ;

 

des aides ? ??

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


C'est tellement simple maintenant que je l'ai vu. Merci beaucoup pour votre aide. Cela a fonctionné exactement comme je le voulais. Cheers....
 

Bonjour,

J'ai le code suivant pour obtenir le prix de la ligne de tendance. Il ne fonctionne pas. Merci de m'aider.

int obj_total = ObjectsTotal() ;
nom de chaîne ;
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) ;
}

 

Bonjour, veuillez utiliser le bouton SRC lorsque vous postez du code.

Tout le code en jaune est en dehors de la boucle 'for'.

Ainsi, la valeur de 'name' est toujours le nom de l'objet final.

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


Essayez peut-être ceci (en supposant que prix1 et prix2 sont déjà déclarés ailleurs) :

   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);
        }
     }
Raison: