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

 

어제 직장에서 그들은 내 컴퓨터를 WindowsXP/32에서 Win7/64로 변경했습니다. 그 전에는 직장에서 보통 MT4로 거래하고 저장소에서 코드를 업데이트하고 저장소에 다시 고정했습니다. 이제 7-ke에서 MT4에서 거래할 수 있습니다. 새 프록시 서버 데이터를 등록했으며 커뮤니티 로그인과 비밀번호도 등록했습니다. 이제 문제는 MetaEditor 4에서 코드를 동기화할 수 없다는 것입니다. 프로필에 " 스토리지 연결 "에 대한 확인 표시가 있습니다.

오늘 커뮤니티에서 비밀번호를 변경하고 다른 폴더에 두 번째 MT4를 설치하고 프록시, 로그인 및 새 비밀번호를 등록했습니다. 거래가 진행 중이고 모든 MQ 서비스를 볼 수 있지만 스토리지와 동기화되지 않습니다. 연결하지 마십시오. 다른 문제가 있을 수 있는 곳을 알려주십시오.


 
paladin800 :

어제 직장에서 그들은 내 컴퓨터를 WindowsXP/32에서 Win7/64로 변경했습니다. 그 전에는 직장에서 보통 MT4로 거래하고 저장소에서 코드를 업데이트하고 저장소에 다시 고정했습니다. 이제 7-ke에서 MT4에서 거래할 수 있습니다. 새 프록시 서버 데이터를 등록했으며 커뮤니티 로그인과 비밀번호도 등록했습니다. 이제 문제는 MetaEditor 4에서 코드를 동기화할 수 없다는 것입니다. 프로필에 " 스토리지 연결 "에 대한 확인 표시가 있습니다.

오늘 커뮤니티에서 비밀번호를 변경하고 다른 폴더에 두 번째 MT4를 설치하고 프록시, 로그인 및 새 비밀번호를 등록했습니다. 거래가 진행 중이고 모든 MQ 서비스를 볼 수 있지만 스토리지와 동기화되지 않습니다. 연결하지 마십시오. 다른 문제가 있을 수 있는 부분을 알려주세요.


관리자 권한으로 MT4 단말기를 다시 설치하고 관리자 권한으로 MT4 단말기를 실행하십시오. 이 방법을 사용하는 Vista/8/8.1의 MT4는 코드가 있는 저장소와 폴더를 모두 보고 모든 차트 설정을 저장합니다.
 
barabashkakvn :
관리자 권한으로 MT4 단말기를 다시 설치하고 관리자 권한으로 MT4 단말기를 실행하십시오. 이 방법을 사용하는 Vista/8/8.1의 MT4는 코드가 있는 저장소와 폴더를 모두 보고 모든 차트 설정을 저장합니다.
분명한. 나는 조용히 직장에서 Forex를 작업하고 있습니다. 관리자(나는 희망합니다)가 모르기 때문에 관리자 권한으로 지속되지 않습니다. 문제는 중요하지 않습니다. 플래시 드라이브를 통해 작업하겠습니다. 설명해주셔서 감사합니다.
 
paladin800 :
분명한. 나는 조용히 직장에서 Forex를 작업하고 있습니다. 관리자(나는 희망합니다)가 모르기 때문에 관리자 권한으로 지속되지 않습니다. 문제는 중요하지 않습니다. 플래시 드라이브를 통해 작업하겠습니다. 설명해주셔서 감사합니다.
VPS를 빌릴 수도 있습니다. 그러면 원격 테이블에 연결을 통해 로그인이 가능하며 관리자 권한에는 문제가 없습니다.
 
컴파일 오류 , 빌드 969
 template < typename T>
T plus( T a, T b )      { return ( a + b ); }

template < typename T>
int f( T& array[], int i )
{
         return ( plus( :: ArraySize ( array ), i ) );
}

void OnStart ()
{
         int a[ 2 ];
         int b = 1 ;
         Print ( f( a, b ));
}

새 빌드에서 발생하기 때문에 발생

 template < typename T>
void g( T& array[] ) { P rint ( typename ( :: ArraySize ( array ))); }
void OnStart ()
{
         int a[ 2 ];
        g( a ); //Результат: uint
}
 uint ArraySize (...);
в то время как раньше было
 int ArraySize (...);
누가 귀찮게 했습니까?
 int ArraySize (...);

도움말이 조용하고 이러한 변경이 계산에 영향을 줄 수 있음에도 불구하고 변경해야 하는 이유는 무엇입니까?! 그리고 아무도 눈치채지 못할거야

 
A100 :
컴파일 오류 , 빌드 969Occurs 왜냐하면 새 빌드에서 누가 방지했습니까?

도움말이 조용하고 이러한 변경이 계산에 영향을 줄 수 있음에도 불구하고 변경해야 하는 이유는 무엇입니까?! 그리고 아무도 눈치채지 못할거야

도움은 항상 조금 늦습니다. 물론 크기가 음수가 될 수 없으므로 uint 가 배열의 크기를 나타내는 데 더 합리적입니다. // 그리고 ulong 은 훨씬 더 좋을 것입니다 :)
 
