Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Не можешь разобраться в коде? Возможно, на эту тему уже написана статья!
Forex Trader
114237
Forex Trader 2007.08.22 07:38 
Добрый день!
Делаем следующий эксперимент.
Работаем в Красноярске с ДЦ "Альпари".
Пользуемся 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 (может, им нельзя сильно верить?).

Заранее благодарен.
Forex Trader
114237
Forex Trader 2007.08.22 10:35  
здесь "Откуда берутся курсы валют ?" посмотри, многие вопросы должны отпасть
Forex Trader
114237
Forex Trader 2007.08.22 14:56  
Спасибо, но меня интересует не то, каким образом от рейтерса курсы валют превращаются в то, что я вижу в MT4, а то, как технически в MT4 связаны (иил не связаны) архивы, хранящиеся в самом MT4, тики, которые можно наблюдать в MT4 и получать через MT4. Они расходятся. Меня интересует, по каким значениям осуществляются сделки и пр.
Ибо наблюдаются расхождения, которых быть не должно. Как технически в MT4 устроены эти потоки данных?
Forex Trader
114237
Forex Trader 2007.08.22 15:40  
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.

ну все причины, в т.ч. вышеперечисленные
Forex Trader
114237
Forex Trader 2007.08.23 06:51  
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. В истории счета смотрим, когда закрывается какая-нибудь сделка закрывается по такому значению, которого ни в одной в свече не было за время существования данного ордера (сделки).

Ещё раз повоторяю, мы формируем сигнал торговой последовательности и наблюдаем расхождения, которых по логике быть не должно.
Forex Trader
114237
Forex Trader 2007.08.23 10:43  
совсем запутал:
синхронность данных с разных т-ф не контролируется, если данные разных т-ф формируются онлайн, то они обязаны сходиться (и пока я не видел чтобы они расходились), а вот если они подкачивались с сервера поставщика, то могут различаться (за это ответственен поставщик)
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, так что такое вполне возможно
Forex Trader
114237
Forex Trader 2007.08.23 11:11  
наверно проще все на картинке показать, например как здесь
Forex Trader
114237
Forex Trader 2007.08.23 16:20  
наверно проще все на картинке показать, например как здесь

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

Какой из вариантов верный?
Forex Trader
114237
Forex Trader 2007.08.23 16:24  
когда онлайн, приходят тики, из них строятся все т-ф
когда был оффлайн и подключился, сначала приходят данные по всем т-ф - они и могут быть разными (если у поставщика какой-то сбой), а потом начиная с последнего начинают строиться исходя из тиков
Forex Trader
114237
Forex Trader 2007.08.24 06:22  
когда онлайн, приходят тики, из них строятся все т-ф
когда был оффлайн и подключился, сначала приходят данные по всем т-ф - они и могут быть разными (если у поставщика какой-то сбой), а потом начиная с последнего начинают строиться исходя из тиков


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

если это только не ошибка кода, подсчитывающего тики
/ /12
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий