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

 
fxsaber :
리소스가 이 크기로 제한되어 있습니까?

이는 전송된 데이터를 압축하는 것이 훨씬 더 편리함을 의미합니다.

 
fxsaber :

이런 의미에서 MT4는 MT5보다 훨씬 현명하게 행동했습니다. 프로그램에서 나갈 수 없었고 LastError를 분석할 수 있었습니다.

첫째, 복구할 수 없는 치명적인 오류가 발생한 후에도 프로그램을 계속 실행하는 것은 지혜가 아니라 어리석음입니다.

둘째, MetaTrader 4 765x32에서 작업을 수행한 후 PrintError()가 나타나지 않았습니다.

세 번째: strict를 제거하면 발생하지만 GetLastError()가 0을 반환하므로 거기에서 무엇을 분석할지 명확하지 않습니다.

 
fxsaber :
어드바이저의 중지에 대해 사용자에게 어떻게 알립니까?

이런 의미에서 MT4는 MT5보다 훨씬 현명하게 행동했습니다. 프로그램에서 나갈 수 없었고 LastError를 분석할 수 있었습니다.

그리고 배열에 접근할 때 접근 인덱스를 확인하는 것이 논리적이지 않습니까?

 
A100 :

첫째, 복구할 수 없는 치명적인 오류가 발생한 후에도 프로그램을 계속 실행하는 것은 지혜가 아니라 어리석음입니다.

둘째, MetaTrader 4 765x32에서 작업을 수행한 후 PrintError()가 나타나지 않았습니다.

세 번째: strict를 제거하면 발생하지만 GetLastError()가 0을 반환하므로 거기에서 무엇을 분석할지 명확하지 않습니다.

MT4가 MT5보다 낫다는 것을 보여줄 작업은 없었습니다. 현실적인 문제를 풀어야 했습니다.

거래, 자동 거래 시스템 및 거래 전략 테스트에 관한 포럼

라이브러리: HistoryTicks

fxsaber , 2018.12.10 13:55

어레이가 범위를 벗어 났기 때문에 EA가 중지되었다는 메시지를 받습니다(EA 작성자의 잘못이 아님). 예를 들어, 메모리 부족이나 기타 오류로 인해. 저것들. 어드바이저의 비정상 정지가 발생했음을 즉시 알 수 있으며 몇 시간 후에 실수로 눈치채지 못할 것입니다.


어드바이저가 멈췄을 때 불쾌한 일이지만 어떤 식 으로든보고되지 않습니다.

조지 머츠 :

그리고 배열에 접근할 때 접근 인덱스를 확인하는 것이 논리적이지 않습니까?

논리적이지 않습니다.

 
Nikolai Semko :

이는 전송된 데이터를 압축하는 것이 훨씬 더 편리함을 의미합니다.

확인해보니 60Mb가 리소스에 조용히(MT4/5) 쓰여집니다. 따라서 한도가 있으면 더 높아집니다.

 

사소한 언급이지만 여전히.

저장소로 보낼 때 첫 번째 패널 "수정"이 제대로 작동하고 두 번째 확인은 먼저 확인 키가 눌릴 때까지 기다리지 않고 즉시 나가며 두 번째로 보낸 모든 파일은 에 표시되지 않습니다. 확인했지만 파일이 정상적으로 전송됩니다.

나 뿐인가요?

전송 후 모든 것이 잘 되었다는 확인과 함께 전송된 파일 목록이 표시될 때 맞는 것 같습니다.

 
fxsaber :

논리적이지 않습니다.

그리고 왜 ?

프로그램 논리상 배열을 넘어선 인덱스가 나오지 않는 곳에서 인덱스를 확인할 필요는 없는 것 같습니다. 그리고 이 경우에도 ASSERT를 넣어야 합니다.

인덱스가 외부 매개변수와 관련된 이전 작업(따옴표 포함, 사용자 작업 포함)에 의존하는 경우 액세스 인덱스 확인은 필수여야 합니다.

당신은 그것이 아니라고 생각합니까?

 
Georgiy Merts :

그리고 왜 ?

프로그램 논리상 배열을 넘어선 인덱스가 나오지 않는 곳에서 인덱스를 확인할 필요는 없는 것 같습니다.

동의한다.

그리고 이 경우에도 ASSERT를 넣어야 합니다.

동의하지 않기 때문에 코드의 가독성이 크게 떨어집니다.

인덱스가 외부 매개변수와 관련된 이전 작업(따옴표 포함, 사용자 작업 포함)에 의존하는 경우 액세스 인덱스 확인은 필수여야 합니다.

여기서 나는 외부 매개변수가 의미하는 바를 이해하지 못했습니다. ArrayResize 또는 ArrayCopy가 정상적으로 완료되었는지 확인할 때마다 진부한 메모리가 끝나지 않았으며 ASSERT를 통해 코드를 부풀렸지만 여전히 역겹습니다. 확인하지 않으면 고문이 눈에 띄지 않게 중지됩니다. 지금까지 ArrayResize 및 ArrayCopy를 대체하는 단 하나의 솔루션을 찾았습니다.

 
Slava :

누가 간섭합니까?

ChartSaveTemplate(chart_id,"\\Files\\MyPreferredTemplates\\cewl.tpl");

이 함수는 폴더를 생성 하지 않고, 폴더가 이미 존재하는 경우에만 템플릿을 작성합니다.... 폴더가 존재하지 않으면 오류 4112

즉, 먼저 폴더를 준비해야 합니다...

흥미롭게도 FileOpen 함수를 사용하여 템플릿 폴더에 디렉터리를 만들 수 없으며 ChartSaveTemplate 함수는 디렉터리를 만들지 않습니다...

즉, 하위 폴더의 폴더에 템플릿을 저장하려면 손으로 폴더를 만드십시오 ....

 

메모리 부족

GlobalVariables를 반복 할 때

발생할 수있다?