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

 
Alexey Navoykov :
대규모 프로젝트에서 사용자 지정 매크로의 이름을 강조 표시하는 것이 항상 작동하지 않는다는 것을 오랫동안 알아차렸습니다. 다른 파일에 정의된 많은 매크로는 어떤 이유로 강조 표시되지 않습니다. 지금까지는 패턴을 알 수 없습니다. 내가 볼 수있는 것은 특정 줄 이후에 특정 파일에 정의된 모든 매크로가 더 이상 다른 파일에서 강조 표시되지 않는다는 것입니다. 비슷한 것을 본 다른 사람이 있습니까?
 
Alexey Navoykov :
대규모 프로젝트에서 사용자 지정 매크로의 이름을 강조 표시하는 것이 항상 작동하지 않는다는 것을 오랫동안 알아차렸습니다. 다른 파일에 정의된 많은 매크로는 어떤 이유로 강조 표시되지 않습니다. 지금까지는 패턴을 파악할 수 없습니다. 특정 라인 이후에 특정 파일에 정의된 모든 매크로가 더 이상 다른 파일에서 강조 표시되지 않는 것만 볼 수 있습니다. 비슷한 것을 본 다른 사람이 있습니까?

비슷한 것을 발견했습니다. 상황의 정확성을 보장할 수 없습니다.

 
Alexey Navoykov :
대규모 프로젝트에서 사용자 지정 매크로의 이름을 강조 표시하는 것이 항상 작동하지 않는다는 것을 오랫동안 알아차렸습니다. 다른 파일에 정의된 많은 매크로는 어떤 이유로 강조 표시되지 않습니다. 지금까지는 패턴을 알 수 없습니다. 내가 볼 수있는 것은 특정 줄 이후에 특정 파일에 정의된 모든 매크로가 더 이상 다른 파일에서 강조 표시되지 않는다는 것입니다. 비슷한 것을 본 다른 사람이 있습니까?

예, 자동 대체가 새 변수 또는 클래스 필드에 대해 작동하지 않는 경우도 발생합니다. 일반적으로 프로젝트를 다시 컴파일하여 처리됩니다.

내가 이해하는 한, 백그라운드에서 ME에는 강조 표시 및 자동 대체를 정의하는 프로세스가 있습니다. 어떤 순간에는 모든 정보를 업데이트할 시간이 없거나 업데이트하고 싶지 않습니다.

 
우리가 Rates_total에 대해 이야기하고 있기 때문에 커뮤니티에 물어보겠습니다. OnCalculate 의 어떤 구성이 더 우아하고 최적입니까?
이전에는 OnCalculate에서 다음과 같은 구성을 사용했습니다.
 if (rates_total==prev_calculated) {}         // новый тик, перерисовываем последний бар, все бары на своих местах
else if (rates_total-prev_calculated== 1 ) {} // момент формирования нового бара 
else {}                                     // пересчитываем последние(rates_total-prev_calculated) бар


그러나 prev_calculated>rates_total일 때 상황이 있을 수 있다는 것을 깨닫고 나는 아무것도 이해하지 못했다는 것을 깨닫고 손을 흔들었습니다. 모든 막대를 다시 계산하는 데 몇 초도 걸리지 않으면 다음 구성을 사용하기 시작했습니다.

 if (rates_total==prev_calculated) {}         // новый тик, перерисовываем последний бар, все бары на своих местах
else if (rates_total-prev_calculated== 1 ) {} // момент формирования нового бара 
else {}                                     // пересчитываем все бары

일반적으로 누가 어떻게 그리고 어떻게 유능한가?

 
Nikolai Semko :
우리가 Rates_total에 대해 이야기하고 있기 때문에 커뮤니티에 물어보겠습니다. OnCalculate의 어떤 구성이 더 우아하고 최적입니까?
이전에는 OnCalculate에서 다음과 같은 구성을 사용했습니다.


그러나 prev_calculated>rates_total일 때 상황이 있을 수 있다는 것을 깨닫고 나는 아무것도 이해하지 못했다는 것을 깨닫고 손을 흔들었습니다. 모든 막대를 다시 계산하는 데 몇 초도 걸리지 않으면 다음 구성을 사용하기 시작했습니다.

일반적으로 누가 어떻게 그리고 어떻게 유능한가?

