MT4 tester does not give information from other timeframes - page 3

 
sak120 03.04.2010 16:52

Data from all timeframes is modelled correctly in the tester (in simulation mode on all ticks).

I don't know how to solve the problem correctly. I do the following: I set the testing time very far away, for example in 2000. I write in the Expert Advisor

extern datetime test_start=D'2010.01.01 00:00';

int start()
{
if (Time[0]<test_start) return(0);


......

}
attach fire this induke in your tester on TF!=1.
Maybe it's only me who has glitches?
Any way... but my minutes are giving out the current ones.
:(
Files:
invert.mq4  4 kb
 
avatara >>:

Моделировать бары.

So far it is clear that to check moreover to carry out the optimization of the Expert Advisor in which there is a reference to the (neighbouring)
TFs is not possible.
Modeling - as a variant, it is realistic to write a function that takes data of necessary attributes in arrays
The function where the data of needed axes are taken and addressed to them instead of native functions. But it is a lot of fuss and we will have to rewrite all the references
to normal functions. But it looks like there are few options....
Perhaps someone has already done similar things, I'm not the only one who's been bothered by them. Maybe someone has found such debugging modules,
which would take TFs to an array and then refer to them with MINIMUM of rework of real code.

 
avatara писал(а) >>
sak120 03.04.2010 16:52
attach fire this induke in your tester on TF!=1.
Maybe it's only me who has glitches?
Any way..., but I'm getting current minutes.
:(

1. You have a file job there - in your tester the file job is in a different directory.

2. If there are only 1000 bars at the beginning, not all indicators are counted correctly at the very first moment, accumulate enough history.

3. All timeframes are generated correctly.
 
vladv002 >>:

Пока ясно что проверить тем более провести оптимизацию эксперта в коем есть обращение к (соседним)
ТФ нет никакой возможности.
Моделировать - как вариант для частого случая реально, написать функцию в которой в массивы забрать данные
нужных ТФ и к ним обращаться а не к родным функциям. Только много возни, потом переписывать все обращения
к нормальным фукциям. Но похоже вариантов немного....
Возможно уже ктото подобное делал, не меня же одного это достает. Может кто встречал подобные отладочные модули,
где бы ТФ забирались в массив и потом к ним оьращатся с МИНИМУМОМ переделок реального кода.

is the best way. And then you don't have to go back to what you're used to.

For example, are you sure that all TFs have time to update at the arrival of a new tick or minute change that coincided with the start of the hour?

So it is considered crooked if you have not compared iTime.

And thinking that they have already updated, you are very wrong.

 
sak120 >>:

1. У вас там работа с файлами - в тестере работа с файлами происходит в другой директории.

2. Если есть всего 1000 баров в самом начале, то не все индикаторы считаются правильно в самый первый момент, накопите достаточно истории.

3. Все таймфремы генерируются корректно.

3 spell I've heard before. I don't believe it. see the post above.

1-2 is common knowledge. Don't broach the subject.

 
avatara писал(а) >>

3 spell I've heard before. I don't believe it. see the post above.

1-2 is common knowledge. Don't broach the subject.



I'm counting fine.
 
avatara >>:
sak120 03.04.2010 16:52
прикрепите пожа этот индюк у себя в тестере на ТФ!=1.
Может это только у меня глюки?
Любым способом..., но минутки у меня выдает текущие.
:(


A realistic idea, I'll try it, I'm afraid that even my computer with 4gb RAM will be slow with such frequent access
I'll try it though, I think it will be more original if I use an array.
Thanks for the bright idea, I will try your suggested code and let me know the result.

 
i.e. not.
1 --0M1 2008.12.11-19^45^0 1.3488 ?
What's the value? 1.3488 is the last actual bar I have.
Can I see a fragment of the file?
 
vladv002 >>:

Реальная мысль, буду пробовать, боюсь что даже мой комп с 4гб оперативы будет тормозить при таком частом обращении
к файлам, хотя надо проверить, но думаю в массив будет оригинальней.
Спасибо за дельную мысль, попробую Вами предложенный код, результат сообщу.


Just Print in the batter doesn't work, hence the debugging to file.

 
try to use ArrayCopyRates function,
double arr1[][6];

int init()
  {
   ArrayCopyRates(arr1,Symbol(), tf); // tf - необходимый таймфрейм
   return(0);
  }

respectively, instead of iClose(Symbol(),tf,0), you should write arr1[0][4], - it works fine and most importantly much faster, because there is no copying but only redirection.
Reason: