초보자의 질문 MQL4 MT4 MetaTrader 4 - 페이지 22

 
A1exPit :
데이터를 배열로 전송할 때 데이터가 순차적으로 채워진다는 것을 의미했습니다. 배열1[] = x; 셀 번호가 직접 지정되지 않은 경우 x 값은 어느 셀에 기록됩니까?

아니요. 모든 셀을 동일한 값으로 채우려면 ArrayInitialize() 를 사용하십시오 .

다른 값을 작성해야 하는 경우 순차적으로 순환합니다. 특정 셀에 써야 하는 경우 해당 셀의 주소를 지정합니다.

 
Vitalie Postolache :

아니요. 모든 셀을 동일한 값으로 채우려면 ArrayInitialize() 를 사용하십시오 .

다른 값을 작성해야 하는 경우 순차적으로 순환합니다. 특정 셀에 써야 하는 경우 해당 셀의 주소를 지정합니다.

감사해요,

또 다른 질문은 다음과 같습니다. ArrayCopy를 통해 이전 배열의 채워진 셀 수와 동일한 크기의 새 배열을 만들 수 있습니까? 아니면 처음에는 두 번째 어레이를 생성한 다음 복사해야 합니까?

int    ArrayCopy (
   void &        dst_array[],         // куда копируем
   const void &  src_array[],         // откуда копируем
   int           dst_start= 0 ,         // с какого индекса пишем в приемник
   int           src_start= 0 ,         // с какого индекса копируем из источника
   int           count= WHOLE_ARRAY      // сколько элементов
   );
 
A1exPit :

감사해요,

또 다른 질문은 다음과 같습니다. ArrayCopy를 통해 이전 배열의 채워진 셀 수와 동일한 크기의 새 배열을 만들 수 있습니까? 아니면 처음에는 두 번째 어레이를 생성한 다음 복사해야 합니까?

int    ArrayCopy (
   void &        dst_array[],         // куда копируем
   const void &  src_array[],         // откуда копируем
   int           dst_start= 0 ,         // с какого индекса пишем в приемник
   int           src_start= 0 ,         // с какого индекса копируем из источника
   int           count= WHOLE_ARRAY      // сколько элементов
   );
물론 먼저 생성합니다.
 
Vitalie Postolache :
물론 먼저 생성합니다.
다시 한번 감사합니다.
 
Spread = MarketInfo ( Symbol (), MODE_SPREAD );
if ( Spread >= 0 ) ExtSpread [x] = Spread;
if ( TimeCurrent () - iTime ( NULL , 0 , 0 ) >= 60 ){
int Spread2[x];
ArrayCopy ( Spread2[],ExtSpread[], 0 , 0 , WHOLE_ARRAY );}
x=x+ 1 ;
if (x > 1000 ) x = 0 ;

이와 같이 Spread 값을 ExtSpread[] 배열에 쓰고 분 막대 끝에서 다른 배열로 옮깁니다. 이론상 이 배열은 다음 막대까지 살아남아야 합니다.

ExtSpread 크기[1000]

따라서 배열의 번호 매기기는 0부터 시작하여 크기가 1000인 경우 마지막 셀은 999가 될까요?

그러면 정확할 것입니다. x++ 및 if ( x > 999 ) x=0;

 
A1exPit :
Spread = MarketInfo ( Symbol (), MODE_SPREAD );
if ( Spread >= 0 ) ExtSpread [x] = Spread;
if ( TimeCurrent () - iTime ( NULL , 0 , 0 ) >= 60 ){
int Spread2[x];
ArrayCopy ( Spread2[],ExtSpread[], 0 , 0 , WHOLE_ARRAY );}
x=x+ 1 ;
if (x > 1000 ) x = 0 ;

이와 같이 Spread 값을 ExtSpread[] 배열에 쓰고 분 막대 끝에서 다른 배열로 옮깁니다. 이론상 이 배열은 다음 막대까지 살아남아야 합니다.

ExtSpread 크기[1000]

따라서 배열의 번호 매기기는 0부터 시작하여 크기가 1000인 경우 마지막 셀은 999가 될까요?

그러면 정확할 것입니다. x++ 및 if ( x > 999 ) x=0;

Spread = ( int ) MarketInfo ( Symbol (), MODE_SPREAD );
if ( Spread >= 0 ) ExtSpread [x] = Spread;
if ( TimeCurrent () - iTime ( NULL , 0 , 0 ) >= 60 ){
int Spread2[]; ArrayInitialize (Spread2, EMPTY_VALUE ); ArrayResize ( Spread2,x, 0 );
ArrayCopy ( Spread2,ExtSpread, 0 , 0 , WHOLE_ARRAY );}
x=x+ 1 ;
if (x > 999 ) x = 0 ;
 
안녕하세요! 알려주세요. Android용 mt4 636 버전을 다운로드했는데 브로커 목록이 표시되지 않습니다. 더 이상 지원하지 않는 터미널 버전인가요?(지원된다면 작업파일은 어디서 다운받을 수 있나요?
 

움직이는:

스코모로 , 2016.12.04 18:58

컴파일하는 동안 오류가 발생합니다. 무슨 일이야? 결정을 도와주세요!
파일:
 
Vladimir Karputov :

움직이는:

스코모로 , 2016.12.04 18:58

컴파일하는 동안 오류가 발생합니다. 무슨 일이야? 결정을 도와주세요!

ArrayInitialize (최대, 0 ) => ArrayInitialize (arr, 0 );

for ( int a= 1 ;a<=pr;a++) => for ( int a= 1 ;a<pr;a++)      

매우 매우 비최적의 코드입니다. 시작 시 터미널을 몇 분 동안 정지시킨 다음 심하게 느려지고 여러 차트에서 시작하면 일반적으로

 
Vitalie Postolache :

ArrayInitialize (최대, 0 ) => ArrayInitialize (arr, 0 );

for ( int a= 1 ;a<=pr;a++) => for ( int a= 1 ;a<pr;a++)      

매우 매우 비최적의 코드입니다. 시작 시 터미널을 몇 분 동안 정지시킨 다음 심하게 느려지고 여러 차트에서 시작하면 일반적으로

예, 감사합니다. 오류 없이 모든 것이 수정되었습니다. 느려요, 예, 아주 많이요. 최적화를 위해 어느 방향으로 이동해야 하는지 알려주지 마십시오. 아니면 모든 것을 다시 작성해야 합니까?