Ошибки, баги, вопросы - страница 805

 
ilunga:
Так на предыдущей странице есть код, там массив из 3 элементов. При выводе Print-ами получаем, что Bid = 1.29709, а в bar_info[n-1] хранится 1.29220

А что вы об этом скажете?

//----------------------------------------------------------------------------//
//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:

А что вы об этом скажете?

Если это запускать из инита, то

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:

Если это запускать из инита, то

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:
То есть первая котировка глючит, остальные идут верно
Спасибо. Ошибку нашли, будем исправлять.
 

Подскажите, что означают нули перед запятой в столбце Проход.


 
У меня теперь вторая цифра пропала,остались одни нули.
 
tol64:

Подскажите, что означают нули перед запятой в столбце Проход.


Это номер поколения генетики. Там не только нули, после нулей идут 1, 2 и т.д.
 
marketeer:
Это номер поколения генетики. Там не только нули, после нулей идут 1, 2 и т.д.

Моя значит не размножается ? )))

Поколения идут,но в графе все равно одни нули.

 

 

Возможны ли эти добавления в MT5?

В   struct MqlTradeResult добавить время исполения ордера на стороне сервера.

И добавить возможность установки времени, при достижении которого, отложенный ордер становится активным для исполнения сервером. 

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