당신이 무슨 일이 일어나고 있는지 알고 있기 때문에 맞습니다. 구성에 대한 참고 사항: ==1 대신에 >=1 또는 if(rates_total > prev_calculated)를 작성하여 누락된 막대가 펌핑되는 경우 다시 계산합니다.

또한 mql5와 mql4의 strict 지시문을 사용 하여 배열에서 벗어나지 않으려면 맨 왼쪽 막대에서 계산에 포함될 수 있는 막대의 수를 고려해야 합니다. 그래서 개인적으로 모든 경우에 사용할 수 있는 템플릿이 없는 것으로 나타났습니다.

 
Nikolai Semko :
우리가 Rates_total에 대해 이야기하고 있기 때문에 커뮤니티에 물어보겠습니다. OnCalculate의 어떤 구성이 더 우아하고 최적입니까?
이전에는 OnCalculate에서 다음과 같은 구성을 사용했습니다.


그러나 prev_calculated>rates_total일 때 상황이 있을 수 있다는 것을 깨닫고 나는 아무것도 이해하지 못했다는 것을 깨닫고 손을 흔들었습니다. 모든 막대를 다시 계산하는 데 몇 초도 걸리지 않으면 다음 구성을 사용하기 시작했습니다.

일반적으로 누가 어떻게 그리고 어떻게 유능한가?

나는 limit = Rates_total - prev_calculated를 계산합니다.
그런 다음 limit > 1이면 limit = Rates_total - 1(또는 첫 번째 계산에 필요한 막대 수 - 1) 및 초기화입니다.
그런 다음 한계에서 >=0까지 루프
모바일에서 코딩이 안되네요...
 
Nikolai Semko :
우리가 Rates_total에 대해 이야기하고 있기 때문에 커뮤니티에 물어보겠습니다. OnCalculate의 어떤 구성이 더 우아하고 최적입니까?
이전에는 OnCalculate에서 다음과 같은 구성을 사용했습니다.


그러나 prev_calculated>rates_total일 때 상황이 있을 수 있다는 것을 깨닫고 나는 아무것도 이해하지 못했다는 것을 깨닫고 손을 흔들었습니다. 모든 막대를 다시 계산하는 데 몇 초도 걸리지 않으면 다음 구성을 사용하기 시작했습니다.

일반적으로 누가 어떻게 그리고 어떻게 유능한가?

원칙적으로 질문은 관련이 있습니다. 개발자의 예(MT 제공)에는 다양한 계산 방법이 있으며 Bears.mql5의 BarsCalculated()도 사용됩니다.

최근 MT4에서 논의되었으며 지금까지 이 템플릿에 정착했습니다: https://www.mql5.com/ru/forum/314931/page2#comment_11946579

MT5에서는 확인이 필요하지만 차트는 다르게 동작합니다(MT4/MT5). MT5에서는 마우스 휠로 기록의 시작 부분으로 스크롤하면 0으로 재설정되는 것 같습니다. prev_calculated - 작년에 나는 아래에 표시기를 썼습니다. MT5는 이 행동에 놀랐습니다

추신: 사용자 지정 차트를 만들어야 하고 타이머에 의해 기록이 빠르게 전달됩니다. 즉, rate_total 및 prev_calculated의 동작을 추적하려면 테스트 벤치가 필요합니다. 여기에서 두 페이지 사이의 불일치에 대해 썼습니다. rate_total 및 iBars() - 이것도 고려해야 합니다.

ZYZY: Mladen의 코드를 연구하기 위한 옵션으로, 나는 그의 지표 작성 스타일을 좋아합니다. 모든 것이 가장 작은 세부사항까지 고려되고, 그의 코드에서 유일한 문제는 소스 형식을 지정하는 매우 독특한 스타일입니다.

[삭제]  
Igor Makanu :

...........................

매우 독특한 소스 서식 스타일


 
Сергей Таболин :


스타일러 사용법은 알지만 한 줄에 여러 문장을 쓰면 스타일러가 동작하지 않는다

;)

https://www.mql5.com/ru/code/22766
[삭제]  

그냥 질문입니다.

ulong의 최대값은 18입니다..........

나는 값 61을 얻었습니다 .......

그리고 IntegerToString() 은 일반적으로 이 값을 제공하고 90을 제공합니다.............

문제를 찾을 때까지 땀을 흘려야 했습니다.

이것을 현지화하는 방법이 있습니까?