오류, 버그, 질문 - 페이지 2995

 
   datetime a = D'2021.04.08 10:00:00' ;
   int       handle;
   double    Buffer[];
   

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit ()
{

   handle = iCustom ( _Symbol , PERIOD_CURRENT , "Examples\\ATR.ex5" , 14 );
   :: Print ( __FUNCTION__ + "| PERIOD_CURRENT = " , EnumToString ( _Period ));

   return ( INIT_SUCCEEDED );
}

//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate ( const int rates_total,
                 const int prev_calculated,
                 const datetime &time[],
                 const double &open[],
                 const double &high[],
                 const double &low[],
                 const double &close[],
                 const long &tick_volume[],
                 const long &volume[],
                 const int &spread[])
{

   if (handle != INVALID_HANDLE )
   {
      :: CopyBuffer (handle, 0 , a, 1 , Buffer);
      
       double BS = :: NormalizeDouble (Buffer[ 0 ], _Digits );
      
      :: Print ( __FUNCTION__ + "| a = " , a);
      :: Print ( __FUNCTION__ + "| BS " , BS);
      
      handle = INVALID_HANDLE ;
   }
   
   // return value of prev_calculated for next call
   return (rates_total);
}


이 코드가 몇 분 동안만 올바르게 작동하는 이유에 대해 대답할 수 있는 사람이 있습니까?

이것은 지표입니다.


추신

분을 제외한 다른 시간대에는 잘못된 값이 표시됩니다.

 
Francuz :


이 코드가 몇 분 동안만 올바르게 작동하는 이유에 대해 대답할 수 있는 사람이 있습니까?

이것은 지표입니다.

추신

분을 제외한 다른 시간대에는 잘못된 값이 표시됩니다.

prev_calculated = 0일 때 OnCalculate 를 처음 입력할 때 한 번만 반복하기 때문입니다. 이 시점에서 막대가 아직 형성되지 않았을 수 있습니다. 그리고 모든 TF는 1백만 개의 TF로 구성됩니다.
체크에 붙여넣기:

 if ( prev_calculated> 0 && handle != INVALID_HANDLE )

모든 것이 작동합니다.

 

두 개의 Expert Advisors 탭이 ME에 열려 있고 둘 다 저장되지 않은 변경 사항이 있습니다. 그 중 하나의 컴파일 버튼을 누르면 ME가 두 개의 Expert Advisors 모두에 변경 사항을 저장하는 것을 볼 수 있습니다. 무엇 때문에? 누가 그에게 그것에 대해 물었습니까?

ME가 컴파일하기 전에 링크된 파일의 변경 사항을 저장했다면 이것은 논리적인 동작이 될 것이고, 그렇지 않으면 .... 물론 이렇게 하면 훨씬 쉽죠. 왜 어떤 파일이 누구의 것인지 알아낼까요? - 열려 있는 모든 파일 을 저장하는 것이 훨씬 더 쉽고, 그것으로 끝내라. ...

 
Andrey Dik :
두 개의 Expert Advisors 탭이 ME에 열려 있고 둘 다 저장되지 않은 변경 사항이 있습니다. 그 중 하나의 컴파일 버튼을 누르면 ME가 두 개의 Expert Advisors 모두에 변경 사항을 저장하는 것을 볼 수 있습니다. 무엇 때문에? 누가 그에게 그것에 대해 물었습니까?
다른 방법은?
유일한 방법입니다.
모든 IDE가 이 작업을 수행합니다.
 
Nikolai Semko :
다른 방법은?
유일한 방법입니다.
모든 IDE가 이 작업을 수행합니다.

모두 사실입니까?

지금 VS에서 시도했지만 동작은 동일합니다. 그러나 가장 잘 알려진 제품의 어리석은 행동을 표준으로 간주해야 합니까? 그런 다음 VS의 모든 버그와 오해를 복사해 보겠습니다.

))

 
Andrey Dik :

모두 사실입니까?

지금 VS에서 시도했지만 동작은 동일합니다. 그러나 가장 잘 알려진 제품의 어리석은 행동을 표준으로 간주해야 합니까? 그런 다음 VS의 모든 버그와 오해를 복사해 보겠습니다.

))

저는 작년에 최소 9개의 다른 IDE를 사용했습니다. 어디서나 그렇습니다.
글쎄요, 한 파일에 서로의 변경 사항을 보지 못하는 여러 소유자가 있는 경우 얼마나 많은 문제가 있을 수 있는지 논리적으로 생각하십시오. 하나는 하나의 코드로 컴파일되고 다른 하나는 다른 코드로 컴파일된 경우 동일한 이름을 가진 두 개의 ex5 파일을 이미 생성해야 하는 식입니다.
 

