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

 
Дмитрий Касаткин :
어떻게 플랫폼에 로그인할 수 없습니까? 웹사이트에는 이 MetaTrader Server에서 웹 터미널을 지원하지 않는다고 나와 있습니다. 중개인에게 연락하여 서버를 업데이트하십시오. 플랫폼 자체에 연결이 없다고 표시됩니까?
브로커가 웹 터미널 을 지원하지 않습니다. 터미널이 컴퓨터에 설치되어 있고 연결되어 있지 않으면 이전에 닫혀 있던 포트 443을 열어야 합니다.
 
개발자 여러분 , OnDeinit 함수를 처리하는 순서는 무엇입니까 - 개체 및 기타 변수 삭제, 메모리 지우기 등.
 
coderex :
개발자 여러분 , OnDeinit 함수를 처리하는 순서는 무엇입니까 - 개체 및 기타 변수 삭제, 메모리 지우기 등.

OnDeinit는 특정 상황에서 호출되는 MQL4/5 프로그램의 일반 함수입니다. 여기에서는 프로그래밍할 때 그대로 하십시오.

질문을 지정합니다. 정확히 무엇에 관심이 있습니까?

 
Slawa :

OnDeinit는 특정 상황에서 호출되는 MQL4/5 프로그램의 일반 함수입니다. 여기에서는 프로그래밍할 때 그대로 하십시오.

질문을 지정합니다. 정확히 무엇에 관심이 있습니까?

명시적으로 삭제된(할당된 메모리에서 생성된) 개체를 사용하면 모든 것이 명확해집니다. 메모리를 해제하고 자동 메모리에서 생성된 개체를 삭제하는 과정에 관심이 있습니다.

저것들. 예를 들어, 두 개의 객체와 기본 유형의 변수가 있습니다.

 class CFirst {...};
class CSecond {...};

int iVolume = 100 ;
CFirst first_obj;
CSecond *second_obj;

