OnCalculate() 함수는 Calculate 이벤트로 표시기 값을 계산해야 하는 경우 사용자 정의 표시기에서만 호출됩니다.
이것은 일반적으로 지표가 계산되는 기호에 대해 새 틱이 수신될 때 발생합니다.
이 표시기는 이 기호의 가격 차트에 첨부할 필요가 없습니다.
OnCalculate() 함수는 반환 유형이 int여야 합니다. 두 가지 가능한 정의가 있습니다. 하나의 지표 내에서 두 버전의 기능을 모두 사용할 수는 없습니다.
첫 번째 형식은 단일 데이터 버퍼에서 계산할 수 있는 지표를 위한 것입니다. 이러한 지표의 예는 사용자 정의 이동 평균입니다.
정수OnCalculate(constintRates_total,// price[] 배열의 크기 상수intprev_calculated,// 이전 호출에서 처리된 막대 상수intbegin,// 중요한 데이터가 시작되는 위치 상수double& price[]// 계산할 배열 );
OnCalculate() 함수는 Calculate 이벤트로 표시기 값을 계산해야 하는 경우 사용자 정의 표시기에서만 호출됩니다.
이것은 일반적으로 지표가 계산되는 기호에 대해 새 틱이 수신될 때 발생합니다.
이 표시기는 이 기호의 가격 차트에 첨부할 필요가 없습니다.
OnCalculate() 함수는 반환 유형이 int여야 합니다. 두 가지 가능한 정의가 있습니다. 하나의 지표 내에서 두 버전의 기능을 모두 사용할 수는 없습니다.
첫 번째 형식은 단일 데이터 버퍼에서 계산할 수 있는 지표를 위한 것입니다. 이러한 지표의 예는 사용자 정의 이동 평균입니다.
정수OnCalculate(constintRates_total,// price[] 배열의 크기 상수intprev_calculated,// 이전 호출에서 처리된 막대 상수intbegin,// 중요한 데이터가 시작되는 위치 상수double& price[]// 계산할 배열 );
string counts;
void _a()
{
counts += "a - " + IntegerToString ( ObjectsTotal ( OBJ_ARROW ) );
//---return ;
}
void _b()
{
counts += " - b - " + IntegerToString ( ObjectsTotal ( OBJ_ARROW ) );
//---return ;
}
Print ( counts );
// while 1st loop: a - 2 - b - 4// while 2nd loop: a - 2 - b - 4a - 2 - b - 4// while 3rd loop: a - 2 - b - 4a - 2 - b - 4a - 2 - b - 4a - 2 - b - 4// and so on...// But I like only 1st loop results even that loop runs 10 thousand times
OnCalculate
OnCalculate() 함수는 Calculate 이벤트로 표시기 값을 계산해야 하는 경우 사용자 정의 표시기에서만 호출됩니다.
이것은 일반적으로 지표가 계산되는 기호에 대해 새 틱이 수신될 때 발생합니다.
이 표시기는 이 기호의 가격 차트에 첨부할 필요가 없습니다.
OnCalculate() 함수는 반환 유형이 int여야 합니다. 두 가지 가능한 정의가 있습니다. 하나의 지표 내에서 두 버전의 기능을 모두 사용할 수는 없습니다.
첫 번째 형식은 단일 데이터 버퍼에서 계산할 수 있는 지표를 위한 것입니다. 이러한 지표의 예는 사용자 정의 이동 평균입니다.
정수 OnCalculate ( const int Rates_total, // price[] 배열의 크기
상수 int prev_calculated, // 이전 호출에서 처리된 막대
상수 int begin, // 중요한 데이터가 시작되는 위치
상수 double & price[] // 계산할 배열
);
OnCalculate
OnCalculate() 함수는 Calculate 이벤트로 표시기 값을 계산해야 하는 경우 사용자 정의 표시기에서만 호출됩니다.
이것은 일반적으로 지표가 계산되는 기호에 대해 새 틱이 수신될 때 발생합니다.
이 표시기는 이 기호의 가격 차트에 첨부할 필요가 없습니다.
OnCalculate() 함수는 반환 유형이 int여야 합니다. 두 가지 가능한 정의가 있습니다. 하나의 지표 내에서 두 버전의 기능을 모두 사용할 수는 없습니다.
첫 번째 형식은 단일 데이터 버퍼에서 계산할 수 있는 지표를 위한 것입니다. 이러한 지표의 예는 사용자 정의 이동 평균입니다.
정수 OnCalculate ( const int Rates_total, // price[] 배열의 크기
상수 int prev_calculated, // 이전 호출에서 처리된 막대
상수 int begin, // 중요한 데이터가 시작되는 위치
상수 double & price[] // 계산할 배열
);
(저는 "지연"이라는 단어를 사용합니다. 이는 가격 조치 지연, 주문 열기, 닫기를 의미하며, 한 단어만 내 MT4 플랫폼을 중단시킵니다)
내 사용자 지정 표시기 에 대해 아래 기능을 사용합니다.
내 사용자 지정 표시기 에 반환 코드를 아래에 작성하면 내 사용자 지정 표시기가 지연되기 시작합니다. 그러나 내가 원하는 것은 올바르게 작동합니다.
그리고 아래에 내 사용자 지정 표시기에 반환 코드를 작성하면 내 사용자 지정 표시기가 내가 원하는 대로 올바르게 작동하지 않습니다. 가짜 MA 크로스 " Arrow "는 이전 MA 크로스 포인트로 돌아가지 않습니다.
Q: 이 상황에 대해 무엇을 할 수 있습니까?
미리 감사드립니다.
여기 있습니다.
미리 감사드립니다.
확인! 감사해요!
아직 더 명확한 답변이 필요합니다.
미리 감사드립니다.
답은 다음과 같습니다. 현재 MA 교차와 이전 MA 교차를 모두 확인하십시오 .
#Buffer( 배열이 범위 를 벗어남 ) - 닫힘
#커스텀 인디케이터 지연 - 폐쇄
# 루프의 첫 번째 결과 - 열기
미리 감사드립니다.