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

[삭제]  
ilunga :
따라서 이전 페이지에는 code 가 있고 3개의 요소로 구성된 배열이 있습니다. Print로 인쇄할 때 Bid = 1.29709이고 1.29220이 bar_info[n-1]에 저장됩니다.

그것에 대해 어떻게 말합니까?

 //----------------------------------------------------------------------------//
//Work variables
int ResCopy = - 1 ; //Result of copying the data into an array

datetime bar_info[ 5 ];

bool Result = true ; //Returned importance
//----------------------------------------------------------------------------//

ResetLastError ();

//Checking the signal to stopping the trading system
   if ( IsStopped ()) return ( false );
ZeroMemory (CheckResult);
//Copying the data into an array
ResCopy = CopyTime (symbol,period, 0 , ArraySize (bar_info),bar_info);

   if (ResCopy==- 1 ) return ( false ); 
//
   for ( int f= 0 ;f<ResCopy;f++)
  {
   Print ( "f=" ,f, "-" , TimeToString (bar_info[f]));
  }
//Checking for presence of the errors
   if ( _LastError != 0 ){Result = false ;}
 
Interesting :

그것에 대해 어떻게 말합니까?

이것이 init에서 실행된다면,

HS       0        test4 (GBPUSD,H1)       14 : 56 : 20          2012.01 . 01 00 : 00 : 00    f= 0 - 2011.12 . 26 00 : 00
PD       0        test4 (GBPUSD,H1)       14 : 56 : 20          2012.01 . 01 00 : 00 : 00    f= 1 - 2011.12 . 27 00 : 00
LN       0        test4 (GBPUSD,H1)       14 : 56 : 20          2012.01 . 01 00 : 00 : 00    f= 2 - 2011.12 . 28 00 : 00
DG       0        test4 (GBPUSD,H1)       14 : 56 : 20          2012.01 . 01 00 : 00 : 00    f= 3 - 2011.12 . 29 00 : 00
II       0        test4 (GBPUSD,H1)       14 : 56 : 20          2012.01 . 01 00 : 00 : 00    f= 4 - 2011.12 . 30 00 : 00

OnTick의 경우

DJ       0        test4 (GBPUSD,H1)       14 : 57 : 13          2012.01 . 02 09 : 00 : 00    f= 0 - 2011.12 . 27 00 : 00
JL       0        test4 (GBPUSD,H1)       14 : 57 : 13          2012.01 . 02 09 : 00 : 00    f= 1 - 2011.12 . 28 00 : 00
PE       0        test4 (GBPUSD,H1)       14 : 57 : 13          2012.01 . 02 09 : 00 : 00    f= 2 - 2011.12 . 29 00 : 00
OO       0        test4 (GBPUSD,H1)       14 : 57 : 13          2012.01 . 02 09 : 00 : 00    f= 3 - 2011.12 . 30 00 : 00
FP       0        test4 (GBPUSD,H1)       14 : 57 : 13          2012.01 . 02 09 : 00 : 00    f= 4 - 2012.01 . 02 00 : 00

데이터에서 이 부분에 공백이 있습니다(그림 참조). 그래도 다른 쌍에서 테스트할 때 비동기식 데이터 업데이트가 얻어졌다는 느낌이 여전히 듭니다.


 

그리고 있습니다.

Print 다음에 다른 줄을 추가하십시오.

 Print ( "Время последней котировки:" + TimeToString ( SymbolInfoInteger ( "EURUSD" , SYMBOL_TIME )));


OnTick에서 코드를 실행하면 다음을 얻습니다.

RK       0        test4 (GBPUSD,H1)       15 : 06 : 31          2012.01 . 02 09 : 00 : 00    f= 0 - 2011.12 . 27 00 : 00
LR       0        test4 (GBPUSD,H1)       15 : 06 : 31          2012.01 . 02 09 : 00 : 00    f= 1 - 2011.12 . 28 00 : 00
FD       0        test4 (GBPUSD,H1)       15 : 06 : 31          2012.01 . 02 09 : 00 : 00    f= 2 - 2011.12 . 29 00 : 00
EO       0        test4 (GBPUSD,H1)       15 : 06 : 31          2012.01 . 02 09 : 00 : 00    f= 3 - 2011.12 . 30 00 : 00
PQ       0        test4 (GBPUSD,H1)       15 : 06 : 31          2012.01 . 02 09 : 00 : 00    f= 4 - 2012.01 . 02 00 : 00
OI       0        test4 (GBPUSD,H1)       15 : 06 : 31          2012.01 . 02 09 : 00 : 00    Время последней котировки: 2011.12 . 30 20 : 59

즉, Copy...()에 대한 막대가 이미 있지만 아직 따옴표가 없습니다.



더 추가할 수 있습니다. OnTick에 내 첨가제와 함께 함수를 삽입합니다. 시작 지연을 설정합니다.

 if ( TimeCurrent () < D'2012.01.10 15:00' ) return ;

2012.01.01부터 테스트 시작

우리는 얻는다:

