Внутренняя жизнь пользовательского индикатора
Добавлено: Вс июн 21, 2009 12:57 pm
Здравствуйте, уважаемый Терранин и обитатели форума!
Создал я тестовый индикатор, который пишет в лог каждый тик, подаваемый на вход Calculete(). При этом каждый запускаемый экземпляр пишет в свой лог-файл, который создается при вызове Init() и закрывается при вызове Done(). Позапускал его в режиме тестирования и возникли у меня следующие вопросы:
1. При запуске программы, даже если не открыто ни одного окна с графиком, создается один экземпляр индикатора (вызывается Init()), затем он разрушается (Done()) и создается второй экземпляр. В процессе работы, если создать окно с графиком, добавить индикатор, закрыть окно, и повторить эту процедуру несколько раз, создается множество экземпляров индикаторов (хотя таймфрейм и инструмент создаваемых окон один и тот же). Как можно объяснить такое поведение и нет ли "утечки" индикаторов в FT?
2. Функция OnChangeParams() иногда вызывается дважды при старте, однако если остановить тестирование и начать его заново - она не вызывается. Т.е. индикатор переносят назад во времени без уведомления его об этом. Корректно ли это?
3. Взял историю EURUSD с Вашего сайта, испортировал, сгенерил тики по методу open-high-low-close. Однако наблюдаю, что при тестировании на некоторых минутных интервалах тики в индикатор не приходят. Например, вот фрагмент лога с временами тиков:
EURUSD [00000000] 01-01-08 23:02
EURUSD [00000001] 01-01-08 23:02
EURUSD [00000000] 01-01-08 23:03
EURUSD [00000000] 01-01-08 23:03
EURUSD [00000001] 01-01-08 23:03
EURUSD [00000000] 01-01-08 23:03
EURUSD [00000000] 01-01-08 23:03
EURUSD [00000001] 01-01-08 23:03
EURUSD [00000000] 01-01-08 23:05
EURUSD [00000001] 01-01-08 23:05
EURUSD [00000000] 01-01-08 23:06
EURUSD [00000001] 01-01-08 23:06
EURUSD [00000000] 01-01-08 23:06
EURUSD [00000000] 01-01-08 23:06
EURUSD [00000001] 01-01-08 23:06
EURUSD [00000000] 01-01-08 23:08
EURUSD [00000001] 01-01-08 23:08
EURUSD [00000000] 01-01-08 23:09
EURUSD [00000000] 01-01-08 23:09
EURUSD [00000001] 01-01-08 23:09
EURUSD [00000000] 01-01-08 23:10
EURUSD [00000000] 01-01-08 23:10
EURUSD [00000001] 01-01-08 23:10
Видно, что в 23:04 и в 23:07 не было ни одного тика, хотя в импортированном файле истории есть минутные бары с этим временем.
С уважением, Serrrega.
Создал я тестовый индикатор, который пишет в лог каждый тик, подаваемый на вход Calculete(). При этом каждый запускаемый экземпляр пишет в свой лог-файл, который создается при вызове Init() и закрывается при вызове Done(). Позапускал его в режиме тестирования и возникли у меня следующие вопросы:
1. При запуске программы, даже если не открыто ни одного окна с графиком, создается один экземпляр индикатора (вызывается Init()), затем он разрушается (Done()) и создается второй экземпляр. В процессе работы, если создать окно с графиком, добавить индикатор, закрыть окно, и повторить эту процедуру несколько раз, создается множество экземпляров индикаторов (хотя таймфрейм и инструмент создаваемых окон один и тот же). Как можно объяснить такое поведение и нет ли "утечки" индикаторов в FT?
2. Функция OnChangeParams() иногда вызывается дважды при старте, однако если остановить тестирование и начать его заново - она не вызывается. Т.е. индикатор переносят назад во времени без уведомления его об этом. Корректно ли это?
3. Взял историю EURUSD с Вашего сайта, испортировал, сгенерил тики по методу open-high-low-close. Однако наблюдаю, что при тестировании на некоторых минутных интервалах тики в индикатор не приходят. Например, вот фрагмент лога с временами тиков:
EURUSD [00000000] 01-01-08 23:02
EURUSD [00000001] 01-01-08 23:02
EURUSD [00000000] 01-01-08 23:03
EURUSD [00000000] 01-01-08 23:03
EURUSD [00000001] 01-01-08 23:03
EURUSD [00000000] 01-01-08 23:03
EURUSD [00000000] 01-01-08 23:03
EURUSD [00000001] 01-01-08 23:03
EURUSD [00000000] 01-01-08 23:05
EURUSD [00000001] 01-01-08 23:05
EURUSD [00000000] 01-01-08 23:06
EURUSD [00000001] 01-01-08 23:06
EURUSD [00000000] 01-01-08 23:06
EURUSD [00000000] 01-01-08 23:06
EURUSD [00000001] 01-01-08 23:06
EURUSD [00000000] 01-01-08 23:08
EURUSD [00000001] 01-01-08 23:08
EURUSD [00000000] 01-01-08 23:09
EURUSD [00000000] 01-01-08 23:09
EURUSD [00000001] 01-01-08 23:09
EURUSD [00000000] 01-01-08 23:10
EURUSD [00000000] 01-01-08 23:10
EURUSD [00000001] 01-01-08 23:10
Видно, что в 23:04 и в 23:07 не было ни одного тика, хотя в импортированном файле истории есть минутные бары с этим временем.
С уважением, Serrrega.