Расхождения в тиковых и архивных данных

 
Добрый день!
Делаем следующий эксперимент.
Работаем в Красноярске с ДЦ "Альпари".
Пользуемся MT4, скаченным с их сайта.
Работаем как на демо-, так и на реальных счетах.
Пользуемся архивами минутных значений, а также формируем минутки из тиков,
при этом, "вещи", которые должны совпадать, не совпадают:
1. Архивы минуток, скаченных в файле *.csv с сайта Альпари, не совпадают
с тем, что хранится в архивах MT4 (не совпадают лишь некоторые минутки: где-то Open, где-то Volume, но это редко, однако, происходит).
2. Минутки, сформированные по потоку DDE, не совпадают с теми, которые хранятся в MT4.
3. То же, что и в п. 2, но если минутки формировать не из потока DDE, а внутри в советнике. Где-то у 2-3% минуток отличаются Volume. Например, в MT4, в архиве, объем 7, а тиков поступило 6. Бывает и там и там ровно по 33 и совпадает, а бывает малое количество различается. Хочется понять, где "истина" (если о ней уместно говорить).
4. На параллельно запущенных MT4 на одной машине тики тоже могут различаться,
мы их в БД пишем и сравниваем, бывают такие, которые там есть, тут нет.
5. Такая ситуация встречается и под Windows и под Linux.

Всё это мы проделывали для того чтобы сформировать надежный источник реальных данных, по которым ведется торговля.

Интересует мнение тех, кто с этим сталкивался, кто как-то решал такую проблему,
ну и, конечно, разработчиков, может есть какие-то принципы, как приходят тики, как формироуются минутки, которые хранятся в архивах MT4 (может, им нельзя сильно верить?).

Заранее благодарен.
 
здесь "Откуда берутся курсы валют ?" посмотри, многие вопросы должны отпасть
 
Спасибо, но меня интересует не то, каким образом от рейтерса курсы валют превращаются в то, что я вижу в MT4, а то, как технически в MT4 связаны (иил не связаны) архивы, хранящиеся в самом MT4, тики, которые можно наблюдать в MT4 и получать через MT4. Они расходятся. Меня интересует, по каким значениям осуществляются сделки и пр.
Ибо наблюдаются расхождения, которых быть не должно. Как технически в MT4 устроены эти потоки данных?
 
1. Архивы минуток, скаченных в файле *.csv с сайта Альпари, не совпадают
с тем, что хранится в архивах MT4 (не совпадают лишь некоторые минутки: где-то Open, где-то Volume, но это редко, однако, происходит).

как и описано по ссылке, каждый получает из нескольких источников, затем фильтрует и своим клиентам для совершения сделок, поэтому у разных поставщиков могут отличаться
2. Минутки, сформированные по потоку DDE, не совпадают с теми, которые хранятся в MT4.

точно сказать не могу, т.к. DDE не пользуюсь, но скорее всего где-то ошибка закралась
3. То же, что и в п. 2, но если минутки формировать не из потока DDE, а внутри в советнике. Где-то у 2-3% минуток отличаются Volume. Например, в MT4, в архиве, объем 7, а тиков поступило 6. Бывает и там и там ровно по 33 и совпадает, а бывает малое количество различается. Хочется понять, где "истина" (если о ней уместно говорить).

если под "МТ4" имеется ввиду хинт с графика, строка состояния, то объем всегда совпадает, тики в ручную отсчитывали? что-то больно запутанно сформулировал вопрос
4. На параллельно запущенных MT4 на одной машине тики тоже могут различаться,
мы их в БД пишем и сравниваем, бывают такие, которые там есть, тут нет.

здесь может быть несколько причин: на одной из машин временно отсутствовала связь и поэтому она не дополучила тика (если их подсчитывает эксперт или скрипт или индикатор); время прохода по коду заняло больше времени, чем время на приход нового тика в результате чего он был пропущен (одна машина по мощнее и быстрее просчитала, а другая - медленнее или из-за текущих процессов на той и другой машине)
5. Такая ситуация встречается и под Windows и под Linux.

ну все причины, в т.ч. вышеперечисленные
 
1. Архивы минуток, скаченных в файле *.csv с сайта Альпари, не совпадают
с тем, что хранится в архивах MT4 (не совпадают лишь некоторые минутки: где-то Open, где-то Volume, но это редко, однако, происходит).

как и описано по ссылке, каждый получает из нескольких источников, затем фильтрует и своим клиентам для совершения сделок, поэтому у разных поставщиков могут отличаться
2. Минутки, сформированные по потоку DDE, не совпадают с теми, которые хранятся в MT4.

точно сказать не могу, т.к. DDE не пользуюсь, но скорее всего где-то ошибка закралась
3. То же, что и в п. 2, но если минутки формировать не из потока DDE, а внутри в советнике. Где-то у 2-3% минуток отличаются Volume. Например, в MT4, в архиве, объем 7, а тиков поступило 6. Бывает и там и там ровно по 33 и совпадает, а бывает малое количество различается. Хочется понять, где "истина" (если о ней уместно говорить).

если под "МТ4" имеется ввиду хинт с графика, строка состояния, то объем всегда совпадает, тики в ручную отсчитывали? что-то больно запутанно сформулировал вопрос
4. На параллельно запущенных MT4 на одной машине тики тоже могут различаться,
мы их в БД пишем и сравниваем, бывают такие, которые там есть, тут нет.

