MT4 iMAOnArray 및 iBandsOnArray 계산에 대한 요소 수의 영향 - 페이지 7

 
Alexey Viktorov :

if(rates_total-i >= Rates_total-100); 이후에 계산할 막대가 100개 밖에 없을 때 iMAOnArray() 함수가 먼저 전체 배열을 다시 계산한다는 것을 의미합니까?

아니, 반만.
 
Alexey Viktorov :

if(rates_total-i >= Rates_total-100); 이후에 계산할 막대가 100개 밖에 없을 때 iMAOnArray() 함수가 먼저 전체 배열을 다시 계산한다는 것을 의미합니까?

아이마온어레이

배열에 저장된 데이터에 대해 계산된 이동 평균 기술 지표 의 값반환 합니다.

이중 iMAOnArray (
    더블         배열[] , // 배열
    정수    total , // 요소 수
    정수    ma_period , // 기간
정수            ma_shift , // 평균의 이동
정수            ma_method , // 평균화 방법
정수            옮기다               // 옮기다
);

옵션

정렬[]

【인】 데이터가 있는 배열.

【인】 계산할 요소의 수입니다. 0은 모든 배열 요소를 의미합니다.  

맞습니다. 크기 값에 매개변수가 0인 iMAOnArray에 대한 첫 번째 호출은 무조건 전체 배열을 계산한 다음 마지막 또는 최대 2개의 마지막 값만 계산되는 것처럼 보입니다. .. 그래서 브레이크. 따라서 오프셋으로 얻고자 하는 막대의 수는 중요하지 않습니다. 이 경우 전체 배열이 어쨌든 고려됩니다.

 
Sergey Efimenko :

아이마온어레이

배열에 저장된 데이터에 대해 계산된 이동 평균 기술 지표 의 값반환 합니다.

이중 iMAOnArray (
    더블         배열[] , // 배열
    정수    total , // 요소 수
    정수    ma_period , // 기간
정수            ma_shift , // 평균의 이동
정수            ma_method , // 평균화 방법
정수            옮기다               // 옮기다
);

옵션

정렬[]

【인】 데이터가 있는 배열.

【인】 계산할 요소의 수입니다. 0은 모든 배열 요소를 의미합니다.  

맞습니다. 크기 값에 매개변수가 0인 iMAOnArray에 대한 첫 번째 호출은 무조건 전체 배열을 계산한 다음 마지막 또는 최대 2개의 마지막 값만 계산되는 것처럼 보입니다. .. 그래서 브레이크. 따라서 오프셋으로 얻고자 하는 막대의 수는 중요하지 않습니다. 이 경우 전체 배열이 어쨌든 고려됩니다.

그래서 제가 잘못 이해했습니다. 복잡한 계산 없이는 왜 브레이크가 없습니까?
 
Alexey Viktorov :
그래서 제가 잘못 이해했습니다. 복잡한 계산 없이는 왜 브레이크가 없습니까?
그것이 문제입니다. 왜 코드에서 호출할 때 속도가 느려지지만 차트에 단순히 오버레이될 때 속도가 느려지지 않습니다. 일반적으로 여기에서는 개발자만 답을 찾을 수 있는 위치를 알고 있습니다. 차트에 복잡한 지표가 많이 있고 그 중 일부는 재귀 사이클을 사용하기도 하고 "오래 생각한다"고 되어 있는데 여기 간단한 작업이 있고 계산하는 데 너무 오래 걸립니다.
 
Sergey Efimenko :
그것이 문제입니다. 왜 코드에서 호출할 때 속도가 느려지지만 차트에 단순히 오버레이될 때 속도가 느려지지 않습니다. 일반적으로 여기에서는 개발자만 답을 찾을 수 있는 위치를 알고 있습니다. 차트에 복잡한 지표가 많이 있고 그 중 일부는 재귀 사이클을 사용하기도 하고 "오래 생각한다"고 되어 있는데 여기 간단한 작업이 있고 계산하는 데 너무 오래 걸립니다.

그래프의 단순한 오버레이에 대해 말하는 것이 아닙니다. 나는 그 테스트 코드에 대해 이야기하고 있습니다. 결국 그것이 발생하는 대신 중첩됩니다.

그러나 어레이의 일부를 복사하여 이 쓰레기를 물리친 것 같습니다. 그리고 MODE_LWMA도 전체 배열을 계산하는 것과 같은 방식으로 다시 계산합니다.


빨간색 - 역사 전체에 걸쳐 계산됩니다. 녹색 마지막 50개 막대.

 
Alexey Viktorov :

...

그러나 어레이의 일부를 복사하여 이 쓰레기를 물리친 것 같습니다. 그리고 MODE_LWMA도 전체 배열을 계산하는 것과 같은 방식으로 다시 계산합니다.

...

그도 이겼다.

 
Alexey Viktorov :

그래프의 단순한 오버레이에 대해 말하는 것이 아닙니다. 나는 그 테스트 코드에 대해 이야기하고 있습니다. 결국 그것이 발생하는 대신 중첩됩니다.

