ObjectSetDouble

이 함수는 해당 개체 속성의 값을 설정합니다. 개체 속성은 double 유형이어야 합니다. 이 함수에는 두 가지 변수가 있습니다.

한정자 없이 속성 값 설정

bool  ObjectSetDouble(
   long                            chart_id,          // 차트 식별자
   string                          name,              // 개체명
   ENUM_OBJECT_PROPERTY_DOUBLE     prop_id,           // 속성
   double                          prop_value         // 값
   );

한정자를 나타내는 속성 값 설정

bool  ObjectSetDouble(
   long                            chart_id,          // 차트 식별자
   string                          name,              // 개체명
   ENUM_OBJECT_PROPERTY_DOUBLE     prop_id,           // 속성
   int                             prop_modifier,     // 한정자
   double                          prop_value         // 값
   );

Parameter

chart_id

[in]  차트 식별자. 0은 현재 차트를 의미합니다.

name

[in]  객체명.

prop_id

[in]  개체 속성의 ID. 이 값은 ENUM_OBJECT_PROPERTY_DOUBLE 열거값 중 하나일 수 있습니다.

prop_modifier

[in]  지정한 속성의 한정자. 피보나치 툴과 그래픽 객체 앤드류의 피치포크에서 레벨 수를 나타냅니다. 수준 수는 0부터 시작합니다.

prop_value

[in]  속성 값.

반환값

이 함수는 그래픽 개체의 속성을 변경하는 명령이 차트에 성공적으로 전송된 경우에만 true를 반환합니다. 그렇지 않으면 false를 반환하게 됩니다. 에러에 대한 자세한 내용은 GetLastError()를 참조하십시오.

참고

함수는 비동기 호출을 사용합니다. 이는 함수가 지정된 차트의 대기열에 추가된 명령 실행을 기다리지 않음을 의미합니다. 대신 제어 권한을 즉시 반환합니다.

명령 실행 결과를 확인하려면 지정된 개체 속성을 요청하는 함수를 사용할 수 있습니다. 그러나 이러한 기능은 해당 차트의 대기열 끝에 추가되므로 실행 결과를 기다리기 때문에 시간이 많이 걸릴 수 있습니다. 차트에서 많은 개체로 작업할 때는 이 기능을 고려해야 합니다.

피보나치 개체를 만들고 개체에 새 수준을 추가하는 예제

//+------------------------------------------------------------------+
//| 스크립트 프로그램 시작 함수                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- 보조 배열
   double high[],low[],price1,price2;
   datetime time[],time1,time2;
//--- 개장 가격 복사 - 최신 바 100개면 충분
   int copied=CopyHigh(Symbol(),0,0,100,high);
   if(copied<=0)
     {
      Print("고가 시리즈 값 복제 실패");
      return;
     }
//--- 폐장 가격 복사 - 최신 바 100개면 충분
   copied=CopyLow(Symbol(),0,0,100,low);
   if(copied<=0)
     {
      Print("저가 시리즈 값 복제 실패");
      return;
     }
//--- 마지막 100개의 막대에 대해 오픈 타임 복사
   copied=CopyTime(Symbol(),0,0,100,time);
   if(copied<=0)
     {
      Print("시간 가격 값 복제 실패");
      return;
     }
//--- 시계열과 같이 복사된 데이터에 대한 액세스 구성 - 뒤로
   ArraySetAsSeries(high,true);
   ArraySetAsSeries(low,true);
   ArraySetAsSeries(time,true);
 
//--- 피보 객체의 첫 번째 고정점 좌표
   price1=high[70];
   time1=time[70];
//--- 피보 객체의 두 번째 고정점 좌표
   price2=low[50];
   time2=time[50];
 
//--- Fibo 개체를 생성할 시간
   bool created=ObjectCreate(0,"Fibo",OBJ_FIBO,0,time1,price1,time2,price2);
   if(created) // 개체가 성공적으로 생성된 경우
     {
      //--- 피보 레벨의 색상 설정
      ObjectSetInteger(0,"Fibo",OBJPROP_LEVELCOLOR,Blue);
      //--- 그런데 피보 레벨이 얼마나 되나요?
      int levels=ObjectGetInteger(0,"Fibo",OBJPROP_LEVELS);
      Print("Fibo levels before = ",levels);
      //---저널에 출력 => 레벨의 수:value level_desription
      for(int i=0;i<levels;i++)
        {
         Print(i,": ",ObjectGetDouble(0,"Fibo",OBJPROP_LEVELVALUE,i),
               "  ",ObjectGetString(0,"Fibo",OBJPROP_LEVELTEXT,i));
        }
      //--- 단위당 수준 수를 늘림
      bool modified=ObjectSetInteger(0,"Fibo",OBJPROP_LEVELS,levels+1);
      if(!modified) // 수준 수 변경 실패
        {
         Print("피보의 수준 수 변경 실패, 에러 ",GetLastError());
        }
      //--- 단순 통지
      Print("Fibo levels after = ",ObjectGetInteger(0,"Fibo",OBJPROP_LEVELS));
      //--- 새로 만든 레벨의 값을 설정하다
      bool added=ObjectSetDouble(0,"Fibo",OBJPROP_LEVELVALUE,levels,133);
      if(added) // 레벨에 대한 값 설정 성공
        {
         Print("피보 레벨을 하나 더 설정했습니다.");
         //--- 또한 레벨 설명을 설정하는 것을 잊지 마십시오
         ObjectSetString(0,"Fibo",OBJPROP_LEVELTEXT,levels,"my level");
         ChartRedraw(0);
         //--- Fibo 개체의 수준 수의 실제 값을 가져옵니다.
         levels=ObjectGetInteger(0,"Fibo",OBJPROP_LEVELS);
         Print("추가 후 피보 레벨 = ",levels);
         //--- 다시 한 번 모든 레벨을 출력합니다 - 단지 확인용
         for(int i=0;i<levels;i++)
           {
            Print(i,":",ObjectGetDouble(0,"Fibo",OBJPROP_LEVELVALUE,i),
                  "  ",ObjectGetString(0,"Fibo",OBJPROP_LEVELTEXT,i));
           }
        }
      else // Fibo 개체의 수준 수를 늘리려고 할 경우 실패함
        {
         Print("하나 이상의 피보 레벨을 설정하는데 실패함. Error ",GetLastError());
        }
     }
  }

참고 항목

Object Types, Object Properties