RO       0        test4 (GBPUSD,H1)       15 : 20 : 13          2012.01 . 10 15 : 00 : 00    f= 0 - 2012.01 . 04 00 : 00
JQ       0        test4 (GBPUSD,H1)       15 : 20 : 13          2012.01 . 10 15 : 00 : 00    f= 1 - 2012.01 . 05 00 : 00
RH       0        test4 (GBPUSD,H1)       15 : 20 : 13          2012.01 . 10 15 : 00 : 00    f= 2 - 2012.01 . 06 00 : 00
LR       0        test4 (GBPUSD,H1)       15 : 20 : 13          2012.01 . 10 15 : 00 : 00    f= 3 - 2012.01 . 09 00 : 00
QE       0        test4 (GBPUSD,H1)       15 : 20 : 13          2012.01 . 10 15 : 00 : 00    f= 4 - 2012.01 . 10 00 : 00
ON       0        test4 (GBPUSD,H1)       15 : 20 : 13          2012.01 . 10 15 : 00 : 00    Время последней котировки: 2011.12 . 30 20 : 59
LS       0        test4 (GBPUSD,H1)       15 : 20 : 13          2012.01 . 10 15 : 00 : 20    f= 0 - 2012.01 . 04 00 : 00
DE       0        test4 (GBPUSD,H1)       15 : 20 : 13          2012.01 . 10 15 : 00 : 20    f= 1 - 2012.01 . 05 00 : 00
LL       0        test4 (GBPUSD,H1)       15 : 20 : 13          2012.01 . 10 15 : 00 : 20    f= 2 - 2012.01 . 06 00 : 00
RF       0        test4 (GBPUSD,H1)       15 : 20 : 13          2012.01 . 10 15 : 00 : 20    f= 3 - 2012.01 . 09 00 : 00
KI       0        test4 (GBPUSD,H1)       15 : 20 : 13          2012.01 . 10 15 : 00 : 20    f= 4 - 2012.01 . 10 00 : 00
FR       0        test4 (GBPUSD,H1)       15 : 20 : 13          2012.01 . 10 15 : 00 : 20    Время последней котировки: 2012.01 . 10 15 : 00
FG       0        test4 (GBPUSD,H1)       15 : 20 : 13          2012.01 . 10 15 : 00 : 40    f= 0 - 2012.01 . 04 00 : 00
NN       0        test4 (GBPUSD,H1)       15 : 20 : 13          2012.01 . 10 15 : 00 : 40    f= 1 - 2012.01 . 05 00 : 00
FP       0        test4 (GBPUSD,H1)       15 : 20 : 13          2012.01 . 10 15 : 00 : 40    f= 2 - 2012.01 . 06 00 : 00
HK       0        test4 (GBPUSD,H1)       15 : 20 : 13          2012.01 . 10 15 : 00 : 40    f= 3 - 2012.01 . 09 00 : 00
EM       0        test4 (GBPUSD,H1)       15 : 20 : 13          2012.01 . 10 15 : 00 : 40    f= 4 - 2012.01 . 10 00 : 00
LE       0        test4 (GBPUSD,H1)       15 : 20 : 13          2012.01 . 10 15 : 00 : 40    Время последней котировки: 2012.01 . 10 15 : 00


즉, 첫 번째 인용문은 버그가 있고 나머지는 정확합니다.

[삭제]  
ilunga :

이것이 init에서 실행된다면,

HS       0        test4 (GBPUSD,H1)       14 : 56 : 20          2012.01 . 01 00 : 00 : 00    f= 0 - 2011.12 . 26 00 : 00
PD       0        test4 (GBPUSD,H1)       14 : 56 : 20          2012.01 . 01 00 : 00 : 00    f= 1 - 2011.12 . 27 00 : 00
LN       0        test4 (GBPUSD,H1)       14 : 56 : 20          2012.01 . 01 00 : 00 : 00    f= 2 - 2011.12 . 28 00 : 00
DG       0        test4 (GBPUSD,H1)       14 : 56 : 20          2012.01 . 01 00 : 00 : 00    f= 3 - 2011.12 . 29 00 : 00
II       0        test4 (GBPUSD,H1)       14 : 56 : 20          2012.01 . 01 00 : 00 : 00    f= 4 - 2011.12 . 30 00 : 00

이것은 이 경우 마지막 막대(현재 날짜에 가장 가까운)가 최대 인덱스를 가질 것이라는 사실에 관한 것입니다.

 
ilunga :
즉, 첫 번째 인용문은 버그가 있고 나머지는 정확합니다.
고맙습니다. 버그를 찾았습니다. 수정하겠습니다.
 

통과 열에서 쉼표 앞의 0이 의미하는 바를 알려주십시오.


 
이제 두 번째 숫자를 잃어버렸고 0만 남습니다.
 
tol64 :

통과 열에서 쉼표 앞의 0이 의미하는 바를 알려주십시오.


이것은 유전자의 세대 번호입니다. 0만 있는 것이 아니라 0 뒤에 1, 2 등이 있습니다.
 
marketeer :
이것은 유전자의 세대 번호입니다. 0만 있는 것이 아니라 0 뒤에 1, 2 등이 있습니다.

내 것은 재생산하지 않습니다? )))

세대는 계속되지만 그래프에는 여전히 0만 있습니다.

 

MT5에서 이러한 추가가 가능합니까?

struct MqlTradeResult 에서 서버 측에서 주문 실행 시간을 추가합니다.

그리고 시간을 설정하는 기능을 추가합니다. 이 시간에 도달하면 보류 중인 주문이 서버에서 실행되도록 활성화됩니다.

Документация по MQL5: Стандартные константы, перечисления и структуры / Структуры данных / Структура результата торгового запроса
Документация по MQL5: Стандартные константы, перечисления и структуры / Структуры данных / Структура результата торгового запроса
  • www.mql5.com
Стандартные константы, перечисления и структуры / Структуры данных / Структура результата торгового запроса - Документация по MQL5