라는 것도 모순이다.
 template < typename T>
void g( T& array[] )
{
         Print ( typename ( :: ArrayResize ( array, 3 )));
}

void OnStart ()
{
         int a[ 2 ];
        g( a ); //Результат: int
}

ArraySize는 변경되었지만 ArrayResize 는 변경되지 않은 것으로 나타났습니다. 근본적인 차이점은 무엇입니까?

그리고 차이점은

Возвращаемое значение

При успешном выполнении функция возвращает количество всех элементов, содержащихся в массиве после изменения размера;
в противном случае возвращает - 1 и массив не меняет размеры.

ArrayResize의 반환 유형을 변경하는 것은 기본적으로 불가능합니다('-1'로 인해). 글쎄, ArrayResize를 변경할 수 없다면 - ArraySize를 변경하는 이유는 무엇입니까?

 

그런 상황. EURNZD 전문가를 몇 년 동안 운영해야 합니다. 이미 전체 기록을 기호로 삭제하고 다시 로드했습니다. 결과는 동일합니다.

HistoryCenter: 5240 bars imported in 'EURNZD60'

그리고 이것은 2013년 9월일 뿐입니다. 터미널에서는 차트를 더 뒤로 스크롤할 수 없습니다. 히스토리 센터를 열고 다운로드를 클릭하면 "EURNZD 기호 에 대한 새 데이터가 없습니다"라는 메시지가 표시됩니다. 문맹으로 쓰여진 그와 함께 무화과이지만 원칙적으로 따옴표를 얻는 방법은 무엇입니까? 브로커는 이력이 없나요? 브로커는 잘 알려져 있으며 다른 기호에서는 이러한 문제를 본 적이 없습니다.

추신 콧수염, 질문이 제거되었습니다. EURNZD에 침을 뱉고 GBPAUD를 다운로드한 후 이 기술의 기적은 갑자기 EURNZD에 대한 새로운 데이터도 보았습니다. 아마도 누군가 비슷한 상황에 처할 것입니다. 그런 다음 "탬버린으로 춤을 추는 것"과 다른 방식으로 터미널을 지속적으로 조작해야 할 필요성을 잊지 마십시오. ;-)

PPS 여기에서 AUDNZD와 같은 쓰레기가 다시 시작되었습니다. 갑자기 "그것" 자체가 동일한 데이터를 볼 때까지 어리석게도 여러 번 연속으로 다운로드를 클릭해야 했습니다.

 
MetaDriver :
도움은 항상 조금 늦습니다. 물론 크기가 음수가 될 수 없으므로 uint 가 배열의 크기를 나타내는 데 더 합리적입니다. // 그리고 ulong 은 훨씬 더 좋을 것입니다 :)

 template < typename T>
void g( T& str ) { Print ( typename ( :: StringLen ( str ))); }
void OnStart ()
{
         string str = "ABC" ;
        g( str ); //Результат: int
}

문자열의 길이는 음수일 수도 없지만 일반적으로 함수(검색, 계산 등)가 길이/크기 또는 -1을 반환하는 간단한 이유 때문에 길이/크기를 나타내기 위해 int를 사용하는 것이 더 합리적입니다. 오류 처리를 크게 단순화하는 실패의 경우.

 
A100 :
컴파일 오류 , 빌드 969
...
도움말이 조용하고 이러한 변경이 계산에 영향을 줄 수 있음에도 불구하고 변경해야 하는 이유는 무엇입니까?! 그리고 아무도 눈치채지 못할거야

ArraySize 에 관해서는 요전에 MQL4에서 비슷한 문제를 제기했습니다: https://www.mql5.com/en/forum/152471 . 내가 이해하는 한 MQL5에서는 모든 것이 이 계획과 동일해야 합니다.

그리고 이 969 빌드는 언제 나타났습니까? 어쩐지 제 호소를 들어주셨나 봐요. :) 이 문제에 대해 서비스 데스크에서는 옵티마이저의 잘못된 작업에 원인이 있고, 새 빌드에서는 uint로 타입을 변경하겠다고 답변했습니다. 더 정확하게는, 사실 문서화되지 않은 여전히 uint입니다. :) 그런데 ArrayResize도 uint로 변경됩니다. 나는 그들에게 즉시 ulong 으로 변경하라고 조언했습니다. 그렇지 않으면 가까운 장래에 대용량을 저장할 때 32비트 값이 부족하기 때문에 이 문제로 돌아가야 할 것입니다.

오류 시 -1 값에 대해서는 다음과 같은 이유로 문제가 없어야 합니다. (int)-1 = (uint)-1 = 0xFFFFFFFF = UINT_MAX, 즉 비트 표현은 동일합니다. 사실, 비교 작업은 이미 다른 결과를 제공합니다. 저것들. 코드가 다음과 같은 경우:

 if ( ArrayResize (...) < 0 ) ...

그것은 올바르지 않을 것입니다.