Yuriy Asaulenko : 기이한. 도움말 어딘가에서 표시기가 이미 실행 중이면 복사본이 생성되지 않는다고 읽었습니다. 엠비. 이해하지 못한 것.
아마 뭔가를 이해하지 못했을 것입니다. 이 모든 가설을 확인하고 두 개의 버퍼로 표시기를 만들었습니다. 하나는 OnCalculate()에서 채워지고 다른 하나는 OnTimer(), 스크립트, 어드바이저에서... 어드바이저에서 iCustom()을 통해 OnCalculate( )가 인쇄되고 OnTimer()에서 빈 값이 표시됩니다. 동시에 지표는 내가 스크립트를 던지거나 고문을 놓는 차트에 멈춥니다.
결론: iCustom()을 통해 표시기를 호출하면 표시기의 OnTimer() 이벤트가 실행되지 않습니다...
아마도 이러한 이유로 문서에 다음과 같이 나와 있습니다.
OnTimer() 함수는 Expert Advisors 및 표시기에 대해서만 시스템 타이머에 의해 생성되는Timer 이벤트가 발생할 때 호출되며 스크립트에서는 사용할 수 없습니다.
기이한. 도움말 어딘가에서 표시기가 이미 실행 중이면 복사본이 생성되지 않는다고 읽었습니다. 엠비. 이해하지 못한 것.
아마 뭔가를 이해하지 못했을 것입니다. 이 모든 가설을 확인하고 두 개의 버퍼로 표시기를 만들었습니다. 하나는 OnCalculate()에서 채워지고 다른 하나는 OnTimer(), 스크립트, 어드바이저에서... 어드바이저에서 iCustom()을 통해 OnCalculate( )가 인쇄되고 OnTimer()에서 빈 값이 표시됩니다. 동시에 지표는 내가 스크립트를 던지거나 고문을 놓는 차트에 멈춥니다.
결론: iCustom()을 통해 표시기를 호출하면 표시기의 OnTimer() 이벤트가 실행되지 않습니다...
아마도 이러한 이유로 문서에 다음과 같이 나와 있습니다.
OnTimer() 함수는 Expert Advisors 및 표시기에 대해서만 시스템 타이머에 의해 생성되는 Timer 이벤트가 발생할 때 호출되며 스크립트에서는 사용할 수 없습니다.
지표는 어떤 식 으로든 언급되지 않습니다 ...
분명히 mql에는 유용한 문서화되지 않은 기능과 문서화되지 않은 문제가 있습니다...
차트에 지표가 있습니다. 동시에 Timer, ChartEvent 및 Calculate 이벤트 에서 다시 그려집니다.
스크립트는 CTRL+D로 볼 수 있는 표시기 버퍼 ( INDICATOR_DATA )의 현재 표시기를 읽어야 합니다. MT4에서 가능한가요?
읽기 및 쓰기 및 DLL nafik이 필요하지 않습니다.
글쎄요, 그 예가 어디에 있습니까?
불행히도, 이 경우
도움이되지 않습니다.
지표는 어디에 있습니까?
도움이 되지 않는 이유는 무엇입니까?
실험적:
기이한. 도움말 어딘가에서 표시기가 이미 실행 중이면 복사본이 생성되지 않는다고 읽었습니다. 엠비. 이해하지 못한 것.
최근에 표시기를 게시 했는데 텍스트 문자열 만 표시됩니다. 그리고 iCustom을 통해 호출할 때 차트의 표시선과 iCustom이 서로 간섭하여 프로그래밍 방식으로 하나의 결론만 도출해야 했습니다.
코드 사본이 메모리에 생성되지 않을 수 있지만 재계산에는 자체 매개변수가 포함됩니다.
https://www.mql5.com/ru/code/14737/83151#!tab=code
실험적:
최근에 표시기를 게시 했는데 텍스트 문자열 만 표시됩니다. 그리고 iCustom을 통해 호출할 때 차트의 표시선과 iCustom이 서로 간섭하여 프로그래밍 방식으로 하나의 결론만 도출해야 했습니다.
코드 사본이 메모리에 생성되지 않을 수 있지만 재계산에는 자체 매개변수가 있습니다.
https://www.mql5.com/ru/code/14737/83151#!tab=code
코드의 복사본은 동적 로딩이기 때문에 생성될 수 밖에 없습니다.
주장입니까, 아니면 MQ 개발자입니까? :))
프로그램 코드가 하나의 복사본에 있고 클라이언트를 위해 데이터 인스턴스가 생성되는 DLL과 유추하여 제 생각에는 그렇게 생각합니다.
간단히 말해서 실제 의미는 차트에 칠면조가 있는 경우 iCustom이 차트에서 데이터를 가져오는 것이 아니라 별도로 생성된 인스턴스에서 데이터를 가져오는 것입니다.