지표: 그리드 - 페이지 4

 

이유를 모르겠지만 수직선을 그리는 코드에서:

line_counter++;

TimeToStruct(time[i],str);

StringConcatenate(line_name,IntegerToString(str.hour,2,'0'),":",IntegerToString(str.min,2,'0'),"_N",line_counter);

SetVLine(line_name,time[i],line_colour);

마지막 줄을 다음 줄로 바꿉니다:

SetVLine(IntegerToString(str.hour,2,'0')+":"+IntegerToString(str.min,2,'0')+"_N "+IntegerToString(line_counter),time[i],line_color);

그러면 모든 것이 정상적으로 작동합니다.

문자열 연결로 줄 뒤에 line_name 변수를 인쇄하면 줄 이름이 터미널에 올바르게 기록됩니다.

어떤 이유에서인지 StringConcatenate에서 얻은이 변수를 SetVLine 함수에 대입하면 선이 그려지지 않고 그리기 함수 호출 코드에서 선 이름을 직접 계산하는 것만 작동합니다.

그리고 빌드 3021 이후에 정확히 나타납니다.

추신 칠면조를 시작했지만 터미널에 "바퀴벌레"가 살고 있습니다.

 

3090 빌드에서 StringConcatenate 함수의 버그를 수정해 주신 개발자들에게 감사드립니다.

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

이제 표시기가 원래 코드에서 정상적으로 작동합니다.

Новая версия платформы MetaTrader 5 build 3090: Улучшения в работе
Новая версия платформы MetaTrader 5 build 3090: Улучшения в работе
  • 2021.10.20
  • www.mql5.com
В четверг 21 октября 2021 года будет выпущена обновленная версия платформы MetaTrader 5...