초보자의 질문 MQL5 MT5 MetaTrader 5 - 페이지 1468

 

rates_total과 prev_calculated가 결국 무엇을 의미하는지 이해할 수 없습니다.

설명서에 따르면 첫 번째 매개변수 rates_total은 인디케이터에서 계산에 사용할 수 있는 막대 수를 포함하며 차트에서 사용할 수 있는 막대 수에 해당합니다.

예를 들어 MA5, 5개의 막대 평균은 100개의 막대를 표시하도록 설정합니다. 그러면 인디케이터는 104번째 막대에서 100번째 막대까지 계산하고 100번째 막대에서부터 선을 그리기 시작합니다. 그러면 rates_total=5, 100 또는 104?

 
Novichokkk 수를 포함하며 차트에서 사용할 수 있는 막대 수에 해당합니다.

예를 들어 MA5, 5개의 막대 평균은 100개의 막대를 표시하도록 설정합니다. 그러면 인디케이터는 104번째 막대에서 100번째 막대까지 계산하고 100번째 막대부터 선을 그리기 시작합니다. 그러면 rates_total=5, 100 또는 104?

요금_총계는 계산에 사용할 수 있는 차트의 막대 수입니다. 즉, Bars() 입니다.

prev_calculated는 인디케이터가 이전 OnCalculate() 호출에서 계산한 막대 수입니다. 경제적인 계산을 구성하는 데 필요합니다.

prev_calculated가 rates_total과 같으면 아직 계산된 것이 없음을 의미하며 인디케이터 버퍼를 초기화하고 전체 기록에 대한 전체 계산을 수행해야 합니다.

일반적으로 다음과 같은 구성을 사용할 수 있습니다:

//--- Проверка и расчёт количества просчитываемых баров
   int limit=rates_total-prev_calculated;
   if(limit>1)
     {
      // Присваиваем limit значение количества доступных баров-1
      limit=rates_total-1;
      // Вот тут нужно инициализировать все буферы пустыми значениями
      ArrayInitialize(Buffer0,EMPTY_VALUE);
      ArrayInitialize(Buffer1,0);
      ArrayInitialize(Buffer2,clrNONE);
      // ... и т.д.
     }
//--- Экономный просчёт индикатора
   for(int i=limit;i>=0;i--)
     {
      Buffer0[i]=(/*что-то там*/);
     }
 
Artyom Trishkin #:

rates_total은 계산에 사용할 수 있는 차트 막대의 수입니다. 즉, Bars() 입니다.

prev_calculated는 인디케이터가 이전 OnCalculate() 호출에서 계산한 막대 수입니다. 경제적인 계산을 구성하는 것이 필요합니다.

prev_calculated가 rates_total과 같으면 아직 계산된 것이 없음을 의미하며 인디케이터 버퍼를 초기화하고 전체 기록에 대한 전체 계산을 수행해야 합니다.

일반적으로 다음과 같은 구성을 사용할 수 있습니다:

rates_total - Bars() 대신 다음과 같이 작성하면 어떨까요?

int limit=Bars()-prev_calculated;

물론 제가 좀 느려서 죄송합니다. MKL5에 관한 여러 서적과 문서를 살펴보고 있습니다. 모든 뉘앙스가 설명되어 있지는 않습니다. 책에도 없습니다. 책에 나오는 언어와는 별도로 명확합니다. 구조가 조립되는 방법-캡, 어디에서 무엇을 위해 무엇을 위해.... 나는 그것에 들어가고 있습니다. 많은 확인과 재확인. 간단한 마쉬키 코드를 열었는데 너무 많은 줄이 있습니다. 그리고 배열을 언로드 (또는 액세스)하고 배열의 이러한 인덱스에서 이러한 인덱스까지 하나의 값을 계산하고 배열에서 이러한 계산이 어디에서 어디까지 인덱스로 표시되는 슬라이딩 창을 통과하는 것만 필요한 것 같았습니다. 예를 선택하면 화면에 줄이 표시됩니다. 아니요.
 
Novichokkk #:

rates_total 대신 Bars()를 작성하는 것은 어떨까요?

