기고글 토론 ""New Bar" 이벤트 핸들러" - 페이지 3

 
laplacianlab:

좋은 글, 공유해 주셔서 감사합니다! 모든 것이 매우 유용했습니다!

어쨌든, isNewBar 함수를 사용했는데 컴파일할 때 다음과 같은 메시지가 표시됩니다:" 유형 변환으로 인한데이터 손실 가능성 ".

그래서 저는 이런 식으로 var 유형을 날짜/시간에서 길게 변경했습니다:

이제 아무 문제 없이 컴파일되고 정상적으로 작동하는 것 같습니다. 감사합니다!


이렇게 변경하는 것이 더 명확할 것 같습니다:

   datetime lastbar_time=(datetime)SeriesInfoInteger(Symbol(),Period(),SERIES_LASTBAR_DATE);
 

새 열 줄을 요청하는 첫 번째 방법에서 새 열의 수를 1로 직접 할당하는 방법을 이해하지 못합니다. 조언 부탁드립니다;

 //--- 새 열 줄이 있는지 확인합니다.
   if(m_lastbar_time<newbar_time)       
     { 
      m_new_bars=1;               // 새 열 줄 수
      m_lastbar_time=newbar_time; // 마지막 바 시간 기억하기
      return(true);
     }
   //--- //--- 새 열 줄이 있는지 확인합니다.
   if(m_lastbar_time<newbar_time)       
     { 
      m_new_bars=1;               // 새 열 줄 수
      m_lastbar_time=newbar_time; // 마지막 바 시간 기억하기
      return(true);
     }
   //---
 

객체 모델링 규칙에 따르면 CIsNewBar라고 부르는 것은 잘못된 이름입니다.

자동차가 클래스인 경우 자동차 객체를 생성하거나 소유할 수 있습니다. 그러나 내 클래스가 "ÉUmCarroNovo"라면 우리는 "ÉUmCarroNovo"를 소유하거나 가질 수 있습니다.

작성자는 이를 CNewBarChecker라고 불렀어야 합니다. 누군가가 새 차 검사기를 발명하여 만들 수 있습니다(우리 클래스는 NewCarChecker가 될 것입니다.

 
시간을 사용하지 않고 막대를 사용합니다.
 
이 기사에는 많은 코드 변형이 있지만 결국에는 테스터가 거래로 그리는 것의 대응을 조금이라도 높이기 위해 MT4에서 어떤 기능을 사용하는 것이 더 정확한지 여전히 명확하지 않습니다. 힌트를 주세요!
 
Pavel Komarovsky:
이 기사에는 많은 코드 변형이 있지만 결국에는 테스터가 거래로 그리는 것의 대응을 조금이라도 높이기 위해 MT4에서 어떤 기능을 사용하는 것이 더 정확한지 여전히 명확하지 않습니다. 힌트를 주세요!
datetime counted_bar = 0;

int OnInit()
{
   counted_bar = 0; // 재시작 시 마지막 막대를 분석하려는 경우
   ...

void OnTick()
{
   // 새 막대가 있는 경우
   if ( iTime( _Symbol, _Period, 0 ) > counted_bar )
   {
      counted_bar = iTime( _Symbol, _Period, 0 );

      // 지표 분석
      ...
   }
 
Andrey Khatimlianskii:

안드레이, 감사합니다. 이전에는 모든 기능과 예제에서 대부분이 iBar를 기반으로했던 것으로 기억하는데 지금 iTime이 사용되는 이유를 알려주세요.

iTime이 더 정확하게 작동하나요?

 
Pavel Komarovsky:

안드레이, 감사합니다. 이전에는 모든 기능과 예제에서 대부분이 iBar를 기반으로했던 것으로 기억하는데 지금 iTime이 사용되는 이유를 알려주세요.

iTime이 더 정확하게 작동합니까?

이 목적으로 iBars를 사용해 본 적이 없어서 잘 모르겠습니다.
 
이 예제에서 시계열 데이터를 가져올 수 없는 이유가 궁금합니다. Copy... 는 항상 -1이고 Bars()는 항상 0입니다. 즉, 클래스에서 데이터에 액세스 할 수 없습니다.
 

이 문서는 댓글과 공동 작업, 버그 수정 등 MQL5 프로그래밍 수업에서도 사용될 정도로 훌륭한 글입니다. 여러분 모두에게 축하드립니다.