Pergunta de objectget e objectget valuebyshift

 

HI pode qualquer um ajudar com isto. Eu tenho uma ea que recebe um valor de preço de uma linha horizontal ou linha de tendência. No entanto, tenho o código a seguir, mas ele não vai captar nenhum dos valores. Se eu remover o Objectget valuebyshift ele irá pegar o preço da linha horizontal e vice versa. Mas eu preciso que ele reconheça ambos e obtenha o valor de qual linha eu tenho em meu gráfico (seja uma trand ou h_line). Talvez alguém poste um pouco de código para que eu possa entender o que fazer.

Obrigado.

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

 

ObjectGetValueByShift( nome da cadeia, int shift)

OBJPROP_PRICE1 não é o "turno"... Shift é o número de barra no qual você quer pegar o valor -- aplicável à linha de tendência e objetos similares

double tp = ObjectGetValueByShift( TP_P, 0); // assumindo que TP_P é uma variável de string contendo o nome do objeto, e você quer o valor da linha na barra atual

 
phy:

ObjectGetValueByShift( nome da cadeia, int shift)

OBJPROP_PRICE1 não é o "turno"... Shift é o número de barra no qual você quer pegar o valor -- aplicável à linha de tendência e objetos similares

double tp = ObjectGetValueByShift( TP_P, 0); // assumindo que TP_P é uma variável de string contendo o nome do objeto, e você quer o valor da linha na barra atual


Eu experimentei o que você explicou. Não parece funcionar. Qualquer outra informação seria ótimo.
 

gavin:

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

O que você explicou, obtém o vaule tanto de uma linha de tendência quanto de uma h_line, que eu já carreguei na carta no momento?

 

Coloque seu código, não temos a menor idéia do que você fez.

 

Isto é o que eu tinha.

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

string TP_P;
if (OrderType()==OP_BUY) TP_P = BTP;
se (OrderType()==OP_SELL) TP_P = STP;

duplo tp;

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

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

Em vez disso, o que você disse, sim?

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

tp = ObjectGetValueByShift( TP_P,0);

 

algum ajudante??

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


Tão simples que agora eu vi isso. Muito obrigado pela ajuda. Isso funcionou exatamente como eu queria. Saúde....
 

Hi,

Eu tenho o seguinte código para obter o preço da linha de tendência. Não está funcionando. Qualquer ajuda, por favor.

int obj_total = ObjectsTotal();
nome da linha de tendência;
for(int j = 0; j<obj_total; j++)
{
nome = ObjectName(j);
Imprimir(j, "Objeto - ", nome);
}
if(ObjectType(name) == OBJ_TREND && name == "Trendline1-m30")
{
price1 = ObjectGetValueByShift(nome, 0);
}

if(ObjectType(name) == OBJ_TREND && name == "Trendline2-m30")
{
preço2 = ObjectGetValueByShift(nome, 0);
}

 

Olá, por favor, use o botão SRC ao postar o código.

Todo o código em amarelo é OUTRO LADO o loop 'para'.

Portanto, o valor de 'nome' é sempre o nome do objeto 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);
      }


Talvez tente isto (presumindo que o preço1 e o preço2 já estão declarados em outro lugar):

   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);
        }
     }
Razão: