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

[삭제]  
Interesting :

1. 이게 왜요? 유해한 증상에서 제거하고 결정적으로해야합니다.

2. 변수, 배열 및 기타 항목은 언어의 키워드와 일치하게 이름을 지정해서는 안 됩니다(그러나 "Symbol" 배열은 매우 인상적이므로 코드에서 이 배열 또는 다른 것을 구문 분석할 것입니다).

1. 음, 먼저 증상이 긍정적 또는 부정적 징후에 속하는지 여부를 진정으로 확립해야 합니다. 내 경험상, 이렇게 하면 안 되는 함수에서 전역 변수 값 을 변경하려고 하는 경우(젠장 복사-붙여넣기)가 있었습니다. 이 오류를 며칠 동안 찾고 있었습니다. 그 이후로는 원칙적으로 전역 변수 없이는 할 수 없는 경우에 전역 변수를 사용하고 있습니다.

2. 동의합니다. 하지만 같은 기능 내에서 사용하면 문제가 되지 않습니다. 이름이 비슷한 전역 변수는 실제로 미래의 혼란을 보장합니다.

Документация по MQL5: Глобальные переменные терминала / GlobalVariableGet
Документация по MQL5: Глобальные переменные терминала / GlobalVariableGet
  • www.mql5.com
Глобальные переменные терминала / GlobalVariableGet - Документация по MQL5
[삭제]  

그러나 나는 내 질문을 다시 할 것입니다.

OnTick 내부에서 OnInit의 동작을 정의하는 방법이 가능한가요?
예를 들어 OnTick 내부에서 EA 초기화 수를 저장하는 정적 변수를 선언합니다(MQL5에 그러한 속성이나 유사한 속성이 있는 경우)?

 
voix_kas :

나는 아마 편집증입니다. 저는 공개(전역) 변수를 좋아하지 않습니다. 나는 그것을 움직임이라고 생각한다.

전역 변수 는 적어도 멀리서 볼 수 있습니다. 그러나 함수 내부의 심각한 누적 변수를 정적 변수에 숨기는 것은 조심스럽게 자신을 위해 갈퀴를 퍼뜨리는 방법입니다. 이렇게 함수 안에 숨겨진 누적 정적 배열을 개인적으로 본 것은 이번이 처음입니다. 이것은 불 같은 크기의 갈퀴입니다.

클래스 사용 - 글로벌 수준을 깨끗하게 유지하고 모든 내장을 숨기고 목발을 제거합니다.

Документация по MQL5: Основы языка / Переменные / Глобальные переменные
Документация по MQL5: Основы языка / Переменные / Глобальные переменные
  • www.mql5.com
Основы языка / Переменные / Глобальные переменные - Документация по MQL5
[삭제]  
voix_kas :

그러나 나는 내 질문을 다시 할 것입니다.

OnTick 내부에서 OnInit의 동작을 정의하는 방법이 가능한가요?
예를 들어 OnTick 내부에서 EA 초기화 수를 저장하는 정적 변수를 선언합니다(MQL5에 그러한 속성이나 유사한 속성이 있는 경우)?

OnInit 실행 횟수는 셀 수 있을 뿐만 아니라 정확히 초기화가 발생한 이유도 확인할 수 있습니다(구현 문제는 또 다른 문제입니다).

예를 들어 _UninitReason에 대해 알고 있습니까?

[삭제]  
OnInit에서 계산할 수도 있습니다. 또 다른 질문은 이 데이터가 다른 이벤트에서 필요하다는 것입니다( 전역 변수 를 사용하지 않음). 무엇을 말하든 구현의 문제입니다. OnDenit와 같은 노래.
Документация по MQL5: Основы языка / Переменные / Глобальные переменные
Документация по MQL5: Основы языка / Переменные / Глобальные переменные
  • www.mql5.com
Основы языка / Переменные / Глобальные переменные - Документация по MQL5
[삭제]  
나는 수업을 쓴 적이 없다. 누구든지 도울 수 있다면 감사하겠습니다.
WorkSymbols 클래스를 작성해야 합니다.
행동 양식:
문자열 GetSymbol[];
bool UpdateSymbols(inWorkSymbols);
부울 UpdateSymbolsStatus();
정수 GetSymbolCount();

무례한 부탁이라면 죄송합니다... 저도 스스로 알아내도록 노력하겠습니다.
 
Renat :

네, 심볼 변경 조건과 기간을 헛되이 결합한 것 같습니다.

나는 또한 그것들을 2가지 조건으로 나누는 것에 찬성한다. 이미 서비스 데스크에 티켓을 넣었습니다.

고맙습니다!
[삭제]  

그가 망친 것 같습니다. 비판은 환영합니다.

 input string inWorkSymbols  = "USDCHF; GBPUSD; EURUSD; USDJPY; USDCAD; AUDUSD; EURGBP; EURAUD; EURCHF; EURJPY; GBPJPY; GBPCHF" ; // Рабочие инструменты

class CSymbolList {
   private :
     string Symbols[];

   public :
     void    CSymbolList() { SetSymbols( "" ); }
     void   ~CSymbolList() { ArrayFree (Symbols); }
     int     GetSymbolCount() { return ArraySize (Symbols); }
     void    SetSymbols( string );
     string GetSymbolName( int );
};

void CSymbolList::SetSymbols( string Source) {
   ArrayFree (Symbols);
   for ( int count = 1 , i = 0 ; i < SymbolsTotal ( false ); i++)
     if ( StringFind (Source, SymbolName (i, false )) != - 1 ) {
       if ( ArrayResize (Symbols, count) != count) {
         ArrayFree (Symbols);
         return ;
      }
      Symbols[count- 1 ] = SymbolName (i, false );
      count++;
    }
}

string CSymbolList::GetSymbolName( int Item) {
   if (Item < 0 || ! ArraySize (Symbols) || Item >= ArraySize (Symbols)) return "" ;
   return Symbols[Item];
}

void OnStart () {
  CSymbolList slMain;
  slMain.SetSymbols(inWorkSymbols);
   for ( int i = 0 ; i < slMain.GetSymbolCount(); i++)
     Print (slMain.GetSymbolName(i));
}
[삭제]  

내가 여기서 마음에 들지 않는 유일한 것은 작업 데이터를 포함하는 배열의 "라이브" 크기 변경입니다.
개발자에게 질문합니다 . 이전에 입력한 사용자 데이터를 다음 조건에서 가변 동적 배열 에 저장하는 것이 보장됩니까 ?:

 if ( ArrayResize (Symbols, count) == count)
Документация по MQL5: Основы языка / Типы данных / Объект динамического массива
Документация по MQL5: Основы языка / Типы данных / Объект динамического массива
  • www.mql5.com
Основы языка / Типы данных / Объект динамического массива - Документация по MQL5
 
voix_kas :

내가 여기서 마음에 들지 않는 유일한 것은 작업 데이터를 포함하는 배열의 "라이브" 크기 변경입니다.
개발자에게 질문합니다 . 이전에 입력한 사용자 데이터를 다음 조건에서 가변 동적 배열 에 저장하는 것이 보장됩니까 ?:

보장합니다. 적어도 나는 끊임없이 그것에 의존하고 있으며 문제는 결코 발생하지 않았습니다.