C-4: MT5는 차트 프로퍼티를 비동기식으로 업데이트합니다. 즉, 프로퍼티를 설정했다고 해서 터미널이 즉시 프로퍼티를 가져온다는 의미는 아닙니다. ChartRedraw() 함수는 터미널에서 모든 프로퍼티를 다시 읽도록 하는 데 사용됩니다. 또한 ChartGet... ObjectGet 함수를 사용할 수도 있는데, 이 경우 속성도 다시 읽습니다.
이 정보는 어디에서도 찾을 수 없습니다. 나는 그것을 발견하고 해결책을 찾았으니 이제 알게 될 것입니다.
차트 작업을 위한 함수입니다. 차트를 사용한 모든 작업은 전문가 조언자 및 스크립트에서만 적용 가능합니다.
차트의 속성을 설정하는 함수는 실제로 차트를 변경하는 명령을 보내는 데 사용됩니다. 이러한 함수가 성공적으로 실행되면 해당 명령은 차트의 일반 이벤트 대기열에 포함됩니다. 그래프 변경은 주어진 그래프의 이벤트 큐를 처리하는 동안 이루어집니다.
따라서 이러한 함수를 호출한 후 차트의 즉각적인 시각적 업데이트를 기대해서는 안 됩니다. 일반적으로 차트 업데이트는 새 호가 도착, 차트 창 크기 변경 등 변경 이벤트에 의해 터미널에서 자동으로 수행됩니다. 차트 모양을 강제로 업데이트하려면 ChartRedraw() 명령을 사용하여 차트를 다시 그립니다.
komposter: 이 정보는 어디서도 본 적이 없습니다. 우연히 발견하고 해결책을 찾았으니 이제 알게 될 것입니다.
물론이 정보는 어디에서도 사용할 수 없기 때문에 (위 참조 :)))). 저도 서비스 데스크에 문의 할 때까지이 문제로 고통 스러웠습니다. 거기에서 그들은 차트에있는 개체의 속성 변경이 비동기 적으로 발생한다고 말했습니다. 그리고 귀하의 예로 판단하면 차트 자체의 속성과 관련이 있습니다.
C-4: 물론이 정보는 어디에서도 사용할 수 없기 때문에 (위 참조 :)))). 저도 이 문제로 고민하다가 서비스 센터에 문의했습니다. 거기에서 그들은 차트에있는 개체의 속성 변경이 비동기 적으로 발생한다고 말했습니다. 그리고 귀하의 예로 판단하면 차트 자체의 속성과 관련이 있습니다.
그래픽 객체의 속성을 지정하는 함수는 물론 차트에서 ObjectCreate() 객체를 생성하고 ObjectMove() 객체를 이동하는 작업은 실제로 차트에 명령을 보내는 데 사용됩니다. 이러한 함수가 성공적으로 실행되면 해당 명령은 차트의 일반 이벤트 대기열에 포함됩니다. 그래픽 개체의 속성에 대한 시각적 변경은 주어진 차트의 이벤트 대기열을 처리하는 동안 수행됩니다.
따라서 이러한 함수를 호출한 후 그래픽 객체의 즉각적인 시각적 업데이트를 기대해서는 안 됩니다. 일반적으로 차트의 그래픽 개체 업데이트는 새 시세 도착, 차트 창 크기 변경 등 변경 이벤트에 의해 터미널에서 자동으로 수행됩니다. 그래픽 개체를 강제로 업데이트하려면 차트를 다시 그리려면 ChartRedraw() 명령을 사용하세요.
MT5는 차트 프로퍼티를 비동기식으로 업데이트합니다. 즉, 프로퍼티를 설정했다고 해서 터미널이 즉시 프로퍼티를 가져온다는 의미는 아닙니다. ChartRedraw() 함수는 터미널에서 모든 프로퍼티를 다시 읽도록 하는 데 사용됩니다. 또한 ChartGet... ObjectGet 함수를 사용할 수도 있는데, 이 경우 속성도 다시 읽습니다.
이 정보는 어디서도 본 적이 없습니다. 우연히 발견하고 해결책을 찾았으니 이제 알 수 있겠네요.
그게 뭔가요? 여기 섹션의 시작 부분에 있습니다 차트로 작업하기:
차트 작업을 위한 함수입니다. 차트를 사용한 모든 작업은 전문가 조언자 및 스크립트에서만 적용 가능합니다.
차트의 속성을 설정하는 함수는 실제로 차트를 변경하는 명령을 보내는 데 사용됩니다. 이러한 함수가 성공적으로 실행되면 해당 명령은 차트의 일반 이벤트 대기열에 포함됩니다. 그래프 변경은 주어진 그래프의 이벤트 큐를 처리하는 동안 이루어집니다.
따라서 이러한 함수를 호출한 후 차트의 즉각적인 시각적 업데이트를 기대해서는 안 됩니다. 일반적으로 차트 업데이트는 새 호가 도착, 차트 창 크기 변경 등 변경 이벤트에 의해 터미널에서 자동으로 수행됩니다. 차트 모양을 강제로 업데이트하려면 ChartRedraw() 명령을 사용하여 차트를 다시 그립니다.
이 정보는 어디서도 본 적이 없습니다. 우연히 발견하고 해결책을 찾았으니 이제 알게 될 것입니다.
정확히 어떤 것일까요? 여기 차트를 사용한 작업 섹션의 시작 부분에 있습니다:
없는 게 아니라 못 봤을 뿐입니다(또는 잊어버렸을 뿐입니다). 고마워요.
마우스 이벤트 추적 플래그와 같은 차트 속성을 변경할 때 CHART_CHANGE 이벤트를 생성하는 것은 어떨까요? 그렇게 할 수 있을까요?
물론이 정보는 어디에서도 사용할 수 없기 때문에 (위 참조 :)))). 저도 이 문제로 고민하다가 서비스 센터에 문의했습니다. 거기에서 그들은 차트에있는 개체의 속성 변경이 비동기 적으로 발생한다고 말했습니다. 그리고 귀하의 예로 판단하면 차트 자체의 속성과 관련이 있습니다.
섹션에서 자세히 알아보기 그래픽 개체:
지정된 차트와 관련된 그래픽 개체와 함께 작동하도록 설계된 함수 그룹입니다.
그래픽 객체의 속성을 지정하는 함수는 물론 차트에서 ObjectCreate() 객체를 생성하고 ObjectMove() 객체를 이동하는 작업은 실제로 차트에 명령을 보내는 데 사용됩니다. 이러한 함수가 성공적으로 실행되면 해당 명령은 차트의 일반 이벤트 대기열에 포함됩니다. 그래픽 개체의 속성에 대한 시각적 변경은 주어진 차트의 이벤트 대기열을 처리하는 동안 수행됩니다.
따라서 이러한 함수를 호출한 후 그래픽 객체의 즉각적인 시각적 업데이트를 기대해서는 안 됩니다. 일반적으로 차트의 그래픽 개체 업데이트는 새 시세 도착, 차트 창 크기 변경 등 변경 이벤트에 의해 터미널에서 자동으로 수행됩니다. 그래픽 개체를 강제로 업데이트하려면 차트를 다시 그리려면 ChartRedraw() 명령을 사용하세요.
그래픽 개체 섹션에서 자세히 알아보세요:
명확하고 익숙한 개체이지만 그래프 속성에서 뭔가 다른 것을 기대했습니다.
제 제안을 반복하지 말아야 할까요? 아니면 서비스 데스크에 넣어야 할까요?
새 문서 MQL5 규약 매뉴얼: 표시기 하위 창 컨트롤 - 버튼이 게시되었습니다:
저자: 아나톨리 카즈하르스크
아주 좋은 튜토리얼입니다. 이 부분에 대해 좀 더 게시해 주셨으면 좋겠어요, 감사합니다!
아나톨리,
MQL5 커뮤니티에 기여해 주셔서 감사하다는 말씀을 드리고 싶습니다. 귀하의 예제 덕분에 제 코드 개발이 몇 달 앞당겨졌습니다. 다시 한 번 감사드립니다.
저는 이 "인디케이터"를 매수 개시, 매도 개시, 모두 닫기 및 추적손절매 설정 버튼에 사용해야 합니다. 제 문제는 다음과 같이 할 수 있도록 EA와 상호 작용해야 한다는 것입니다.
1) EA 내에서 이러한 기능에 액세스하고
2) pSAR, CCI, MACD 또는 기타 지표가 트리거될 때 "오픈 롱" 버튼을 깜박임으로써 EA 추천을 받으려고 합니다.
그래서 질문이 있습니다: EA가 지표 버튼과 통신하고 지표 버튼이 EA와 인터페이스하도록하려면 어떻게해야합니까?
미리 감사드립니다,
CipherPips
감사합니다!
이 버전이 더 마음에 드시는 것 같습니다: 그래픽 인터페이스 I: 라이브러리 구조 준비하기(1장)
이 시리즈는 계속 이어집니다. 자세한 예제가 많이 있을 것입니다.