물론 제가 좀 느려서 죄송합니다. MKL5에 관한 여러 서적과 문서를 살펴보고 있습니다. 모든 뉘앙스가 설명되어 있지는 않습니다. 책에서도요. 책에서 언어에 대해 별도로 명확합니다. 구조가 조립되는 방법-캡, 어디에서 무엇을 위해 무엇을 위해.... 나는 그것에 들어가고 있습니다. 많은 확인과 재확인. 간단한 마쉬키 코드를 열었는데 너무 많은 줄이 있습니다. 그리고 배열을 언로드 (또는 액세스)하고 배열의 이러한 인덱스에서 이러한 인덱스까지 하나의 값을 계산하고 배열에서 이러한 계산이 어디에서 어디까지 인덱스로 표시되는 슬라이딩 창을 통과하는 것만 필요한 것 같았습니다. 예를 선택하면 화면에 줄이 표시됩니다. 그리고 아니오.

이러한 구조도 사용할 수 있습니다. 하지만 왜 그럴까요? 핸들러의 매개변수에 이미 사전 정의된 변수가 있는 경우...

Bars()는 다른 기호/타임스탬프로 사용 가능한 막대 수를 가져올 때와 같이 정말 필요할 때 사용해야 합니다.

 
Artyom Trishkin #:

이 디자인도 사용할 수 있습니다. 하지만 왜 그럴까요? 핸들러의 매개 변수에 이미 사전 정의된 변수가 있는 경우...

Bars()는 다른 심볼/시간대별로 사용 가능한 막대 수를 가져올 때와 같이 정말 필요할 때 사용해야 합니다.

아티옴, 가끔은 누구나 지쳐서 실수를 할 수 있습니다. 비판이라고 생각하지 마세요. rates_total - Bars()는 항상 0이 됩니다...

일반적으로 이 캐릭터에 대해 설명하기는 매우 어렵습니다. 사용의 희생자...

 
Alexey Viktorov #:

아티옴, 가끔은 누구나 지쳐서 실수를 하기도 해요. 비판이라고 생각하지 마세요. rates_total - Bars()는 항상 0입니다...

일반적으로이 캐릭터에 대해 설명하기가 매우 어렵습니다. 사용의 희생자 ...

네, 맞습니다. 누군가가 그렇게 계산할 것이라고는 생각하지 못했습니다. 계산에서 막대를 보고 요금_총액 대신에 막대라고 생각했습니다.

그럴 수도 있죠, 감사합니다.

 
Artyom Trishkin #:
//--- Проверка и расчёт количества просчитываемых баров
   int limit=rates_total-prev_calculated;
   if(limit>1)
     {
      // Присваиваем limit значение количества доступных баров-1
      limit=rates_total-1;
      // Вот тут нужно инициализировать все буферы пустыми значениями
      ArrayInitialize(Buffer0,EMPTY_VALUE);
      ArrayInitialize(Buffer1,0);
      ArrayInitialize(Buffer2,clrNONE);
      // ... и т.д.
     }
//--- Экономный просчёт индикатора
   for(int i=limit;i>=0;i--)
     {
      Buffer0[i]=(/*что-то там*/);
     }

그 사람을 돕고 싶었던 마음은 이해하지만 실수로 혼동만 일으킨 것 같습니다.

이 경우의 경제적 계산 착오는 조금 다르게 보입니다.

for(int i=limit;i<rates_total;i++)
 
Aleksandr Slavskii #:

그 사람을 돕고 싶었지만 실수로 혼동한 것 같다는 점은 이해합니다.

이 경우의 경제적 계산은 조금 다르게 보입니다.

제가 뭘 잘못 썼다고 생각하시나요? 정당화해 주세요.

저와 여러분의 예에서 한계는 무엇이며 루프는 어디에서 발생하나요?

 
Novichokkk #:

rates_total 대신 Bars()를 작성하는 것은 어떨까요?

본질적으로 rates_total과 Bars() 동일하며, Bars()만 함수이므로 이 함수를 호출하면 rates_total 변수 값을 읽는 것보다 실행 시간 측면에서 더 많은 비용이 듭니다.

 
Artyom Trishkin #:

제가 뭘 잘못 썼다고 생각하시나요? 정정해 주세요.

저와 여러분의 예시에서 한계는 무엇이며 루프가 어디에서 오는지 설명해 주세요.

죄송합니다))))))

제대로 보지 못했습니다.

if(limit>1)

작성한 내용을 전혀 읽지 못했습니다.

사과드립니다.

사유: