[경고, 주제 닫힘!] 포럼을 어지럽히지 않도록 모든 초보자 질문. 프로, 놓치지 마세요. 당신 없이는 어디에도 없습니다. - 페이지 428

 
keekkenen >> :

이 구성은 if(Time[0]>iTime(0,1440,60)) 항상 true를 반환합니다. 왜냐하면 이 iTime(0,1440,60) 값은 Time[0]보다 왼쪽으로 60바가 됩니다.

테스트는 무엇을 보여줍니까?




문제 진술: 고문이 있고 마지막에 최적화하려는 욕구가 있습니다. 예를 들어 전략 테스터의 40개 막대(60개는 스레드 참조)입니다.

if(시간[0]>iTime(0,1440,60))

시간(시뮬레이션)이 매일의 60번째 막대의 여는 시간보다 길어지면 함수를 실행하면 됩니다.

 
네, 그렇다면 EA가 테스트를 시작해야 하는 시간을 미리 결정해야 합니다.
그가 그것을 완료해야 할 때를 알고 있으므로 다음을 수행하십시오.

테스트가 2010.02.10 0:00에 종료된다고 가정해 보겠습니다.


아래 코드에서 스크립트 만들기

 #property show_inputs
// время окончания тестировани						
extern string 		endTestTime 		= "2010.02.10 0:00" ;
// название пары
extern string		symbolTest			= "" ;
// период на котором ищем нужное время по номеру testBarCount бара относительно времени endTestTime
extern int 			periodTest		   = 0 ;
// количество баров в прошлое относительно времени endTestTime
extern int 			testBarCount 		= 60 ;

int init ( ) {
	if ( symbolTest = = "" ) symbolTest = Symbol ( ) ;
	// искомое время
	Print ( TimeToStr ( iTime ( symbolTest , periodTest ,	iBarShift ( symbolTest , periodTest , StrToTime ( endTestTime ) ) + testBarCount ) ) ) ;
}
 

이 스크립트를 사용하면 어드바이저를 테스트해야 하는 시간을 찾을 수 있습니다..

EA에서 몇 가지 변수 설정

 extern string startTime = "" ;
extern string endTime = "" ;

int StartTime = StrToTime ( startTime ) , EndTime = StrToTime ( endTime ) ;

if ( Time [ 0 ] < StartTime | | Time [ 0 ] > EndTime ) return ( 0 ) ;
 

이 스크립트를 사용하면 어드바이저를 테스트해야 하는 시간을 찾을 수 있습니다..

EA에서 몇 가지 변수 설정

 extern string startTime = "" ;
extern string endTime = "" ;

int StartTime = StrToTime ( startTime ) , EndTime = StrToTime ( endTime ) ;

if ( Time [ 0 ] < StartTime | | Time [ 0 ] > EndTime ) return ( 0 ) ;
startTime에는 스크립트가 수신한 시간을 입력하고 endTime에는 스크립트의 endTestTime 변수에 입력한 시간을 입력합니다.
 
costy_ >> :

문제 진술: 고문이 있고 마지막에 최적화하려는 욕구가 있습니다. 예를 들어 전략 테스터의 40개 막대(60개는 스레드 참조)입니다.

if(시간[0]>iTime(0,1440,60))

시간(시뮬레이션)이 매일의 60번째 막대의 여는 시간보다 길어지면 함수를 실행하면 됩니다.

따라서 60번째 마디도 변조된 0번째 마디에 상대적으로 변조됩니다.

 

문제에 대한 설명: 고문이 있고 마지막에 최적화하려는 욕구가 있습니다. 예를 들어 현재 시간을 기준으로전략 테스터 의 막대 40개 . 이 40개의 막대는 매시간, 4시간, 매일 또는 기타 시간대가 될 수 있습니다. 전략 테스터 작동: 테스터 패널에 작동 기간이 표시됩니다. 작동 시간을 설정하는 이 방법은 위에서 설정한 작업(40개 막대에 대한 테스트)을 수행하지 않습니다. 즉, 코드를 실행할 때 테스터가 테스트 시간(기능이 만족스럽지 않음)을 결정하는 것이 아니라 코드 자체 가 코드를 실행하도록 Expert Advisor를 변경해야 합니다.

테스터의 경우 N 막대 전의 시간이 현재 시간이기 때문에 귀하의 제안은 작동하지 않습니다.


T.K.

현재 시간에 대해 테스터는 지정된 막대의 여는 시간(뒤로)을 현재 시간부터 계산합니다. 저것들. 다시 문제를 해결하지 않습니다. 테스터의 현재 시간이 아니라 오늘(일시적) 막대로부터 N 막대 전이어야 합니다.


제가 제대로 이해했나요.

 
keekkenen >> :
допустим тестирование заканчивается 2010.02.10 0:00


아래 코드에서 스크립트 만들기

대본은 좋은데!! 나중에 테스터 패널에서 "채점"해야 하는 시간 값을 제공합니다. 이것은 그리 많지 않습니다 ... 그러나 작은 시간 프레임과 소수의 바로에서는 날짜가 테스터에 표시되고 그 이상은 없기 때문에 테스터에서 "채점"하는 것이 불가능할 정도로 시간이 표시됩니다. 그리고 테스트는 시작일 00:00부터 종료일 00:00까지 진행됩니다. 그리고 시간, 특히 분 단위는 지정할 수 없습니다 !!!!

 

테스터는 자신의 시간에 살고 우리와 실제 인용문은 다른 시간에 살고 이 시간 공간은 우리의 상상 속에서만 교차한다는 단순한 이유 때문에 아주 좋지 않은 일을 받아들이게 될 것입니다..


테스터에 정확한 시간을 입력할 수 없어도 됩니다. 오늘 시작일이나 시작시간 전날로 설정하세요. - 이미 비용입니다..


이 코드 조각은 필요한 최적화 시작 시간(매개변수에서 설정한 시간)과 최적화 종료 시간 이후에 추가 시간을 차단합니다.

 if ( Time [ 0 ] < StartTime | | Time [ 0 ] > EndTime ) return ( 0 ) ;
 

그림 ind를보십시오. 요전날 60바의 오프셋으로만 그리기 시작했습니다. 아래는 코드의 일부입니다. 당신이 추천한 것을 시도해 보셨습니까? 시도하면 괜찮을 것입니다.

 int start ( )    {
double stoch1 , stoch2 ;
   int pos = Bars - IndicatorCounted ( ) ;   
//----

if ( Time [ 0 ] > iTime ( 0 , 1440 , 60 ) ) 
   for ( int b = 0 ; b < = pos ; b + + )
   {     
 
keekkenen >> :

이 코드 조각은 필요한 최적화 시작 시간(매개변수에서 설정한 시간)과 최적화 종료 시간 이후에 추가 시간을 차단합니다.

나는 고문이 데이터를 위해 스크립트에 연락할 것이라는 것을 이해합니다. 백 바는 스크립트에서 설정되어야 합니다.

그리고! 죄송합니다. 스크립트의 전체 코드를 게시할 수 있습니까? 부끄럽게도 MQL과 함께 일한 1년 반 동안 스크립트를 작성한 적이 없습니다.