При смене символа или таймфрейма графика, к которому эксперт прикреплен, выгрузка и загрузка эксперта не производится. При этом последовательно вызываются обработчики OnDeinit() на старом символе/таймфрейме и OnInit() на новом символе/таймфрейме (если они есть), значения глобальных переменных и статических переменных не сбрасываются. Все события, поступившие для эксперта до завершения инициализации (функции OnInit() ), пропускаются.
실제로 나는 표준 Expert Advisor를 차트에 던졌습니다. 문제없이 제거되었습니다. Expert Advisor의 소스에서 ChartClose를 찾으려고 했습니다. 어디에서도 찾지 못했습니다. 처음에는 Expert Advisor가 삭제되면 차트를 닫을 생각이 없었습니다. 그 안에 CAppDialog와 같은 표준 UI 요소를 사용합니다. 아마도 표준 클래스 의 어딘가에 차트의 클로저가 쓰여질 것입니다 ...
실제로 나는 표준 Expert Advisor를 차트에 던졌습니다. 문제없이 제거되었습니다. Expert Advisor의 소스에서 ChartClose를 찾으려고 했습니다. 어디에서도 찾지 못했습니다. 처음에는 Expert Advisor가 삭제되면 차트를 닫을 생각이 없었습니다. 그 안에 CAppDialog와 같은 표준 UI 요소를 사용합니다. 아마도 표준 클래스 의 어딘가에 차트의 클로저가 쓰여질 것입니다 ...
설립하다. CAppDialog 클래스에는 CChart m_chart 필드가 있습니다.
class CAppDialog : public CDialog
{
...
protected :
CChart m_chart; // object to access chart
CAppDialog 가 삭제되면(그 후속 작업이 내 EA에서 사용됨) m_chart 개체 의 소멸자로 인해 차트가 닫힐 가능성이 큽니다.
이것이 정적 변수의 올바른 동작입니까?
기간을 전환하거나 매개변수를 변경할 때 해당 값은 변경되지 않습니다.
EA를 실행하고 기간을 전환한 후의 결과:
정적 변수이것은 도움말에서 가져온 것입니다.
정적 변수는 프로그램이 실행되는 순간부터 존재하며 특화된 OnInit() 함수를 호출하기 전에 한 번 초기화됩니다.
따라서 OnInit()에 대한 각 호출 전에 한 번 또는 시작하기 전에 한 번, 재초기화는 두 번째 시작과 비슷합니다.
테스터에서도 발생합니까?
전역 변수도 이런 식으로 동작합니다.
기간을 전환할 때 Expert Advisor가 다시 시작되지 않고 계속 작동합니다.
https://www.mql5.com/ru/docs/runtime/running
При смене символа или таймфрейма графика, к которому эксперт прикреплен, выгрузка и загрузка эксперта не производится . При этом последовательно вызываются обработчики OnDeinit() на старом символе/таймфрейме и OnInit() на новом символе/таймфрейме (если они есть), значения глобальных переменных и статических переменных не сбрасываются. Все события, поступившие для эксперта до завершения инициализации (функции OnInit() ), пропускаются.
기간을 전환할 때 Expert Advisor가 다시 시작되지 않고 계속 작동합니다.
https://www.mql5.com/ru/docs/runtime/running
이전에는 MetaTrader에 없었던 기능 하나를 발견했습니다. 차트에서 Expert Advisor를 삭제하고(컨텍스트 메뉴 명령을 사용하여) 차트를 닫습니다. 이전에는 Expert Advisor를 삭제한 후 차트가 닫히지 않았습니다.
이전에는 MetaTrader에 없었던 기능 하나를 발견했습니다. 차트에서 Expert Advisor를 삭제하고(컨텍스트 메뉴 명령을 사용하여) 차트를 닫습니다. 이전에는 Expert Advisor를 삭제한 후 차트가 닫히지 않았습니다.
이것은 EA 자체에 프로그래밍할 수 있습니다. 다른 EA에 확인하십시오...
win7에서 기록 데이터에서 디버깅할 때 관찰에 추가된 변수는 값을 표시하지 않습니다. 실제 데이터에서 디버깅할 때 모든 것이 작동합니다. 메타에디터 설정에서 디버깅에 사용되는 매개변수 표시된 .
변수를 추가할 때 창에 바로 표시되지 않고 다음에 디버깅을 시작할 때만 표시되지만 해당 값은 이미 <구현되지 않음>입니다. 디버깅 작업을 수행하기 위해 무엇을 구성해야 하는지 알려주세요
이것은 EA 자체에 프로그래밍할 수 있습니다. 다른 EA에 확인하십시오...
실제로 나는 표준 Expert Advisor를 차트에 던졌습니다. 문제없이 제거되었습니다. Expert Advisor의 소스에서 ChartClose를 찾으려고 했습니다. 어디에서도 찾지 못했습니다. 처음에는 Expert Advisor가 삭제되면 차트를 닫을 생각이 없었습니다. 그 안에 CAppDialog와 같은 표준 UI 요소를 사용합니다. 아마도 표준 클래스 의 어딘가에 차트의 클로저가 쓰여질 것입니다 ...
실제로 나는 표준 Expert Advisor를 차트에 던졌습니다. 문제없이 제거되었습니다. Expert Advisor의 소스에서 ChartClose를 찾으려고 했습니다. 어디에서도 찾지 못했습니다. 처음에는 Expert Advisor가 삭제되면 차트를 닫을 생각이 없었습니다. 그 안에 CAppDialog와 같은 표준 UI 요소를 사용합니다. 아마도 표준 클래스 의 어딘가에 차트의 클로저가 쓰여질 것입니다 ...
설립하다. CAppDialog 클래스에는 CChart m_chart 필드가 있습니다.
CAppDialog 가 삭제되면(그 후속 작업이 내 EA에서 사용됨) m_chart 개체 의 소멸자로 인해 차트가 닫힐 가능성이 큽니다.
불행히도 이 프로세스는 디버거를 사용하여 추적할 수 없습니다. 그러나 CAppDialog의 소스 코드 와 CChart를 보면 모든 것이 명확해집니다. 나는 이것을 개발자들에게 알린다.
설립하다. CAppDialog 클래스에는 CChart m_chart 필드가 있습니다.
CAppDialog 가 삭제되면(내 EA에서는 CDialog 가 사용됨) m_chart 개체 의 소멸자의 작업으로 인해 차트가 닫힐 가능성이 큽니다.
불행히도 이 프로세스는 디버거를 사용하여 추적할 수 없습니다. 그러나 CAppDialog의 소스 코드 와 CChart를 보면 모든 것이 명확해집니다. 나는 이것을 개발자들에게 알린다.
포함하여 차트에서 분리합니다.
SignalBaseTotal() 함수가 항상 값 1000을 반환하는 이유를 누가 알겠습니까?
신호 서비스 mql5.com에는 천 개 이상의 방송 신호가 있지만 터미널에서 정확히 천 개를 사용할 수 있습니다. 왜요?
그리고 이제 수천 개의 신호 세트가 있고 한 시간에 다른 신호 세트가 있을 수 있습니까?파일에서 저장/로드할 때 새 데이터를 추가하지 않는 파생 구조의 버그입니다.