здесь может быть несколько причин: на одной из машин временно отсутствовала связь и поэтому она не дополучила тика (если их подсчитывает эксперт или скрипт или индикатор); время прохода по коду заняло больше времени, чем время на приход нового тика в результате чего он был пропущен (одна машина по мощнее и быстрее просчитала, а другая - медленнее или из-за текущих процессов на той и другой машине)
5. Такая ситуация встречается и под Windows и под Linux.

ну все причины, в т.ч. вышеперечисленные


Меня совсем не это беспокоит, мне известен механизм того, как формируется торговая послеждовательность у моего брокера из последовательности той, которая на рынке.
Я говорю о другом, как последовательности тиков и последовательности минуток, пятиминуток и пр. сосуществуют вунтри самого метатрэйдера?

Еще две "ошибки":
1. Не совпадают Close у минуток, пятиминуток и старших тайм-фреймов.
(идем по клавише F2 в архив истории, берем любую минутку, только чтобы ее время было кратно, например, суткам (00:00), смотрим по этому же времени M5, M15, M30, H1, H4 и т.д. и видим, что Close разнятся очень сильно).
2. В истории счета смотрим, когда закрывается какая-нибудь сделка закрывается по такому значению, которого ни в одной в свече не было за время существования данного ордера (сделки).

Ещё раз повоторяю, мы формируем сигнал торговой последовательности и наблюдаем расхождения, которых по логике быть не должно.
 
совсем запутал:
синхронность данных с разных т-ф не контролируется, если данные разных т-ф формируются онлайн, то они обязаны сходиться (и пока я не видел чтобы они расходились), а вот если они подкачивались с сервера поставщика, то могут различаться (за это ответственен поставщик)
1. Не совпадают Close у минуток, пятиминуток и старших тайм-фреймов.
(идем по клавише F2 в архив истории, берем любую минутку, только чтобы ее время было кратно, например, суткам (00:00), смотрим по этому же времени M5, M15, M30, H1, H4 и т.д. и видим, что Close разнятся очень сильно).

Close для указанных т-ф и времени сформируется
M1 не позже 00:00:59
M5 не позже 00:04:59
M15 не позже 00:14:59
M30 не позже 00:29:59
Н1 не позже 00:59:59
при этом естесственно что они могут отличаться, а вот для тех же т-ф по времени открытия
M1 по времени 23:59:00
M5 не позже 23:55:00
M15 не позже 23:45:00
M30 не позже 23:30:00
Н1 не позже 23:00:00
при условии что их первый тик пришел в "точно назначенное время" и не было пропусков баров Close будет совпадать
2. В истории счета смотрим, когда закрывается какая-нибудь сделка закрывается по такому значению, которого ни в одной в свече не было за время существования данного ордера (сделки).

дело в том что сделки бывают короткие и длинные, так вот короткие закрываются по цене Ask, а графики рисуются по цене Bid, так что такое вполне возможно
 
наверно проще все на картинке показать, например как здесь
 
наверно проще все на картинке показать, например как здесь

Спасибо Вам!
В одной "вещи" я ошибься (благодаря Вам понял),
но всё же не ясно, как в MT4 формируются данные?
- Приходят только тики и из них формируются тайм-фреймы
- Приходят и тики и тайм-фреймовые значения
- Приходят тики и минутки, а из минуток формируются старшие тайм-фреймы

Какой из вариантов верный?
 
когда онлайн, приходят тики, из них строятся все т-ф
когда был оффлайн и подключился, сначала приходят данные по всем т-ф - они и могут быть разными (если у поставщика какой-то сбой), а потом начиная с последнего начинают строиться исходя из тиков
 
когда онлайн, приходят тики, из них строятся все т-ф
когда был оффлайн и подключился, сначала приходят данные по всем т-ф - они и могут быть разными (если у поставщика какой-то сбой), а потом начиная с последнего начинают строиться исходя из тиков


Т.е. все-таки он-лайн они из приходящих тиков строятся, спасибо Вам!
Но вот в этом-то и ошибка закрадывается.
Он-лайн запускаем советника, он все тики считает, а потом сверяем, что в базе и оказывается,
что иногда (у 2-3% минуток) есть расхождения: в базе лежит по какой-нибудь минуте 7 тиков (объем),
а советник за эту же минуту насчитал 6. А есть минуты, когда и в базе и в советнике ровно по 33 например.
Вот о чем я говорил. При этом та же картина, если тики по DDE забирать.
В связи с этим меня и интересовало внутреннее устройство. По логике я так и думал, что
минутки из тиков формируются в базе в он-лайн режиме, но когда этот факт заметил, стал сомневаться.
 
Profi_R 22.08.07 15:40
...
4. здесь может быть несколько причин: на одной из машин временно отсутствовала связь и поэтому она не дополучила тика (если их подсчитывает эксперт или скрипт или индикатор); время прохода по коду заняло больше времени, чем время на приход нового тика в результате чего он был пропущен (одна машина по мощнее и быстрее просчитала, а другая - медленнее или из-за текущих процессов на той и другой машине)

если это только не ошибка кода, подсчитывающего тики
Причина обращения: