MQL4 및 MQL5에 대한 초보자 질문, 알고리즘 및 코드에 대한 도움말 및 토론 - 페이지 1793

 
Nerd Trader # :
예, 실제로 이미 8 조각이 있지만 차트에 표시되지 않습니다. 0의 가격이 중요하지 않다는 사실, 라인은 여전히 커서에 달라 붙습니다 (따라갑니다)

ObjectDelete 를 사용하지 마십시오. 라인은 매번 "0"으로 실행됩니다.

더 낫다
        ObjectSetString ( 0 , "line 1" , OBJPROP_NAME ,line_name);
       ObjectSetInteger ( 0 ,line_name, OBJPROP_COLOR , clrRed );
 
MakarFX # :

ObjectDelete 를 사용하지 마십시오. 라인은 매번 "0"으로 실행됩니다.

더 낫다
이름 바꾸기 옵션이 있으며 작동합니다. ObjectDelete ()의 경우 동일한 인스턴스에서 녹색 및 빨간색 선이 생성되고 깜박이지 않는 이유는 무엇입니까? 그리고 노란색 선(손절매)이 이미 존재한다면 조건이 Bid 이하일 때 왜 끝없이 증식합니까?
 

0은 거짓을 의미합니다. 0이 아닌 것은 모두 참입니다. 그러나 모든 종류의 조건이 혼합된 그러한 코드의 가독성에 대해 생각해 본 사람이 있습니까?

 if (! ObjectFind ( "Buy Stop" ))

이것은 부울 값이 아닙니다. 그러나 그것은 쉽게 부울로 바뀔 수 있습니다:

 bool objectExist( const long _chartID, const string _name) { return ( ObjectFind (_chartID, _name) >= 0 ); } // чётко определим условие существования объекта!
 if (!objectExist(0, "Buy stop" ))
   Print ( "Error! Object not found." )

따라서 가장 중요한 것은 코드 작성에 대한 올바른 접근 방식을 갖는 것입니다. 그러면 그런 문제가 발생하지 않을 입니다.

 
Nerd Trader # :
이름 바꾸기 옵션이 있으며 작동합니다. ObjectDelete ()의 경우 왜 녹색 선과 빨간색 선이 동일한 인스턴스에서 생성되고 깜박이지 않습니까? 그리고 이미 노란색 선이 있으면 왜 끝없이 번식합니까?

이 라인은 귀하의 통제하에 있습니다.

 if (id== CHARTEVENT_OBJECT_CLICK ){

깜박이는 라인은 OnChartEvent에 반응합니다.

 if ( ObjectGetInteger ( 0 , "Button Stop Order" , OBJPROP_STATE ))
 
Mihail Matkovskij # :

0은 거짓을 의미합니다. 0이 아닌 것은 모두 참입니다. 그러나 모든 종류의 조건이 혼합된 그러한 코드의 가독성에 대해 생각해 본 사람이 있습니까?

이것은 부울 값이 아닙니다. 그러나 그것은 쉽게 부울로 바뀔 수 있습니다:

따라서 가장 중요한 것은 코드 작성에 대한 올바른 접근 방식을 갖는 것입니다. 그러면 그런 문제가 발생하지 않을 입니다.

 return ( ObjectFind (_chartID, _name) >= 0 )

그리고 개체가 기본 창 "0"에 있으면 false를 반환합니까?

 
MakarFX # :

깜박이는 라인은 OnChartEvent에 반응합니다.

나는 그에게 말했다: 버튼이 눌렸다 - 우리는 선을 만들고, 버튼을 눌렀다 - 우리는 (그리고 붙일 수 있는 다른 유형의 객체와 함께) 삭제했다. 그러나 그는 말했다 : 이것은 말도 안되는 소리입니다. 나는 모든 것을 "정상적으로"할 것입니다. :)

 
Nerd Trader # :

그리고 개체가 기본 창 "0"에 있으면 false를 반환합니까?

문서를 읽지 않으려는 당신을 물리칠 수 있는 것이 바로 이것입니다!

https://www.mql5.com/ru/docs/objects/objectfind

https://docs.mql4.com/en/objects/objectfind

반환 값

성공할 경우 함수는 찾은 개체가 있는 하위 창( 0 은 차트의 기본 창을 의미함 )의 번호를 반환합니다. 객체를 찾을 수 없으면 함수는 음수를 반환합니다. 에 대한 자세한 내용은   오류 , 당신은 함수를 호출해야합니다   GetLastError() .

Документация по MQL5: Графические объекты / ObjectFind
Документация по MQL5: Графические объекты / ObjectFind
  • www.mql5.com
ObjectFind - Графические объекты - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
MakarFX # :

이 라인은 귀하의 통제하에 있습니다.

깜박이는 라인은 OnChartEvent에 반응합니다.

녹색 선은 일반적으로 모든 선도 커서의 움직임에 반응합니다. 노란색 "Sell Stop"의 경우 조건이 if( price > Ask ) 녹색 "Buy Stop"(price < Bid)이고 회색의 경우 "not allowed"이기 때문에 스프레드 영역에서 세 라인 모두 생성된다는 것을 방금 깨달았습니다. " ( 가격 > 입찰 && 가격 < 질문 )
 
Nerd Trader # :

그리고 개체가 기본 창 "0"에 있으면 false를 반환합니까?

 bool FindObject( string name)
  {
   if ( ObjectFind ( 0 ,name)) return ( false );
   return ( true );
  }
 
Mihail Matkovskij # :

나는 그에게 말했다: 버튼이 눌렸다 - 우리는 선을 만들고, 버튼을 눌렀다 - 우리는 (그리고 붙일 수 있는 다른 유형의 객체와 함께) 삭제했다. 그러나 그는 말했다 : 이것은 말도 안되는 소리입니다. 나는 모든 것을 정상적인 방식으로 할 것입니다. :)

당신은 속성을 통해 색상의 변화에 대해? 나는 그러한 옵션이 있습니다. 왜 이것이 작동하지 않는지 이해해야 합니다.

마이클 마트코프스키 :

문서를 읽지 않으려는 당신을 물리칠 수 있는 것은 무엇입니까?!

https://www.mql5.com/ru/docs/objects/objectfind

https://docs.mql4.com/en/objects/objectfind

글쎄요, 메인 창의 객체가 "0"일 때 함수가 false를 반환할 때 무슨 문제가 있습니까? >= 0... 또는 0과 같은 순간을 설명하십시오.