int OnInit ( void ) {
   second_obj = new CSecond();
// текст функции OnInit
}
void OnDeinit ( const int reason) {
   if ( CheckPointer (second_obj == POINTER_DYNAMIC )
       delete second_obj;
}

프로그램이 삭제될 때 메모리를 해제하고 모든 개체를 삭제하는 순서가 궁금합니다.

 
Slawa :

...

어떤 경우에 터미널이 멈출 수 있습니까? - 분명히 터미널이 멈춰야 하는 규칙적인 상황이 있습니다.

내 관찰에 따르면 다음과 같은 경우 항상 중단됩니다(무제한 시간 동안 중단됨).

1. 서버에 접속합니다.

2. P1. 계정 간 전환 시.

3. 터미널 실행 중 .

마지막으로 시작 시 터미널이 중단된 시간입니다. 작업 관리자를 살펴보니 터미널이 메모리를 바이트 단위로 먹고 있었습니다. 몇 분 후에 8GB의 메모리를 모두 먹어치우고 운영 체제가 터미널과 함께 중단되었습니다. 시스템 장치의 "재설정" 버튼을 눌러야 했습니다.

컴퓨터를 다시 시작한 후 터미널을 실행했습니다. 끊김 이야기가 반복되었고 시스템이 터미널과 함께 깨우려는 활발한 시도에 응답을 멈췄습니다.

컴퓨터를 다시 시작한 후 터미널의 모든 구성 파일을 삭제하고 실행했습니다. 끊김 이야기가 반복되었습니다.

컴퓨터를 다시 시작한 후 거래 서버의 모든 기록 파일을 삭제하고 그 후에야 터미널이 정상적으로 작동하는 것으로 확인되고 약 3분 동안 고민 끝에.

터미널은 빌드마다 멈춥니다. Win10x64.

 
Joo Zepper :

어떤 경우에 터미널이 멈출 수 있습니까? - 분명히 터미널이 멈춰야 하는 규칙적인 상황이 있습니다.

내 관찰에 따르면 다음과 같은 경우 항상 중단됩니다(무제한 시간 동안 중단됨).

1. 서버에 접속합니다.

2. P1. 계정 간 전환 시.

3. 터미널 실행 중 .

마지막으로 시작 시 터미널이 중단된 시간입니다. 작업 관리자를 살펴보니 터미널이 메모리를 바이트 단위로 먹고 있었습니다. 몇 분 후에 8GB의 메모리를 모두 먹어치우고 운영 체제가 터미널과 함께 중단되었습니다. 시스템 장치의 "재설정" 버튼을 눌러야 했습니다.

컴퓨터를 다시 시작한 후 터미널을 실행했습니다. 끊김 이야기가 반복되었고 시스템이 터미널과 함께 깨우려는 활발한 시도에 응답을 멈췄습니다.

컴퓨터를 다시 시작한 후 터미널의 모든 구성 파일을 삭제하고 실행했습니다. 끊김 이야기가 반복되었습니다.

컴퓨터를 다시 시작한 후 거래 서버의 모든 기록 파일을 삭제하고 그 후에야 터미널이 정상적으로 작동하는 것으로 확인되고 약 3분 동안 고민 끝에.

터미널은 빌드마다 멈춥니다. Win10x64.

같은 윈도우, 터미널은 admin에서만 실행되고, 메타에디터 유형의 모든 파일도 admin에서 실행되므로 문제가 없습니다.
 

코드를 부분으로 나누고 파일을 올바르게 포함하는 방법, 처음 접했을 때 숙련된 전문가에게 질문합니다.

다음은 예입니다.

 class WL : public C_Object
  {
private :
   MqlTick            tick;
   struct STRUCT_SYMBOL // Структура символа
     {    
       bool               TRADING_IS_ALLOWED;       // Обновлять
       double             INDIKATOR_VOLUME;         // Обновлять
     };
   struct STRUCT_WATCH_LIST // Структура сохраненных листов
     {
       string             NAME_LIST;
     };
   STRUCT_WATCH_LIST WatchList[];
   STRUCT_SYMBOL     SymbolMass[];
}

그런 다음 클래스는 다른 클래스에서 상속되고 구조를 포함합니다. 예제에서는 구조를 축소한 다음 구조의 배열로 작업하는 메서드가 있습니다.

이 방법들 중 40~50개 정도는 아직 모릅니다.

각 방법을 포함된 파일에 넣거나 어떻게든 코드 구조를 구성하여 EA 자체에 검색하기 어려운 10,000~20,000줄의 코드가 포함되지 않도록 하고 싶습니다.

현재 내가 보는 유일한 것은 참조로 구조 배열을 보내는 것입니다.

유형

func(STRUCT_SYMBOL & str)

이것이 최선의 선택이 아닌가 싶습니다.

무엇을 할 수 있습니까?

 
coderex :

명시적으로 삭제된(할당된 메모리에서 생성된) 개체를 사용하면 모든 것이 명확해집니다. 메모리를 해제하고 자동 메모리에서 생성된 개체를 삭제하는 과정에 관심이 있습니다.

저것들. 예를 들어, 두 개의 객체와 기본 유형의 변수가 있습니다.

프로그램이 삭제될 때 메모리를 해제하고 모든 개체를 삭제하는 순서가 궁금합니다.

OnDeinit는 이와 관련이 없습니다.

문서를 읽었습니까?

 
Vladimir Pastushak :
같은 윈도우, 터미널은 admin에서만 실행되고, 메타에디터 유형의 모든 파일도 admin에서 실행되므로 문제가 없습니다.
관리자로부터? 그리고 터미널에 십자가 모자, 황금 사과, 지팡이를 주고 그를 가장 친절한 차르라고 불러도 될까요?
 
Vladimir Pastushak :

코드를 부분으로 나누고 파일을 올바르게 포함하는 방법, 처음 접했을 때 숙련된 전문가에게 질문합니다.

다음은 예입니다.

즉, 클래스는 다른 클래스에서 상속되고 구조를 포함합니다. 예에서 구조를 축소한 다음 구조의 배열로 작업하는 메서드가 있습니다.

이 방법들 중 40~50개 정도는 아직 모릅니다.

각 방법을 포함된 파일에 넣거나 어떻게든 코드 구조를 구성하여 EA 자체에 검색하기 어려운 10,000~20,000줄의 코드가 포함되지 않도록 하고 싶습니다.

현재 내가 보는 유일한 것은 참조로 구조 배열을 보내는 것입니다.

유형

이것이 최선의 선택이 아닌가 싶습니다.

무엇을 할 수 있습니까?

클래스의 용량이 크면 클래스별로 별도의 목록을 작성하는 것이 좋으며, 이 클래스의 객체가 사용되는 코드에서 #include를 통해 클래스 목록을 연결합니다. 구조 및 함수 라이브러리에도 동일하게 적용됩니다. 클래스와 구조가 충분하지 않은 경우 하나의 목록에 포함될 수 있습니다. 공통 정의 및 매크로 목록을 작성할 수도 있습니다.

그리고 하나의 프로그램과 관련된 목록의 전체 제품군을 갖게 되는 것을 두려워하지 마십시오. 이것은 일반적인 일입니다. 저는 제 거래 시스템에 15-20개의 목록과 인터페이스에 .bmp 및 .gif가 있는 디렉토리를 사용합니다. 나는 모든 목록을 별도의 디렉토리에 배포합니다. 이렇게 하면 오류를 포착하고 업그레이드할 때 탐색이 더 쉬워집니다.