나는 캔버스가 테스터 모드에서 어떻게 작동하는지에 대한 중요한 점을 관심 있는 프로그래머에게 명확히 하고 싶습니다. 이 커뮤니티에서 잘 알려진 프로그래머가 다음과 같은 질문으로 저에게 접근했습니다.
- 테스터 모드에서 객체에 생성된 패널이 캔버스에 구현된 패널보다 10배 더 빠르게 다시 그려지는 반면 일반 모드에서는 모든 것이 캔버스의 속도로 순서대로 그려지는 이유는 무엇입니까?
이해하면서 이 문제의 원인과 해결 방법을 이해했습니다.
사실 개체의 경우 전체 화면의 다시 그리기와 함께 다시 그리기가 발생하며 테스터의 화면은 초당 30프레임 이하로 다시 그려집니다.
객체는 궁극적으로 동일한 캔버스(내부)이지만 객체의 속성을 변경하면 객체 캔버스가 형성되지 않고(재계산되지 않음) 테스터에서 발생하는 화면 새로 고침(ChartRedraw) 순간에만 형성됩니다. (그리고 일반 모드에서도) 우리의 눈이 변화를 구별할 수 있는 것보다 더 자주, 즉, 초당 ~32프레임 이하.
패널이 틱마다 변경된다고 가정해 보겠습니다. 그런 다음 기본 테스터에서 캔버스는 틱마다 다시 계산되지만 테스터에서 다시 그리기는 여전히 ~30밀리초(초당 ~30프레임)를 넘지 않습니다.
즉, 캔버스는 실제로 화면에 표시되는 것보다 훨씬 더 자주 다시 계산되므로 리소스가 불균형적으로 과도하게 지출됩니다.
이 문제에 대한 해결책은 컴퓨터 시간의 15-30밀리초마다 한 번 이상 캔버스의 재계산 및 다시 그리기를 제어하는 것입니다. 그러면 빈 재계산의 불필요한 주기가 없습니다.
예, 역사 읽기가 있습니다.
거래, 자동 거래 시스템 및 거래 전략 테스트에 관한 포럼
라이브러리: Easy Canvas
니콜라이 셈코 , 2020.02.17 05:15
나는 캔버스가 테스터 모드에서 어떻게 작동하는지에 대한 중요한 점을 관심 있는 프로그래머에게 명확히 하고 싶습니다.
이 커뮤니티에서 잘 알려진 프로그래머가 다음과 같은 질문으로 저에게 접근했습니다.
- 테스터 모드에서 객체에 생성된 패널이 캔버스에 구현된 패널보다 10배 더 빠르게 다시 그려지는 반면 일반 모드에서는 모든 것이 캔버스의 속도로 순서대로 그려지는 이유는 무엇입니까?
이해하면서 이 문제의 원인과 해결 방법을 이해했습니다.
사실 개체의 경우 전체 화면의 다시 그리기와 함께 다시 그리기가 발생하며 테스터의 화면은 초당 30프레임 이하로 다시 그려집니다.
객체는 궁극적으로 동일한 캔버스(내부)이지만 객체의 속성을 변경하면 객체 캔버스가 형성되지 않고(재계산되지 않음) 테스터에서 발생하는 화면 새로 고침(ChartRedraw) 순간에만 형성됩니다. (그리고 일반 모드에서도) 우리의 눈이 변화를 구별할 수 있는 것보다 더 자주, 즉, 초당 ~32프레임 이하.
패널이 틱마다 변경된다고 가정해 보겠습니다. 그런 다음 기본 테스터에서 캔버스는 틱마다 다시 계산되지만 테스터에서 다시 그리기는 여전히 ~30밀리초(초당 ~30프레임)를 넘지 않습니다.
즉, 캔버스는 실제로 화면에 표시되는 것보다 훨씬 더 자주 다시 계산되므로 리소스가 불균형적으로 과도하게 지출됩니다.
이 문제에 대한 해결책은 컴퓨터 시간의 15-30밀리초마다 한 번 이상 캔버스의 재계산 및 다시 그리기를 제어하는 것입니다. 그러면 빈 재계산의 불필요한 주기가 없습니다.
예를 들면 다음과 같습니다.
예를 들어, "EURUSD.txt"(큰 문자) 파일을 생성해야 하고 디스크에 이미 "eurusd.txt"(작은 문자)가 있는 경우 파일 이름은 이전과 동일합니다.
또한 EURUSD TicksLongOpt.set을 저장하면 eurusd tickslongopt.set이 저장됩니다. 나중에 이름을 바꿔야 합니다. 그리고 그런 짜증나는 작은 것들이 많이 있습니다.
또한 EURUSD TicksLongOpt.set을 저장하면 eurusd tickslongopt.set이 저장됩니다. 나중에 이름을 바꿔야 합니다. 그리고 그런 짜증나는 작은 것들이 많이 있습니다.
먼저 삭제하고 생성하면 모든 것이 잘 될 것이라고 생각합니다.
먼저 삭제하고 생성하면 모든 것이 잘 될 것이라고 생각합니다.
아니요, 터미널 대화 상자에서 저장할 때만 새 파일을 만드는 것에 대해 이야기하고 있습니다. 모든 사람이 그것을 가지고 있지 않다면 그것은 다른 것에 달려 있습니다. 참고로 저는 Win7을 가지고 있습니다.
아니요, 터미널 대화 상자에서 저장할 때만 새 파일을 만드는 것에 대해 이야기하고 있습니다. 모든 사람이 가지고 있지 않다면 다른 것에 달려 있습니다. 참고로 저는 Win7을 가지고 있습니다.
FileOpen 및 FileSave 기능을 의미합니다.
FileOpen 및 FileSave 기능을 의미합니다.
예, 이제야 그것이 적절하지 않다는 것을 깨달았습니다. 주제는 언어에 관한 것입니다 ...
구조 배열의 편리한 정렬
애플리케이션
결과
작동하지 않습니다. 업데이트할 수 있습니까? 쓰기 템플릿 선언은 로컬 클래스 TestarrSort.mq5 에서 허용되지 않습니다. 81 삼
작동하지 않습니다. 업데이트할 수 있습니까? 쓰기 템플릿 선언은 로컬 클래스 TestarrSort.mq5 에서 허용되지 않습니다. 81 삼
불행히도 언어의 가능성 은 차단되었습니다. 이 코드는 작동하지 않습니다.
그러나 대안을 시도할 수 있습니다.
ZY 여기는 또 다른 사용 예입니다.