그러나 어레이의 일부를 복사하여 이 쓰레기를 물리친 것 같습니다. 그리고 MODE_LWMA도 전체 배열을 계산하는 것과 같은 방식으로 다시 계산합니다.


빨간색 - 역사 전체에 걸쳐 계산됩니다. 녹색 마지막 50개 막대.

제 글을 한 마디로, 심지어 문장으로도 읽으신 것 같습니다. 무엇을 이겼습니까? 그런 생각( 막대 수 계산에 제한이 있는 유사한 코드)이 바로 떠올랐다고 썼는데, 바로 시도했는데 성능 향상이 없었기 때문입니다. 배열은 여전히 완전히 계산되며(전체=0), 해당 요소의 마지막 100개만 복사(버퍼 채우기)한다는 사실은 계산 중단을 제거하지 않으며, 버퍼로의 요소 수신 속도를 늦추지 않습니다. 그러나 마지막 요소가 필요하다는 사실에도 불구하고 완전히(total=0) 고려되거나 처음 N 요소의 결과만 반환(total=N)하는 평균 배열의 계산은 인덱싱 방향을 변경하면 원하는 효과를 주지 않습니다.
 
Sergey Efimenko :
제 글을 한 단어로, 심지어 문장으로 읽으신 것 같습니다. 무엇을 이겼습니까? 그런 생각( 막대 수 계산에 제한이 있는 유사한 코드)이 바로 떠올랐다고 썼는데, 바로 시도했는데 성능 향상이 없었기 때문입니다. 배열은 여전히 완전히 계산되며(전체=0), 해당 요소의 마지막 100개만 복사(버퍼 채우기)한다는 사실은 계산 중단을 제거하지 않으며, 버퍼로의 요소 수신 속도를 늦추지 않습니다. 그러나 마지막 요소가 필요하다는 사실에도 불구하고 완전히(total=0) 고려되거나 처음 N개 요소의 결과만 반환(total=N)하는 평균 배열의 계산은 인덱싱 방향을 변경하면 원하는 효과를 주지 않습니다.

분명히 내 메시지도 하나를 통해 읽습니다 ... 이전 코드가 적합하지 않습니다. 실수가 발생한 위치를 이해했습니다. 마지막 화면은 완전히 다른 접근 방식을 보여주지만 마지막 50개 막대만 계산됩니다.

나는 코드를 바로 게시하기 시작하지 않았습니다. "아직도 작동하지 않을 것입니다"와 같은 반응을 기대하고 있을 뿐입니다. 말해 주세요.

드미트리 페도세프 :

그도 이겼다.

그리고 srach 번식 만 할 수 있습니다. 지금 나와 같은 어조로 얼마나 많은 포럼 회원과 소통했는지 세어 보십시오. 나가라, 사탄.
 
Alexey Viktorov :

...

그리고 당신은 srach 번식 만 할 수 있습니다. 지금 나와 같은 어조로 얼마나 많은 포럼 회원과 소통했는지 세어 보십시오. 나가라, 사탄.

당신과 같은 의사 소통. 당신은 여기 연합군입니다.

어제 그들은 어레이 복사 접근 방식의 실패에 대해 여기에 썼습니다. LWMA에서 그들은 코를 찔렀습니다. 효과가 있었습니다. EMA에 확인하려면 tyama는 충분하지만 신성한 힘의 소유자는? 교회에 촛불을 켜는 것을 잊었습니까?

뭔가를 부풀리고, 부풀어 오르고, 매번 - 오, 나는 내가 실수를 저질렀다는 것을 깨달았습니다.

스락. 약간의 고민이 있었다면 오래전에 이 주제의 문제가 해결된 것을 보았을 것입니다.

다시 한 번 자랑하고 싶었지만 뿔을 꺾고 곧바로 사탄에게 한탄했다. 남성!

 
Alexey Viktorov :

분명히 내 메시지도 하나를 통해 읽습니다 ... 이전 코드가 적합하지 않습니다. 실수가 발생한 위치를 이해했습니다. 마지막 화면은 완전히 다른 접근 방식을 보여주지만 마지막 50개 막대만 계산됩니다.

나는 코드를 바로 게시하기 시작하지 않았습니다. "아직도 작동하지 않을 것입니다"와 같은 반응을 기대하고 있을 뿐입니다. 말해 주세요.

그리고 다른 코드가 있다고 추측했어야 합니까? 위의 화면은 마지막 100개의 막대를 계산한 화면인데 실제로는 모든 막대가 계산되지만 100개만 버퍼에 복사됩니다. 그리고 바로 코드를 게시하는 것은 어떨까요? 그런 대답은 없었을 것입니다. 자세히 대답할게 이해가 안가는데 무슨 소용이야? 코드는 어떤 일이 일어나고 있는지, 무엇을 고려하는지, 위의 단점이 있는지 여부를 즉시 보여줍니다. 화면은 무엇을 제공합니까? 결과 외에는 아무것도 없지만 이미 결과에 대해 이야기했습니다. 다른 방법으로 도달할 수 있지만 모든 방법이 당면한 작업에 적합하지 않아 계산 시간이 단축됩니다.