MQL 전문가를 위한 질문 - 페이지 3

 

어디선가 조언을 듣게 되었는데, ObjectCreate(또는 ObjectSet? 기억나지 않음)를 사용 하기 전에 항상 객체의 존재를 확인하십시오.

일반적으로 이 옵션을 사용합니다.

 if ( ObjectFind ( "AsignalGF" )==- 1 )
      { ObjectCreate ( "AsignalGF" , OBJ_LABEL , 0 , 0 , 0 , 0 , 0 );
      ObjectSet( "AsignalGF" , OBJPROP_CORNER , 1 );
      ObjectSet( "AsignalGF" , OBJPROP_XDISTANCE , 12 * 1 );
      ObjectSet( "AsignalGF" , OBJPROP_YDISTANCE , 1 * 5 );
      ObjectSetText( "AsignalGF" ,CharToStr( 110 ), 38 , "Wingdings" , DimGray );}
 
leonid553 :

안녕하세요.

나는 이미 반나절을 보냈고 나는 그것을 이해할 수 없습니다.

제발. 여기서 무엇이 잘못될 수 있는지 말씀해 주시겠습니까? 아마도 INIT 기능에서?

오류는

1. init() 또는 init에서 호출되는 함수에서 WindowFind()를 호출하는 경우

2. WindowFind() 및 #property indicator_chart_window 를 선언했습니다. 왜냐하면 WindowFind()는 하위 창에 대해 호출됩니다.

3. 찾고 있는 이름의 표시기가 창에 없습니다.

 
keekkenen :

3. 찾고 있는 이름의 표시기가 창에 없습니다.

mmm... sysl에서 개체?
 
Abzasc :
mmm... sysl에서 개체?

여기서 물건은 무엇입니까?

객체는 여기에서 2차적입니다. 왜냐하면 존재하지 않는 창에 그리기를 시도합니다.

또한 객체가 생성되면 객체가 다시 생성되어도 오류가 발생하지 않습니다. - ObjectCreate() 는 false를 반환 합니다.

 
keekkenen :

여기서 물건은 무엇입니까?

객체는 여기에서 2차적입니다. 왜냐하면 존재하지 않는 창에 그리기를 시도합니다.

또한 객체가 생성되면 객체가 다시 생성되어도 오류가 발생하지 않습니다. - ObjectCreate()는 false를 반환 합니다.

이해했습니다 감사합니다 :)
 
keekkenen :

오류는

1. init() 또는 init에서 호출되는 함수에서 WindowFind()를 호출하는 경우

2. WindowFind() 및 #property indicator_chart_window를 선언했습니다. WindowFind()는 하위 창에 대해 호출됩니다.

3. 찾고 있는 이름의 표시기가 창에 없습니다.


1. 아니요, START에서 함수를 호출합니다. object("Symbol1", Symbol_1, 11, Color_1, 5);

2. #property indicator_separate_window 선언

3. 창이 있는 경우 표시기가 없을 수 있습니까?

다음은 함수 자체입니다.

 void object( string name, string _text, int fontsize, color color_, int value) {
// задаем окно индикатора
 ObjectCreate (name+ WindowExpertName(), OBJ_LABEL , WindowFind(WindowExpertName()), 0 , 0 );
 // задаем текстовую метку в окне
ObjectSetText(name+ WindowExpertName(), _text, fontsize, "Times New Roman" , color_);
 ObjectSet(name+ WindowExpertName(), OBJPROP_CORNER , 1 );//задаем правый угол
 ObjectSet(name+ WindowExpertName(), OBJPROP_XDISTANCE , 4 );//задаем х-координату
 ObjectSet(name+ WindowExpertName(), OBJPROP_YDISTANCE , value);//задаем у-коордтнату 
                                     }
INIT에서는 아무 것도 부르지 않습니다. 거기에 뭔가를 추가해야 하지 않을까요?
 
Abzasc :

어디선가 조언을 듣게 되었는데, ObjectCreate(또는 ObjectSet? 기억나지 않음)를 사용하기 전에 항상 객체의 존재를 확인하십시오.

일반적으로 이 옵션을 사용합니다.

어떤 이름을 지정해야합니까 ( ObjectFind ( "AsignalGF") -

표시기의 이름 또는 칠면조가 그리는 선의 이름(배열)?

 
leonid553 :

(ObjectFind("AsignalGF")에 어떤 이름을 설정해야 하나요? -

표시기의 이름 또는 칠면조가 그리는 선의 이름(배열)?

생성/변경되는 개체의 이름입니다.
 

처럼. 함수에서 개체의 이름을 설정했습니다.

ObjectCreate( 이름+ WindowExpertName() , OBJ_LABEL , WindowFind(WindowExpertName()), 0, 0);


 
leonid553 :

함수에서 개체의 이름을 설정했습니다. ObjectCreate( 이름+ WindowExpertName() , ....);

그게 바로 우리가 찾고 있는 것입니다.