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

 
-Aleks- :

하나의 막대에 해당하는 하나의 레코드가 있습니까?

네, 3월 29일 막대에 있는 PERIOD_D1 의 히스토그램 막대 하나가 됩니다.

2017년 3월 29일. 574391

 

이렇게 날짜를 쓰면 히스토그램 막대가 올바르게 설정됩니다.

 int shift= iBarShift ( Symbol (), PERIOD_D1 , "29.03.2017" );
Range_Buffer[shift]= str_b1;

하지만 설치되지 않은 경우

str_dat1= StringSubstr (str, 0 , 10 ); //

int shift= iBarShift ( Symbol (), PERIOD_D1 ,str_dat1);

Range_Buffer[shift]= str_b1;

날짜( str _ dat 1)가 올바르게 인쇄됩니다.

이유 는 무엇입니까 ?



 
mila.com :

나는 while 루프를 제거했습니다. 나는 다음과 같은 첫 번째 라인을 얻습니다.

무엇이 잘못되었는지 알려주세요.

str_dat1 변수에서 어떤 일이 일어나는지 확인해야 합니다.

일반적으로 iBarShift에서는 행 대신 datetime 유형의 날짜 를 전송해야 합니다. 순수한 라인의 형태로 날짜를 받아들일 수 있고 변수를 받아들이고 싶지 않습니까???

결과 문자열을 날짜/시간 유형으로 변환하는 것이 좋습니다.


ps. 확인하기 위해 이렇게 작성하는 것은 완전히 미친 생각입니다.

 int shift= iBarShift ( Symbol (), PERIOD_D1 , (string)str_dat1);

그러나 이것은 순전히 mql4의 선택성을 기반으로 합니다.

 
mila.com :

이렇게 날짜를 쓰면 히스토그램 막대가 올바르게 설정됩니다.

하지만 설치되지 않은 경우

날짜( str _ dat 1)가 올바르게 인쇄됩니다.

이유 는 무엇입니까 ?




그 이유는 datetime 변수의 유형을 iBarShift() 함수 에 전달해야 하고 유형 문자열을 전달하기 때문입니다. 다음을 시도하십시오.

 datetime   str_dat1= StringToTime ( StringSubstr (str, 0 , 10 )); // это дата
double str_b1= StringToDouble ( StringSubstr (str, 12 , 6 )); // это значение

int shift= iBarShift ( Symbol (), PERIOD_D1 ,str_dat1);

Range_Buffer[shift]=str_b1;

...

 
Alexey Viktorov :
결과 문자열을 날짜/시간 유형으로 변환하는 것이 좋습니다.

감사합니다, 칼럼을 넣어주세요.

파일의 모든 줄에 대한 히스토그램을 작성하는 방법에 대한 질문이 발생했습니다.

설립하다   다음 줄 FileSeek() 로 이동하는 데 도움이 됩니다.

하지만 다음 줄로 이동하는 방법을 모르겠습니다.

 
mila.com :

감사합니다, 칼럼을 넣어주세요.

파일의 모든 줄에 대한 히스토그램을 작성하는 방법에 대한 질문이 발생했습니다.

설립하다   다음 줄 FileSeek()로 이동하는 데 도움이 됩니다.

하지만 다음 줄로 이동하는 방법을 모르겠습니다.

지금까지는 하나의 열만 넣습니다.


돕다)

루프 전에 파일을 열고 닫지 않고 끝까지 읽으면 루프가 반복될 때마다 다음 줄이 읽힙니다. 루프가 완료 되면 .

FileSeek()는 포인터를 다음 줄이 아니라 파일의 시작, 끝 또는 포인터의 현재 위치에서 지정된 바이트 수만큼 이동합니다.

올바르게 이동하려면 녹음된 파일에서 한 행이 차지하는 바이트 수를 알아야 합니다.

 
mila.com :

감사합니다, 칼럼을 넣어주세요.

파일의 모든 줄에 대한 히스토그램을 작성하는 방법에 대한 질문이 발생했습니다.

설립하다   다음 줄 FileSeek()로 이동하는 데 도움이 됩니다.

하지만 다음 줄로 이동하는 방법을 모르겠습니다.

지금까지는 하나의 열만 넣습니다.


돕다)

이 모든 것이 예제와 함께 설명된 기사에 대한 링크를 제공했습니다. 안읽은듯...
 
Sergey Gritsay :


그 이유는 datetime 변수의 유형을 iBarShift() 함수에 전달해야 하고 유형 문자열을 전달하기 때문입니다. 다음을 시도하십시오.

...

감사합니다. 그렇게 하겠습니다.

 
Alexey Viktorov :

루프 전에 파일을 열고 닫지 않고 끝까지 읽으면 루프가 반복될 때마다 다음 줄이 읽힙니다. 그리고 주기가 끝나면 을(를) 닫을 수 있습니다.


작동합니다. 감사합니다.

 
Artyom Trishkin :
이 모든 것이 예제와 함께 설명된 기사에 대한 링크를 제공했습니다. 안읽은듯...

읽었지만 루프 전에 파일을 여는 것을 짐작하지 못했을 것입니다)

제가 잘못 읽었을 수도 있습니다)