그리고 내비게이터를 Market Watch 창과 같은 테이블 형태로 만들어 보는 것은 어떨까요? Market Watch, Respect에서 정렬이 구현되었습니다! -오랫동안 부탁을 받았습니다.

이제 우리의 새로운 꿈의 시대는 제목, 저자, 편집 날짜, 마지막 실행 날짜, 소스 가용성, 프로그램 유형과 같은 네비게이터의 콘텐츠를 표시하고 열을 기준으로 정렬하는 매우 멋진 편의 옵션에 대해 도래했습니다. 지금의 모습)

 
Nikolai Semko :
저는 작년에 최소 9개의 다른 IDE를 사용했습니다. 어디서나 그렇습니다.
글쎄요, 한 파일에 서로의 변경 사항을 보지 못하는 여러 소유자가 있는 경우 얼마나 많은 문제가 있을 수 있는지 논리적으로 생각하십시오. 하나는 하나의 코드로 컴파일되고 다른 하나는 다른 코드로 컴파일된 경우 동일한 이름을 가진 두 개의 ex5 파일을 이미 생성해야 하는 식입니다.

서로 다른 두 고문이 열려 있는데 그들 사이에 어떤 연결이 있을 수 있습니까? 올빼미에 포함된 포함 항목만 저장하면 되며 다른 사람이 이러한 포함 항목을 소유하는 것은 중요하지 않습니다.

예를 들어, 다른 *txt 파일이 열려 있고 저장되지 않은 경우 일반적으로 컴파일된 파일 및/또는 프로젝트 의 측면이 아닙니다. 왜 저장합니까? 그러나 아니요, 저장됩니다.

 
Nikolai Semko :

prev_calculated = 0일 때 OnCalculate 를 처음 입력할 때 한 번만 반복하기 때문입니다. 이 시점에서 막대가 아직 형성되지 않았을 수 있습니다. 그리고 모든 TF는 1백만 개의 TF로 구성됩니다.
체크에 붙여넣기:

모든 것이 작동합니다.

문제의 본질을 이해하지 못했습니다. 코드는 한 번만 작동해야 합니다. 그 임무는 호출 된 표시기가 작동하지 않는다는 것을 명확하게 보여주는 것입니다. 문제는 쓰기의 변형에서 호출된 표시기(및 호출하는 표시기)가 1분과 다른 TimeFrame을 갖는 경우 작동하지 않는다는 것입니다. 그리고 내가 알아낸 바와 같이 이것은 목발로만 우회할 수 있는 MetaTrader 캔트입니다. 그리고 이 문제는 이미 꽤 오래된 문제입니다. "이전 TF 123에서 표시기 데이터를 가져올 수 없습니다" 세부 정보를 읽을 수 있습니다.

Вопросы от начинающих MQL5 MT5 MetaTrader 5
Вопросы от начинающих MQL5 MT5 MetaTrader 5
  • 2012.03.12
  • www.mql5.com
Подскажите пожалуйста, такой показатель тестера в жизни реален? И хороший это или плохой результат за год с депо 3000...
 
Francuz :

문제의 본질을 이해하지 못했습니다. 코드는 한 번만 작동해야 합니다. 그 임무는 호출 된 표시기가 작동하지 않는다는 것을 명확하게 보여주는 것입니다. 문제는 쓰기의 변형에서 호출된 표시기(및 호출하는 표시기)가 1분과 다른 TimeFrame을 갖는 경우 작동하지 않는다는 것입니다. 그리고 내가 알아낸 바와 같이 이것은 목발로만 우회할 수 있는 MetaTrader 캔트입니다. 그리고 이 문제는 이미 꽤 오래된 문제입니다. "이전 TF 123에서 표시기 데이터를 가져올 수 없습니다" 세부 정보를 읽을 수 있습니다.

오래 전 일입니다. 문제는 오래전에 해결되었습니다. 2분에 한 번 이상 네이티브가 아닌 시간 프레임/심볼의 데이터에 액세스해야 합니다. 메인 루프에서 요청된 시간 프레임의 데이터가 아직 없으면 루프를 종료해야 합니다. 다음 틱을 기다리기 위해 0을 반환하고 동시에 표시기는 과거 데이터가 아직 계산되지 않았음을 알고 있습니다. .