Objectget 및 objectgetvaluebyshift 질문

 

HI 누구든지 이것을 도울 수 있습니다. 수평선 이나 추세선에서 가격 값을 얻는 ea가 있습니다. 그러나 다음과 같은 코드가 있지만 어느 값도 선택하지 않습니다. Objectgetvaluebyshift를 제거하면 수평선 가격이 선택되고 그 반대의 경우도 마찬가지입니다. 하지만 두 가지를 모두 인식하고 내 차트(트랜드 또는 h_line)에 있는 라인의 값을 가져오기 위해 필요합니다. 아마도 누군가가 약간의 코드를 게시하여 내가 무엇을 해야 하는지 이해할 수 있을 것입니다.

감사해요.

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

 

ObjectGetValueByShift ( 문자열 이름, int shift)

OBJPROP_PRICE1은 "이동"이 아닙니다... Shift는 값을 가져오려는 막대 번호입니다. 추세선 및 유사한 개체에 적용할 수 있습니다.

이중 tp = ObjectGetValueByShift(TP_P, 0); // TP_P가 개체의 이름을 포함하는 문자열 변수이고 현재 막대에 있는 행의 값을 원한다고 가정합니다.

 
phy :

ObjectGetValueByShift ( 문자열 이름, int shift)

OBJPROP_PRICE1은 "이동"이 아닙니다... Shift는 값을 가져오려는 막대 번호입니다. 추세선 및 유사한 개체에 적용할 수 있습니다.

이중 tp = ObjectGetValueByShift(TP_P, 0); // TP_P가 개체의 이름을 포함하는 문자열 변수이고 현재 막대에 있는 행의 값을 원한다고 가정합니다.


나는 당신이 설명 한 것을 시도했습니다. 작동하지 않는 것으로 보입니다. 다른 정보가 있으면 좋습니다.
 

gavin :

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

설명하신 내용이 당시 차트에 로드한 추세선 또는 h_line 모두에서 값을 얻습니까?

 

코드를 게시하세요. 우리는 당신이 무엇을 했는지 전혀 모릅니다.

 

이것은 내가 가진 것입니다.

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

문자열 TP_P;
if (OrderType()==OP_BUY) TP_P = BTP;
if (OrderType()==OP_SELL) TP_P = STP;

더블 TP;

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

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

그런 다음 이것을 대신 넣었습니다. 당신이 말한 것은 무엇입니까?

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

tp = ObjectGetValueByShift(TP_P,0);

 

어떤 도우미??

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


너무 간단해서 이제 봤습니다. 많은 도움을 주셔서 감사합니다. 그것은 내가 원하는 대로 이루어졌습니다. 건배....
 

안녕,

추세선에서 가격을 가져오는 다음 코드가 있습니다. 그것은 작동하지 않습니다. 어떤 도움을 주시기 바랍니다.

int obj_total = ObjectsTotal();
문자열 이름;
for(int j = 0; j<obj_total; j++)
{
이름 = 개체 이름(j);
Print(j, "객체 - ", 이름);
}
if(ObjectType(이름) == OBJ_TREND && 이름 == "추세선1-m30")
{
price1 = ObjectGetValueByShift(이름, 0);
}

if(ObjectType(이름) == OBJ_TREND && 이름 == "추세선2-m30")
{
price2 = ObjectGetValueByShift(이름, 0);
}

 

안녕하세요, 코드 게시 시 SRC 버튼을 이용해 주세요.

노란색 으로 표시된 모든 코드는 'for' 루프 외부에 있습니다.

따라서 'name'의 값은 항상 최종 객체의 이름입니다.

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


아마도 이것을 시도하십시오(price1 및 price2가 이미 다른 곳에서 선언되었다고 가정):

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