STARIJ : 날짜 시간 t; 먼저, 바에 대해. 새 막대 가 형성되면 새 값이 Time[0] - 막대가 열리는 시간 에 기록됩니다. OnCalculate(...) { if(시간[0] == t) return(0); // 이 BAR이 처리되면 --> 종료 t = 시간[0];
이제 역사 전반에 걸쳐: 속도가 느려질 것입니다.
빠른 응답에 감사합니다. 새 막대 가 나타날 때 속도가 느려지고 전체 기록을 실행하지 않고 단순히 새 막대를 처리하도록 하는 방법을 묻습니다...
이제 그것은 다음과 같이 구성됩니다: for(int i=limit-1; i>=0; i--) 그리고 제가 이해하는 바와 같이 이것은 각 막대가 열릴 때 기록 전체의 모든 값이 다시 계산된다는 것을 의미합니다 , 그리고 마지막 막대에서 작업만 하면 됩니다...
Rost17 :새 막대 가 나타날 때 속도가 느려지고 전체 기록을 실행하지 않고 단순히 새 막대를 처리하도록 하는 방법을 묻고 있습니다...
마지막 막대에서 계산하는 방법은 다음과 같습니다.
//| Bears Power |//+------------------------------------------------------------------+intOnCalculate (.....)
{
int limit=rates_total-prev_calculated; // Количество баров, которые будем считать = ВсегоБаров - РанееПросчитаноif (rates_total<=InpBearsPeriod) return ( 0 );
if (prev_calculated> 0 ) limit++; // Если давно считаем, то захватим и предыдущий бар для точностиfor ( int i= 0 ; i<limit; i++)
{
ExtTempBuffer[i]= iMA ( NULL , 0 ,InpBearsPeriod, 0 , MODE_EMA , PRICE_CLOSE ,i);
ExtBearsBuffer[i]=low[i]-ExtTempBuffer[i];
}
return (rates_total);
}
아하!!! 이제 이해하기 시작했습니다... 루프에서 변수 a가 1에서 6으로 변경됩니다. 이 변수 1, 5, 6의 값으로 작업이 없습니다. 그럼 그냥
또는 당신의 스타일로
결과는 동일하지만 더 빠릅니다.
이제 통계 기능을 제거해야 합니까? 본문을 연속으로 세 번 작성하고 세 부분 각각에서형식 매개변수 를 실제 매개변수로 바꾸고 변수 선언의 중복을 제거해야 합니다. 전체 코드는 약간 더 길어지지만 실행은 더 빨라집니다. print()를 버리는 것이 합리적입니다. 정확히 이 시간에 누가 메시지 로그를 볼 것입니까? - 또는 Alert()로 대체하여 화면에 팝업되도록 합니다. 변수 namZz2도 있습니다. 값이 변경됩니까?
반대로 통계를 남겨두고 stat()가 아닌 통계()에 배열을 열거해야 합니다. 어리석게도 말씀하신 대로 세 번 다시 쓸 수 있다는 것을 알고 있지만, 문제는 대부분 통계 수집 결과에 따라 배열을 더 추가해야 하고 조만간 원래 배열로 돌아가야 할 가능성이 높다는 것입니다. . 따라서 나는 구체적으로 작업에 대해 목소리를 내고, 당신은 내가 이미 알고 있는 간단한 방법을 제공합니다. 불행히도 그들은 나를 처음으로 이끌 것입니다. 따라서 앞으로는 이것으로 돌아 오지 않기를 기대합니다!
for ( int a= 1 ;a< 6 ;a++)
{
if (a== 2 ){Statistic(mZz2,namZz2);}
if (a== 3 ){Statistic(mZz3,namZz3);}
if (a== 4 ){Statistic(mZz4,namZz4);}
}
이 코드를 통계에 삽입하는 방법!? 하나의 절차였으니 처음에 제가 질문을 드렸으니 봐주세요!
매우 감사합니다! 아주 오래된 지표 소스가 있습니다. 매번 전체 기록을 다시 계산하지 않고 막대가 닫힌 후에만 작동하고 신호가 나타난 후에 막대에만 화살표를 놓도록 수정할 수 있습니까? 음, OnCalculate 를 사용하여 새로운 스타일로 ... 귀하의 시간 비용을 보상할 준비가 되었습니다... 동의한다면 어떻게 하는 것이 가장 좋을까요? 개인적으로 또는 어디로 보낼 수 있습니까?
안녕하세요!
표시기가 막대를 열 때만 작동하게 하고 모든 틱 에서는 작동하지 않게 하는 방법과 기록 전체에 걸쳐 매번(모든 새 막대에서) 실행되지 않도록 하는 방법을 알려주시겠습니까?
미리 감사드립니다.
로스티슬라프
먼저, 바에 대해. 새 막대 가 형성되면 새 값이 Time[0] - 막대가 열리는 시간 에 기록됩니다.
OnCalculate (...)
{
if(시간[0] == t) return(0); // 이 BAR이 처리되면 --> 종료
t = 시간[0];
이제 역사 전반에 걸쳐: 속도가 느려질 것입니다.
날짜 시간 t;
먼저, 바에 대해. 새 막대 가 형성되면 새 값이 Time[0] - 막대가 열리는 시간 에 기록됩니다.
OnCalculate(...)
{
if(시간[0] == t) return(0); // 이 BAR이 처리되면 --> 종료
t = 시간[0];
이제 역사 전반에 걸쳐: 속도가 느려질 것입니다.
빠른 응답에 감사합니다. 새 막대 가 나타날 때 속도가 느려지고 전체 기록을 실행하지 않고 단순히 새 막대를 처리하도록 하는 방법을 묻습니다...
이제 그것은 다음과 같이 구성됩니다: for(int i=limit-1; i>=0; i--) 그리고 제가 이해하는 바와 같이 이것은 각 막대가 열릴 때 기록 전체의 모든 값이 다시 계산된다는 것을 의미합니다 , 그리고 마지막 막대에서 작업만 하면 됩니다...
마지막 막대에서 계산하는 방법은 다음과 같습니다.
먼저 라인을 보자
명확하게 하기 위해 이렇게 다시 작성했습니다.
아하!!! 이제 이해하기 시작했습니다... 루프에서 변수 a가 1에서 6으로 변경됩니다. 이 변수 1, 5, 6의 값으로 작업이 없습니다. 그럼 그냥
또는 당신의 스타일로
결과는 동일하지만 더 빠릅니다.
이제 통계 기능을 제거해야 합니까? 본문을 연속으로 세 번 작성하고 세 부분 각각에서형식 매개변수 를 실제 매개변수로 바꾸고 변수 선언의 중복을 제거해야 합니다. 전체 코드는 약간 더 길어지지만 실행은 더 빨라집니다. print()를 버리는 것이 합리적입니다. 정확히 이 시간에 누가 메시지 로그를 볼 것입니까? - 또는 Alert()로 대체하여 화면에 팝업되도록 합니다. 변수 namZz2도 있습니다. 값이 변경됩니까?
반대로 통계를 남겨두고 stat()가 아닌 통계()에 배열을 열거해야 합니다. 어리석게도 말씀하신 대로 세 번 다시 쓸 수 있다는 것을 알고 있지만, 문제는 대부분 통계 수집 결과에 따라 배열을 더 추가해야 하고 조만간 원래 배열로 돌아가야 할 가능성이 높다는 것입니다. . 따라서 나는 구체적으로 작업에 대해 목소리를 내고, 당신은 내가 이미 알고 있는 간단한 방법을 제공합니다. 불행히도 그들은 나를 처음으로 이끌 것입니다. 따라서 앞으로는 이것으로 돌아 오지 않기를 기대합니다!
이 코드를 통계에 삽입하는 방법!? 하나의 절차였으니 처음에 제가 질문을 드렸으니 봐주세요!
마지막 막대에서 계산하는 방법은 다음과 같습니다.
다음은 작업 코드에서 발췌한 것입니다! 중간 void Stat 없이 하나의 void Statistic으로 이것을 수집하는 방법!? 당신이 제안한 바에 따르면, 모든 배열이 하나로 조립된 다음 거기에서 긁어낼 수 있도록 모든 코드를 다시 연마해야 합니다!
제공한 작업 코드에서 발췌한 내용이 올바르지 않거나 Statistic() 함수가 Stat()에서 호출될 때 인쇄만 수행합니다.
당신에게 그것은 반환 직후에 작업을 완료합니다. 그래도.
원하는 것을 명확히 하기 위해 완전한 코드를 제공하십시오.
메모. MQL4 초보자를 돕기에는 포럼에 너무 많은 스레드가 있습니다.
이 분기는 이제 더 이상 사용되지 않으며 닫힙니다 .
모든 질문은 다음 활성 지점으로 보내주십시오.
https://www.mql5.com/ru/forum/160683
https://www.mql5.com/ru/forum/160587
이 스레드의 모든 후속 게시물은 삭제됩니다.