오류, 버그, 질문 - 페이지 2971

 

이것이 정적 변수의 올바른 동작입니까?

기간을 전환하거나 매개변수를 변경할 때 해당 값은 변경되지 않습니다.

 int OnInit ()
  {
   static int my_int= 4444 ;
   Print (my_int);
   my_int= 9999 ;
   return ( INIT_SUCCEEDED );
  }

EA를 실행하고 기간을 전환한 후의 결과:

 2021.02 . 24 16 : 23 : 27.999 Test1 (EURUSD,M1)       4444
2021.02 . 24 16 : 23 : 29.913 Test1 (EURUSD,M5)       9999
정적 변수

이것은 도움말에서 가져온 것입니다.

정적 변수는 프로그램이 실행되는 순간부터 존재하며 특화된 OnInit() 함수를 호출하기 전에 한 번 초기화됩니다.

따라서 OnInit()에 대한 각 호출 전에 한 번 또는 시작하기 전에 한 번, 재초기화는 두 번째 시작과 비슷합니다.

테스터에서도 발생합니까?

전역 변수도 이런 식으로 동작합니다.

 

기간을 전환할 때 Expert Advisor가 다시 시작되지 않고 계속 작동합니다.

https://www.mql5.com/ru/docs/runtime/running

При смене символа или таймфрейма графика, к которому эксперт прикреплен, выгрузка и загрузка эксперта не производится . При этом последовательно вызываются обработчики OnDeinit() на старом символе/таймфрейме и OnInit() на новом символе/таймфрейме (если они есть), значения глобальных переменных и статических переменных не сбрасываются. Все события, поступившие для эксперта до завершения инициализации (функции OnInit() ), пропускаются.


Документация по MQL5: Программы MQL5 / Выполнение программ
Документация по MQL5: Программы MQL5 / Выполнение программ
  • www.mql5.com
Выполнение программ - Программы MQL5 - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Ilyas :

기간을 전환할 때 Expert Advisor가 다시 시작되지 않고 계속 작동합니다.

https://www.mql5.com/ru/docs/runtime/running

이전에는 MetaTrader에 없었던 기능 하나를 발견했습니다. 차트에서 Expert Advisor를 삭제하고(컨텍스트 메뉴 명령을 사용하여) 차트를 닫습니다. 이전에는 Expert Advisor를 삭제한 후 차트가 닫히지 않았습니다.

 
Mihail Matkovskij :

이전에는 MetaTrader에 없었던 기능 하나를 발견했습니다. 차트에서 Expert Advisor를 삭제하고(컨텍스트 메뉴 명령을 사용하여) 차트를 닫습니다. 이전에는 Expert Advisor를 삭제한 후 차트가 닫히지 않았습니다.

이것은 EA 자체에 프로그래밍할 수 있습니다. 다른 EA에 확인하십시오...

 

win7에서 기록 데이터에서 디버깅할 때 관찰에 추가된 변수는 값을 표시하지 않습니다. 실제 데이터에서 디버깅할 때 모든 것이 작동합니다. 메타에디터 설정에서 디버깅에 사용되는 매개변수   표시된 .

변수를 추가할 때 창에 바로 표시되지 않고 다음에 디버깅을 시작할 때만 표시되지만 해당 값은 이미 <구현되지 않음>입니다. 디버깅 작업을 수행하기 위해 무엇을 구성해야 하는지 알려주세요

 
Vladimir Pastushak :

이것은 EA 자체에 프로그래밍할 수 있습니다. 다른 EA에 확인하십시오...

실제로 나는 표준 Expert Advisor를 차트에 던졌습니다. 문제없이 제거되었습니다. Expert Advisor의 소스에서 ChartClose를 찾으려고 했습니다. 어디에서도 찾지 못했습니다. 처음에는 Expert Advisor가 삭제되면 차트를 닫을 생각이 없었습니다. 그 안에 CAppDialog와 같은 표준 UI 요소를 사용합니다. 아마도 표준 클래스 의 어딘가에 차트의 클로저가 쓰여질 것입니다 ...

 
Mihail Matkovskij :

실제로 나는 표준 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 개체 의 소멸자로 인해 차트가 닫힐 가능성이 큽니다.

 //+------------------------------------------------------------------+
//| Destructor                                                       |
//+------------------------------------------------------------------+
CChart::~CChart( void )
  {
   if (m_chart_id!=- 1 )
      Close();
  }
 //+------------------------------------------------------------------+
//| Chart close                                                      |
//+------------------------------------------------------------------+
void CChart::Close( void )
  {
   if (m_chart_id!=- 1 )
     {
       ChartClose (m_chart_id);
      m_chart_id=- 1 ;
     }
  }

불행히도 이 프로세스는 디버거를 사용하여 추적할 수 없습니다. 그러나 CAppDialog의 소스 코드 와 CChart를 보면 모든 것이 명확해집니다. 나는 이것을 개발자들에게 알린다.

 
Mihail Matkovskij :

설립하다. CAppDialog 클래스에는 CChart m_chart 필드가 있습니다.

CAppDialog 가 삭제되면(내 EA에서는 CDialog 가 사용됨) m_chart 개체 의 소멸자의 작업으로 인해 차트가 닫힐 가능성이 큽니다.

불행히도 이 프로세스는 디버거를 사용하여 추적할 수 없습니다. 그러나 CAppDialog의 소스 코드 와 CChart를 보면 모든 것이 명확해집니다. 나는 이것을 개발자들에게 알린다.

 void CAppDialog::Destroy( const int reason)

포함하여 차트에서 분리합니다.

 

SignalBaseTotal() 함수가 항상 값 1000을 반환하는 이유를 누가 알겠습니까?

신호 서비스 mql5.com에는 천 개 이상의 방송 신호가 있지만 터미널에서 정확히 천 개를 사용할 수 있습니다. 왜요?

그리고 이제 수천 개의 신호 세트가 있고 한 시간에 다른 신호 세트가 있을 수 있습니까?
Документация по MQL5: Управление сигналами / SignalBaseTotal
Документация по MQL5: Управление сигналами / SignalBaseTotal
  • www.mql5.com
SignalBaseTotal - Управление сигналами - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Alain Verleyen :

파일에서 저장/로드할 때 새 데이터를 추가하지 않는 파생 구조의 버그입니다.

@Ilyas 고칠까요?