intOnCalculate (...)
{
// индекс последнего посчитанного на прошлом вызове бара// с которого начинаем расчётint nStartBar = rates_total - MathMax (prev_calculated, 1 );
for ( int i = nStartBar; i >= 0 ; i--)
{
// рассчитываем индикатор на всех непосчитанных барах
}
}
prev_caclulated가 재설정되면 표시기가 완전히 다시 계산됩니다. 그리고 당연히 그렇습니다. 역사에서 정확히 무엇이 바뀌 었는지 모릅니다. 일부 구멍이로드되었거나 스터드가 어딘가에서 청소되었을 수 있습니다 ... 완전히 다시 계산하는 것이 필수적입니다. 다른 모든 경우에는 마지막 막대 하나만 다시 계산됩니다( 새 막대 가 나타나면 마지막 막대 2개).
prev_caclulated가 재설정되면 표시기가 완전히 다시 계산됩니다. 그리고 당연히 그렇습니다. 역사에서 정확히 무엇이 바뀌 었는지 모릅니다. 일부 구멍이로드되었거나 스터드가 어딘가에서 청소되었을 수 있습니다 ... 완전히 다시 계산하는 것이 필수적입니다. 다른 모든 경우에는 마지막 막대 하나만 다시 계산됩니다( 새 막대 가 나타나면 마지막 막대 2개).
나는 아이디어가. 나중에 쓰겠습니다.
아이디어가 떠올랐다.
개발자에게 HistoryUpdated() 시스템과 같은 작업을 수행하여 전체 기록이 업데이트되었는지 여부를 확인하도록 요청할 것입니다.
개발자 는 도움이 되지 않기 때문에 도움이 되지 않습니다.
그것은 이미 말했습니다: 만약 Rates_total과 prev_calculated의 차이가 1보다 크면 이것은 HistoryUpdated입니다.
1이 아니라 0보다 크다.
그리고? 문제가 해결됩니까?
아니면 새 막대 마다 전체 기록을 다시 계산하는 것이 문제가 되지 않습니까?
1이 아니라 0보다 크다.
그리고? 문제가 해결됩니까?
아니면 새 막대 마다 전체 기록을 다시 계산하는 것이 문제가 되지 않습니까?
당신은 올바르게 들었습니다. 1보다 큼. 새 막대가 나타날 때 차이는 1입니다.
그리고 이것은 문제를 완전히 해결합니다.
완전한 재계산을 위한 일반적인 지표는 매우 짧은 시간을 소비합니다. 1초 미만
당신은 올바르게 들었습니다. 1보다 큼. 새 막대가 나타날 때 차이는 1입니다.
그리고 이것은 문제를 완전히 해결합니다.
완전한 재계산을 위한 일반적인 지표는 매우 짧은 시간을 소비합니다. 1초 미만
버퍼가 재설정된 경우에만 작동합니다.
버퍼가 재설정된 경우에만 작동합니다.
죄송하지만 묻겠습니다.
- 왜 각 틱 에서 생성된 개별 변수에 Rates_total 및 prev_calculated 값을 할당해야 합니까?
- if() 조건부 연산자의 표현식과 for() 루프에서 이러한 변수의 차이를 다시 계산하려면?
- 제한과 같이 rate_total과 prev_calculated의 차이에 대한 변수를 도입하지 않는 이유는 무엇입니까?
작업에 따라 구현이 다를 수 있습니다. 뉘앙스가 다를 수 있습니다. 다양한 조건에 따라 다른 사람들이 어떻게 구현했는지 볼 수 있습니까? 포함하고 인쇄물의 도움으로 작업에 따라 수용 가능한 옵션을 파악하고 결정하십시오.나는 포스트 스크립트를 추가할 것이다:
조건문의 if(){} 블록에서 영점화(counted= 0 )에 대한 당신의 생각은 나에게 분명한 것 같습니다.
만일을 대비하여 위에서 간략하게 염두에 두었던 내용을 포함하여 더 명확하게 하기 위해 Documentation 섹션에서 발췌한 내용을 제공하겠습니다. Language Basics / Functions / Event Handling Functions :
... OnCalculate() 함수에 대한 마지막 호출 이후 가격 데이터가 변경된 경우(더 깊은 기록이 업로드되었거나 기록 간격이 채워진 경우) prev_calculated 입력 매개변수의 값은 터미널 자체에 의해 0으로 설정됩니다. .
버퍼가 재설정된 경우에만 작동합니다.
아무것도 재설정할 필요가 없습니다.
prev_caclulated가 재설정되면 표시기가 완전히 다시 계산됩니다. 그리고 당연히 그렇습니다. 역사에서 정확히 무엇이 바뀌 었는지 모릅니다. 일부 구멍이로드되었거나 스터드가 어딘가에서 청소되었을 수 있습니다 ... 완전히 다시 계산하는 것이 필수적입니다. 다른 모든 경우에는 마지막 막대 하나만 다시 계산됩니다( 새 막대 가 나타나면 마지막 막대 2개).
죄송하지만 묻겠습니다.
- 각 틱에서 생성된 개별 변수에 Rates_total 및 prev_calculated 값을 할당해야 하는 이유는 무엇입니까?
- if() 조건부 연산자의 표현식과 for() 루프에서 이러한 변수의 차이를 다시 계산하려면?
- 제한과 같이 rate_total과 prev_calculated의 차이에 대한 변수를 도입하지 않는 이유는 무엇입니까?
작업에 따라 구현이 다를 수 있습니다. 뉘앙스가 다를 수 있습니다. 다양한 조건에 따라 다른 사람들이 어떻게 구현했는지 볼 수 있습니까? 포함하고 인쇄물의 도움으로 작업에 따라 수용 가능한 옵션을 파악하고 결정하십시오.고맙습니다. 좋은 지적.
하지만. 이는 공백이 있는 경우 전체 기록을 다시 계산할 수 있도록 하기 위한 것입니다.
나는 포스트 스크립트를 추가할 것이다:
if(){} 조건문의 블록에서 0으로 설정(counted= 0 )한다는 당신의 생각은 분명해 보입니다.
만일을 대비하여 위에서 간략하게 염두에 두었던 내용을 포함하여 더 명확하게 하기 위해 Documentation 섹션에서 발췌한 내용을 제공하겠습니다. Language Basics / Functions / Event Handling Functions :
... OnCalculate() 함수에 대한 마지막 호출 이후 가격 데이터가 변경된 경우(더 깊은 기록이 업로드되었거나 기록 간격이 채워진 경우) prev_calculated 입력 매개변수의 값은 터미널 자체에 의해 0으로 설정됩니다. .
아무것도 재설정할 필요가 없습니다.
prev_caclulated가 재설정되면 표시기가 완전히 다시 계산됩니다. 그리고 당연히 그렇습니다. 역사에서 정확히 무엇이 바뀌 었는지 모릅니다. 일부 구멍이로드되었거나 스터드가 어딘가에서 청소되었을 수 있습니다 ... 완전히 다시 계산하는 것이 필수적입니다. 다른 모든 경우에는 마지막 막대 하나만 다시 계산됩니다( 새 막대 가 나타나면 마지막 막대 2개).