iBarShift와 유사함 - 페이지 13

 
Nikolai Semko :

@Alain Verleyen의 내장 Bars 및 iBarShift 기능과 비교한 iBars 기능의 성능을 보여주는 표시기
함수 실행 시간(마이크로초)입니다.


코드 기반에서는 필요하지 않습니다. iBars() 및 iBarShift() 모두

 
Nikolai Semko :

iBars 기능이 매우 성가신 것으로 판명되었지만 MQ가 중단 버그를 수정할 때까지 일반 막대 대신 사용하는 것이 좋습니다.

이렇게 하면 속도를 높일 수도 있습니다.

start_time -= start_time % PeriodSeconds (timeframe);
TimeCur -= TimeCur % PeriodSeconds (timeframe);

iBar는 논리적으로 0을 반환해야 할 때 멈춥니다. 일반적으로 10초 이상 반환합니다. MQL4에는 그러한 버그가 없습니다.

여기 도전이 있습니다

 SeriesInfoInteger (symbol_name,timeframe, SERIES_LASTBAR_DATE )

제대로 작동하지 않습니다 - 히스토리가 교환되어서는 안 될 때 교환되도록 합니다. 따라서 브레이크(hcc 파일의 모양을 볼 수 있음).

 
Nikolai Semko :

@Alain Verleyen의 내장 Bars 및 iBarShift 기능과 비교한 iBars 기능의 성능을 보여주는 표시기
함수 실행 시간(마이크로초)입니다.

반복합니다. 성능은 수요가 있는 곳에서 측정해야 합니다. 즉, 최적화 프로그램입니다.

 
Artyom Trishkin :

여기서는 필요하지 않습니다 - 코드 기반에서. iBars() 및 iBarShift() 모두

네 저도 그렇습니다. 일단 테스트를 해보자.

 
fxsaber :

이렇게 하면 속도를 높일 수도 있습니다.

start_time 을 사용하면 맨 처음에 이미 구현되어 있지만 TimeCur를 사용하면 그렇습니다. 속도를 조금 높일 수 있습니다. 그럴게요. 고맙습니다.

그건 그렇고, 이것은 M1에서 D1까지만 적합합니다. W1은 3일 시프트해야 합니다. 1970-01-01은 목요일입니다. 그리고 MN1을 사용하면 일반적으로 탬버린이 필요합니다. 한 달은 28,29,30,31일이기 때문입니다.

여기 도전이 있습니다

제대로 작동하지 않습니다 - 히스토리가 교환되어서는 안 될 때 교환되도록 합니다. 따라서 브레이크(hcc 파일의 모양을 볼 수 있음).

이상하게도 나는 그런 행동을 관찰하지 못했습니다.

fxsaber :

반복합니다. 성능은 수요가 있는 곳에서 측정해야 합니다. 즉, 최적화 프로그램입니다.

최적화 프로그램이란 무엇을 의미합니까?

 
Nikolai Semko :

start_time 을 사용하면 처음부터 이미 구현되어 있습니다.

버그로 구현되었습니다. 예를 들어, M1 시작 시간 == D'12:00:05'입니다. 또한 정지 시간을 수행해야 합니다.

최적화 프로그램이란 무엇을 의미합니까?

테스터의 최적화 모드 .

 
fxsaber :

버그로 구현되었습니다. 예를 들어, M1 시작 시간 == D'12:00:05'입니다. 또한 정지 시간을 수행해야 합니다.

무엇이 잘못되었는지 설명해 주시겠습니까? 그리고 왜 시간뿐인데 날짜는 어디입니까?

막대와 iBar는 이 형식으로 0을 반환 합니다.

 
Nikolai Semko :

무엇이 잘못되었는지 설명해 주시겠습니까? 그리고 왜 시간뿐인데 날짜는 어디입니까?

날짜를 쓰기에는 너무 게으르다.

t=start_time-(start_time- 1 )%PerSec;

이 줄에서 start_time을 0이 아닌 1분의 초로 대체합니다.

 
fxsaber :

날짜를 쓰기에는 너무 게으르다.

이 줄에서 start_time을 0이 아닌 1분의 초로 대체합니다.

예, 모든 것이 좋습니다. 그것은 실수가 아니다. 그래야만 합니다.

다음 코드를 실행해 보세요.

   Print ( Bars ( _Symbol , PERIOD_M1 , D'2018.04.04 18:00:00' , UINT_MAX ));
   Print ( Bars ( _Symbol , PERIOD_M1 , D'2018.04.04 18:00:01' , UINT_MAX )); //результат на единицу меньше
 
Nikolai Semko :

예, 모든 것이 좋습니다. 그것은 실수가 아니다. 그래야만 합니다.

다음 코드를 실행해 보세요.

그렇다면 왜 Bars가 18:00:01이 18:00이 아니라 M1-bar 18:01에 속한다고 생각하는지 이해가 되지 않습니다.


그건 그렇고, TimeCurrent 는 SYMBOL_TIME으로 대체되어야 합니다.

사유: