Тестер МТ4 не отдает инфу с других тайм-фреймов - страница 3

 
sak120 03.04.2010 16:52

Данные со всех таймфреймов моделируются в тестере корректно (в режиме моделирования по всем тикам).

Как правильно решать проблему не знаю. Делаю так: ставлю время тестирования очень далеко, например, в 2000 год. В эксперте пишу

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

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


......

}
прикрепите пожа этот индюк у себя в тестере на ТФ!=1.
Может это только у меня глюки?
Любым способом..., но минутки у меня выдает текущие.
:(
Файлы:
invert.mq4  4 kb
 
avatara >>:

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

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

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

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

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

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

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

это лучший способ. И потом не стоит возвращатся к привычному.

Вы например уверены, что все ТФ успели обновится при приходе нового тика или смены минуты? которая совпала с началом часа?

Так вот криворуким считается если вы не сравнили iTime.

И думая, что они уже обновилися - сильно погорячились.

 
sak120 >>:

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

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

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

3 заклинание я уже слышал. Не верю. смотрите пост выше.

1-2 общеизвестно. Не заговаривайте тему.

 
avatara писал(а) >>

3 заклинание я уже слышал. Не верю. смотрите пост выше.

1-2 общеизвестно. Не заговаривайте тему.



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


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

 
т. е. не
1 --0M1 2008.12.11-19^45^0 1.3488 ?
А что за значение? 1,3488 это последний фактический бар у меня.
Можно, фрагмент файла глянуть?
 
vladv002 >>:

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


Просто Print в тесторе не работает, потому отладка в файл.

 
попробуйте использовать функцию ArrayCopyRates,
double arr1[][6];

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

соответственно вместо iClose(Symbol(),tf,0), надо писать arr1[0][4], - работает все чётко а главное на порядок быстрее т.к. не происходит никакого копирования а только перенаправление.