Покажите такой скрин проблемного интервала.
void OnStart() { MqlTick Ticks[]; CopyTicksRange("EURUSD", Ticks, COPY_TICKS_ALL, D'2022.03.01 00:08:20' * 1000, D'2022.03.01 00:09:18' * 1000); ArrayPrint(Ticks); }
[time] [bid] [ask] [last] [volume] [time_msc] [flags] [volume_real] [0] 2022.03.01 00:08:22 1.12170 1.12220 0.0000 0 1646093302475 134 0.00000 [1] 2022.03.01 00:09:17 1.12170 1.12220 0.0000 0 1646093357537 130 0.00000
GUI отображает несколько иное (слева).
Тогда сделал кастомный символ из этих же тиков, где флаги сам расставляю (справа на скрине).
[time] [bid] [ask] [last] [volume] [time_msc] [flags] [volume_real] [0] 2022.03.01 00:08:22 1.12170 1.12220 0.0000 0 1646093302475 6 0.00000 [1] 2022.03.01 00:09:17 1.12170 1.12220 0.0000 0 1646093357537 0 0.00000
Цены не поменялись (double-сравнение делал), поэтому флаг нулевой, но на скрине якобы 6 - обе цены изменились.
Поэтому можно сказать, что флагам не стоит доверять не в тиковой истории реальных символов, не в GUI (не показывает, что реально в истории).
Поэтому можно сказать, что флагам не стоит доверять не в тиковой истории реальных символов, не в GUI (не показывает, что реально в истории).
Ок, спасибо большое, буду использовать тогда функцию CopyTicksRange для дальнейшего сохранения данных в CSV, а не экспорт через GUI
Помогите, пожалуйста с кодами флагов разобраться: что какой код значит.
Что значит коды флагов = 134, 130 - не знаю.
Хотелось бы получить информацию в виде: код файла, расшифровка (что означает).
Не смог найти эту информацию, возможно плохо искал, но если вам не лень, объясните плиз)
Ок, спасибо большое, буду использовать тогда функцию CopyTicksRange для дальнейшего сохранения данных в CSV, а не экспорт через GUI
Помогите, пожалуйста с кодами флагов разобраться: что какой код значит.
Что значит коды флагов = 134, 130 - не знаю.
Хотелось бы получить информацию в виде: код файла, расшифровка (что означает).
Не смог найти эту информацию, возможно плохо искал, но если вам не лень, объясните плиз)
Извините, спрашивали не меня, но все же, нашел у себя для разбора со стаканом биржевых ETF такой текст. Может, он поможет:
TICK_FLAG_BID – тик изменил цену бид 2
TICK_FLAG_ASK – тик изменил цену аск 4
TICK_FLAG_LAST – тик изменил цену последней сделки 8
TICK_FLAG_VOLUME – тик изменил объем 16
TICK_FLAG_BUY – тик возник в результате сделки на покупку 32
TICK_FLAG_SELL – тик возник в результате сделки на продажу 64
В сумме
26 = +изменил объем +изменил цену последней сделки +изменил бид
28 = +изменил объем +изменил цену последней сделки +изменил аск
30 = +изменил объем +изменил цену последней сделки +изменил аск +изменил бид
48 = от покупки +изменил объем
52 = от покупки +изменил объем +изменил аск
56 = от покупки +изменил объем +изменил цену последней сделки
58 = от покупки +изменил объем +изменил цену последней сделки+изменил аск
62 = от покупки +изменил объем +изменил цену последней сделки +изменил аск +изменил бид
88 = от продажи +изменил объем +изменил аск +изменил бид
122 = от покупки и от продажи +изменил объем +изменил цену последней сделки +изменил бид
124 = от покупки и от продажи +изменил объем +изменил цену последней сделки +изменил аск
Больше 124 код флагов не встречал. Также не уверен, что встречал все перечисленные.
Прошу обратить внимание на миллисекунды на этих двух скринах.
Они отличаются. Нижний скрин - ICMarketsSC-MT5-2. Какой сервер верхнего?
Прошу обратить внимание на миллисекунды на этих двух скринах.
Они отличаются. Нижний скрин - ICMarketsSC-MT5-2. Какой сервер верхнего?
ICMarketsSC-Demo
Ещё пару вопросов, если не затруднит:
1) Демо-счета лучше не использовать для выгрузки, с целью дальнейшего анализа рыночной информации в БД?
2) Может ли брокер корректировать историю в настоящем, чтобы скрыть неудобную информацию в прошлом. То есть данные при выгрузке тиковой истории будут отличаться от тех данных, которые шли в real-time потоке в это время в прошлом?
1) Демо-счета лучше не использовать для выгрузки, с целью дальнейшего анализа рыночной информации в БД?
Лучше данные с сервера, на котором идет торговля. Но по скринам видно, что на каждый сервер тик записывается далеко не в то время, когда пришел в систему. Очень большие плавающие лаги, к сожалению.
2) Может ли брокер корректировать историю в настоящем, чтобы скрыть неудобную информацию в прошлом. То есть данные при выгрузке тиковой истории будут отличаться от тех данных, которые шли в real-time потоке в это время в прошлом?
Такое не практикуют. Может последний исторический тик не соответствовать последнему тику из Обзора рынка - время совпадает, но цены отличаются. Отличие будет постоянным на одинаковую величину - маркап. У крупных брокеров такое практически не попадается.
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Добрый вечер.
Хочу расставить все точки над и по этому вопросу с вашей помощью...
Знаю, что Bid - лучшее цена на покупку, Ask - на продажу.
1) Цены Bid и Ask в основном формируют трейдеры на ECN-счете того брокера: то есть условный трейдер Вася не хочет покупать по рынку, а хочет купить лимитником дешевле. Текущая цена Bid - 1.12340. Он ставит свой лимитник по цене 1.12341. Bid увеличивается на единицу.
Его ордер никто не исполняет, спустя пол секунды Вася решает, что сделку по такой цене проводить не выгодно и отменяет ордер. Bid уменьшается на единицу. Спустя мгновение он передумывает и снова размещает, который впоследствии так же был им отменён. Так происходит 10 раз. На 11 разу отменить ордер он не успевает, так как кто-то успел купить по рынку у него.
Вася своими действиями увеличил: тиковый объём на 10*2 и реальный объём на объём его ордера. Форекс-брокеру информацию по реальным объёмам никому передавать не выгодно. Поэтому эту информацию знает только Вася и исключительно по своим действиям.
Я пока всё правильно понимаю?
2)
На 9 минуте, 17 секунде цена Bid не изменилась. Но флаг указан - 2 (пришёл новый тик по Bid). Но новый тик же должен отличаться от предыдущего? Разве нет? Этот момент мне не понятен - помогите разобраться...
P.S. Кажется знаю, в чём может быть проблема: брокер потерял связь с котировками - данных же не было почти целую минуту. Затем восстановил, получил котировку по Bid-у, затем по Ask. И они совпали с прошлыми данными.