MQL4 및 MQL5에 대한 초보자 질문, 알고리즘 및 코드에 대한 도움말 및 토론 - 페이지 791

 
ukrop1203 :
아니요, "성공적으로 로드됨" 및 "제거됨"만 있습니다.

예, 봤습니다. 귀하의 코드를 다운로드하려고 했으나 크래시가 발생했습니다.

2019.03.26 19:38:16.053 스택 오버플로

전역적으로설명된 변수 를 OnStart() 섹션으로 전송하려고 시도했지만 도움이 되지 않았습니다. 아마도 코드 어딘가에 많은 양의 데이터가 있을 것입니다. 수행 중인 작업을 파악해야 하며 코드가 최적의 상태가 아닙니다. 작성되었습니다. 나는 즉시 이렇게 도울 수 없습니다.


 

요컨대, 나는 이것을 로그에서 놓쳤습니다. 내 스크립트에서는 큰 이중 배열이 사용되었습니다(각각 864000의 배열 3개). 나는 그것을 10 배 줄였습니다. 모든 것이 쟁기질하고 낮은 수준을 이해하지 못합니다. 그런 일이 작동하려면 어떤 종류의 철을 펌핑해야하는지 알려주십시오. RAM을 추가하십시오. 물론, 나는 프로그램을 구입하는 전문가가되지 않을 것이며, 나는 그것을 다시 쓸 것입니다.


 
ukrop1203 :

요컨대, 나는 이것을 로그에서 놓쳤습니다. 내 스크립트에서는 큰 이중 배열이 사용되었습니다(각각 864000의 배열 3개). 나는 그것을 10 배 줄였습니다. 모든 것이 쟁기질하고 낮은 수준을 이해하지 못합니다. 그런 일이 작동하려면 어떤 종류의 철을 펌핑해야하는지 알려주십시오. RAM을 추가하십시오. 물론, 나는 프로그램을 구입하는 전문가가되지 않을 것이며, 나는 그것을 다시 쓸 것입니다.


3 x 8 x 864000 = 20736000바이트

많네요, MT4는 32비트, 정보를 찾고 싶지 않지만 제 생각에는 32비트 프로그램의 경우 할당된 메모리 제한이 2GB입니다.

PC 자체는 관련이 없습니다.

추신: 나는 20736000바이트를 계산했는데, 이는 20MB입니다. 원칙적으로 그다지 많지 않습니다. 아마도 배열을 정적으로 기술했을 것입니다. 배열을 동적 배열 로 교체한 다음 크기를 변경하면 도움이 될 것입니다. 오랫동안 MT에 배포되었지만 스크립트가 스택 오버플로를 충돌시켰습니다. 많은 메모리가 어딘가에 예약되어 있습니다.

 
chem에 등록되도록 new를 통해 배열을 만드는 방법은 무엇입니까? 필드에 배열이 있는 클래스를 만드는 방법만 이해했지만 C++에서 다음과 같이 사용하는 것은 다소 이상할 것입니다. int *array = new int[n]; 여기에서는 작동하지 않습니다.
 
ukrop1203 :
chem에 등록되도록 new를 통해 배열을 만드는 방법은 무엇입니까? 필드에 배열이 있는 클래스를 만드는 방법만 이해했지만 C++에서 다음과 같이 사용하는 것은 다소 이상할 것입니다. int *array = new int[n]; 여기에서는 작동하지 않습니다.
 double x[];
ArrayResize (x, 1000 );

https://docs.mql4.com/en/array/arrayresize

ArrayResize - Операции с массивами - Справочник MQL4
ArrayResize - Операции с массивами - Справочник MQL4
  • docs.mql4.com
При успешном выполнении функция возвращает количество всех элементов, содержащихся в массиве после изменения размера; в противном случае возвращает -1 и массив не меняет размеры. Функция может быть применена только к динамическим массивам. При этом необходимо иметь ввиду, что нельзя изменять размер для динамических массивов, назначенных в...
 
Print 에서 ASK 가격을 소수점 이하 네 자리 대신 다섯 자리로 표시하는 방법을 알려주시겠습니까?
 
nkss2020 :
Print에서 ASK 가격을 소수점 이하 네 자리 대신 다섯 자리로 표시하는 방법을 알려주시겠습니까?
 Print (" Ask : ", DoubleToString (Ask, 5 ));
 
날짜가 있습니다(예: 03/26/2019, 3일을 계산하는 방법). 그래서 03/23/2019가 Comment ???
 
ponochka :
날짜가 있습니다(예: 03/26/2019, 3일을 계산하는 방법). 그래서 03/23/2019가 Comment ???
날짜-3*PeriodSeconds( PERIOD_D1 );
 
Alexey Viktorov :

당신은 하루를했다

추신. 그리고 그는 떠났다...