최적화 중 일회성 어레이 계산

 

전체 최적화 동안 변경되지 않는 배열이 있습니다. 한 번 계산하고 다시 계산하지 않고 각 패스의 전체 최적화 중에만 참조할 수 있습니까?

 
음, OnInint()에서 계산하십시오.
 
Alexey Viktorov :
음, OnInint()에서 계산하십시오.

MQL4에서는 init 파일에서 데이터를 읽었는데 시간이 많이 걸렸습니다. 새로운 패스 초기화가 포함될 때마다 명확하지 않습니까?

각 패스와 함께 포럼에서 찾은 init가 사용됩니다. 즉, 배열이 다시 계산됩니다.

https://www.mql5.com/ru/forum/104222

 

당연히 아니지.

앗... 제가 자세히 읽지 않아서 질문을 잘못 이해했네요.

 
forexman77 :

MQL4에서는 init 파일에서 데이터를 읽었는데 시간이 많이 걸렸습니다. 새로운 패스 초기화가 포함될 때마다 명확하지 않습니까?

각 패스와 함께 포럼에서 찾은 init가 사용됩니다. 즉, 배열이 다시 계산됩니다.

https://www.mql5.com/ru/forum/104222

초등입니다. 시작할 때마다 배열의 크기를 확인합니다. 배열이 비어 있거나 거기에 있는 계산 플래그가 false이면 재계산을 수행합니다.

 if ( ArraySize (optimize_array) == 0 )
   CalculateArray();
 
Vasiliy Sokolov :

초등입니다. 시작할 때마다 배열의 크기를 확인합니다. 배열이 비어 있거나 거기에 있는 계산 플래그가 false이면 재계산을 수행합니다.

아직 진실을 확인하지 못했다. 하지만 어레이가 첫 번째 패스(계산될 위치)에서 저장되고 다음 패스에서 사용할 수 있는지 묻습니다.

 
forexman77 :

아직 진실을 확인하지 못했다. 하지만 어레이가 첫 번째 패스(계산될 위치)에서 저장되고 다음 패스에서 사용할 수 있는지 묻습니다.

하지 않을 것이다. 다시 계산하거나 파일에 저장하고 읽을 필요가 있습니다.
 
Dmitry Fedoseev :
하지 않을 것이다. 다시 계산하거나 파일에 저장하고 읽을 필요가 있습니다.

그래서 저는 파일에서 한 번 읽을 때 배열로 채우고 모든 패스에서 이 배열을 사용하도록 만드는 방법에 대한 딜레마가 있었습니다.

어레이는 항상 변경되지 않고 매번 계산하는 데 비용이 많이 들기 때문에 최적화 시간을 줄이기 위해 이것이 필요합니다.

 
forexman77 :

그래서 저는 파일에서 한 번 읽을 때 배열로 채우고 모든 패스에서 이 배열을 사용하도록 만드는 방법에 대한 딜레마가 있었습니다.

어레이는 항상 변경되지 않고 매번 계산하는 데 비용이 많이 들기 때문에 최적화 시간을 줄이기 위해 이것이 필요합니다.

MT5에는 배열을 계산하고 파일에 저장하고 어드바이저의 초기화에서 읽는 최적화 시작 이벤트가 있습니다.
 

리소스를 첨부합니다. 방법을 묻지 마십시오. 출처는 쓰지 않았습니다.

인터넷에서 읽을 필요가 있습니다. 그러나 읽기는 디스크가 아니라 메모리에서 수행됩니다. 따라서 실제로 배열은 메모리에 있습니다.

 
Dmitry Fedoseev :
MT5에는 어레이가 계산되고 파일에 저장되고 EA의 초기화에서 읽는 최적화 시작 이벤트가 있습니다.
그리고 각 패스의 인터넷에서 읽을 필요가 있습니까?