초보자의 질문 MQL5 MT5 MetaTrader 5 - 페이지 731

 
Vitalie Postolache :

10000 x 10000은 2차원 아닌가요?

double arr[ 10000 ][ 10000 ];

등...

Top2n :
글쎄요, 그것은 2차원입니다. 어떻게 든 저는 그것을 그렇게 말하는 것이 아닙니다. 분명히 행렬이 아니라 배열입니다. 행렬이 다차원성을 의미합니까?
동의한다. 그렇게 말하지는 않았지만 더구나 그렇게 이해되지는 않았습니다.

이 코드에서 속도를 늦추는 것은 배열 항목이 아니라 루프 내의 루프입니다.
 
Alexey Viktorov :
동의한다. 그렇게 말하지는 않았지만 더구나 그렇게 이해되지는 않았습니다.

이 코드에서 속도를 늦추는 것은 배열 항목이 아니라 루프 내의 루프입니다.

다른 프로그래밍 환경으로 전환하는 것이 정말 필요한가요? 아니면 모든 유형의 언어에 공통적인 작업이 아닌가요? 가속을 위한 해결 방법은 무엇입니까?

어리석게도 한 사이클에서 원격 사이클의 변수 값을 늘리면

         for ( int q= 0 ; q<ARRAY_SIZE_X*ARRAY_SIZE_Y; q++) // Перебор по периоду, колонка X
                 {
                   int arr++
                   if (arr=ARRAY_SIZE_X) {z++;arr= 0 ;}

                  arra[q]=sm.d[q].m[nBar-z];                 // M(I) SMA              
                 }
         //--- запишем данные массива в конец файла FileTell IsFileLineEnded
               FileSeek (handle, 0 , SEEK_END );
               FileWriteArray (handle,arra);


확인할 수는 있지만 컴퓨터를 괴롭히고 싶지 않습니다. 속도가 나지 않으면 다시 하드 추가 전압으로)))

 
Top2n :

다른 프로그래밍 환경으로 전환하는 것이 정말 필요한가요? 아니면 모든 유형의 언어에 공통적인 작업이 아닌가요? 가속을 위한 해결 방법은 무엇입니까?

어리석게도 한 사이클에서 원격 사이클에서 변수 값을 증가시키면 가속될까요?

확인할 수는 있지만 컴퓨터를 괴롭히고 싶지 않습니다. 속도가 나지 않으면 다시 하드 추가 전압으로)))

그리고 주기 후에 배열을 기록하려면 - 어떤 식으로든? 각 라인에만? 이것은 주기가 주기에 있는 첫 번째 옵션에 대한 저입니다.
 
Vitalie Postolache :
그리고 주기 후에 배열을 기록하려면 - 어떤 식으로든? 각 라인에만? 이것은 주기가 주기에 있는 첫 번째 옵션에 대한 저입니다.
이 크기의 배열은 할당된 RAM에 맞지 않습니다.

물론 이 카운터에 카운터를 추가로 삽입하고 기록할 수 있으며 각 라인에 별도로 기록할 수는 없지만 측정 없이는 눈에 띄지 않을 정도로 프로세스 속도가 빨라지지 않을 것입니다.
 
Alexey Viktorov :
이 크기의 배열은 할당된 RAM에 맞지 않습니다.

물론 이 카운터에 카운터를 추가로 삽입하고 기록할 수 있으며 각 라인에 별도로 기록할 수는 없지만 측정 없이는 눈에 띄지 않을 정도로 프로세스 속도가 빨라지지 않을 것입니다.

문서에 나와 있고 컴파일러도 다음과 같이 알려줍니다. " AS_SERIES 플래그 는 다차원 배열에 대해 설정할 수 없습니다. "

질문: mql5에서 배열을 정렬하는 방법

void Func()
{
double m[][ 3 ];

if (условия)
  {
   // много кода
         c++;
         ArrayResize (m, c);
         m[c- 1 ][ 0 ]= Lots();
         m[c- 1 ][ 1 ]= Ticket();
         m[c- 1 ][ 2 ]= Profit();
  }
 BySort(m); // передаём в функцию "BySort"
}

void BySort( double &mas[][ 3 ])
{
// Сортируем по размеру лота от большего к меньшему
   ArraySort (mas);
   ArraySetAsSeries (mas, true ); // при такой записи mql5 ругается, в mql4 работает

 ... здесь работа с массивом и основной код 

}
 
Vitaly Muzichenko :

문서에 나와 있고 컴파일러도 다음과 같이 알려줍니다. " AS_SERIES 플래그 는 다차원 배열에 대해 설정할 수 없습니다. "

질문: 배열을 정렬하는 방법:

double m[][ 3 ];

if (условия)
 {
// много кода
         c++;
         ArrayResize (m, c);
         m[c- 1 ][ 0 ]= Lots();
         m[c- 1 ][ 1 ]= Ticket();
         m[c- 1 ][ 2 ]= Profit();
 }

void BySort( double &mas [][ 3 ] )// выделенное лишнее
 {
// Сортируем по размеру от большего к меньшему
   ArraySort (mas, WHOLE_ARRAY , 0 , MODE_DESCEND ); // вот это не работает в mql5

   ArraySort (mas);
   ArraySetAsSeries (mas, true );
// а при такой записи ругается // это тоже лишнее
 }
AS_SERIES와 정렬은 완전히 다른 개념입니다.

1 - 내용을 변경하지 않고 배열 셀의 인덱싱 방향을 변경하고, 2 - 인덱싱을 변경하지 않고 셀의 내용을 변경하여 오름차순 또는 내림차순으로 정렬됩니다.

또한 설명서에는 첫 번째 차원으로만 배열을 정렬할 수 있다고 나와 있습니다.
 
Alexey Viktorov :
AS_SERIES와 정렬은 완전히 다른 개념입니다.

1 - 내용을 변경하지 않고 배열 셀의 인덱싱 방향을 변경하고, 2 - 인덱싱을 변경하지 않고 셀의 내용을 변경하여 오름차순 또는 내림차순으로 정렬됩니다.

또한 설명서에는 첫 번째 차원으로만 배열을 정렬할 수 있다고 나와 있습니다.

오름차순으로 정렬

ArraySort (mas);

지금 뒤집는 방법? 내림차순으로 필요하며 이것이 제비를 정렬하는 것입니다.

 
Vitaly Muzichenko :

오름차순으로 정렬

ArraySort (mas);

지금 뒤집는 방법? 내림차순으로 필요하며 이것이 제비를 정렬하는 것입니다.

우와. mql5에서 정렬을 보는 것은 이번이 처음입니다. 메모리에서 mql4에 초점을 맞춰 답변했습니다. 이 경우 읽기 주기를 되돌릴 수 있습니다. 특정 값을 검색해야 하는 경우 정렬 방법에 관계없이배열의 인덱스를 반환합니다.

음, 루프에서 가장 멍청한 옵션은 전체 배열을 역순으로 다시 작성하는 것입니다. 그리고 그만한 가치가 있습니까???
 
Vitaly Muzichenko :

오름차순으로 정렬

ArraySort (mas);

지금 뒤집는 방법? 내림차순으로 필요하며 이것이 제비를 정렬하는 것입니다.

정렬 후 ArraySetAsSeries 를 사용하여 인덱싱 순서를 변경하면 어떻게 될까요?
 
Vitalie Postolache :
정렬 후 ArraySetAsSeries를 사용하여 인덱싱 순서를 변경하면 어떻게 될까요?

그러면 다음과 같이 나타 납니다.

사유: