BId и ask цены

 

Добрый вечер.
Хочу расставить все точки над и по этому вопросу с вашей помощью...
Знаю, что Bid - лучшее цена на покупку, Ask - на продажу.

1) Цены Bid и Ask в основном формируют трейдеры на ECN-счете того брокера: то есть условный трейдер Вася не хочет покупать по рынку, а хочет купить лимитником дешевле. Текущая цена Bid - 1.12340. Он ставит свой лимитник по цене 1.12341. Bid увеличивается на единицу.
Его ордер никто не исполняет, спустя пол секунды Вася решает, что сделку по такой цене проводить не выгодно и отменяет ордер. Bid уменьшается на единицу. Спустя мгновение он передумывает и снова размещает, который впоследствии так же был им отменён. Так происходит 10 раз. На 11 разу отменить ордер он не успевает, так как кто-то успел купить по рынку у него.
Вася своими действиями увеличил: тиковый объём на 10*2 и реальный объём на объём его ордера. Форекс-брокеру информацию по реальным объёмам никому передавать не выгодно. Поэтому эту информацию знает только Вася и исключительно по своим действиям.
Я пока всё правильно понимаю?


2)  Выгрузив данные за 10 секунд по брокеру ICMarkets я понял, что чего-то не понимаю...

На 9 минуте, 17 секунде цена Bid не изменилась. Но флаг указан - 2 (пришёл новый тик по Bid). Но новый тик же должен отличаться от предыдущего? Разве нет? Этот момент мне не понятен - помогите разобраться...

P.S. Кажется знаю, в чём может быть проблема: брокер потерял связь с котировками - данных же не было почти целую минуту. Затем восстановил, получил котировку по Bid-у, затем по Ask. И они совпали с прошлыми данными.

 

Покажите такой скрин проблемного интервала.


 
fxsaber #:

Покажите такой скрин проблемного интервала.


Raw Trading Ltd (ICMarkets).

 
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 (не показывает, что реально в истории).

 
fxsaber #:

Поэтому можно сказать, что флагам не стоит доверять не в тиковой истории реальных символов, не в GUI (не показывает, что реально в истории).

Ок, спасибо большое, буду использовать тогда функцию CopyTicksRange для дальнейшего сохранения данных в CSV, а не экспорт через GUI
Помогите, пожалуйста с кодами флагов разобраться: что какой код значит.
Что значит коды флагов = 134, 130 - не знаю.
Хотелось бы получить информацию в виде: код файла, расшифровка (что означает).
Не смог найти эту информацию, возможно плохо искал, но если вам не лень, объясните плиз)

 
MisterRight #:

Что значит коды флагов = 134, 130 - не знаю.

Отнимите 128, получите тот же смысл, к какому привыкли.

 
MisterRight #:

Ок, спасибо большое, буду использовать тогда функцию 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 код флагов не встречал. Также не уверен, что встречал все перечисленные.

 
fxsaber #:

Прошу обратить внимание на миллисекунды на этих двух скринах.

Они отличаются. Нижний скрин - ICMarketsSC-MT5-2. Какой сервер верхнего?

ICMarketsSC-Demo
Ещё пару вопросов, если не затруднит:
1) Демо-счета лучше не использовать для выгрузки, с целью дальнейшего анализа рыночной информации в БД?
2) Может ли брокер корректировать историю в настоящем, чтобы скрыть неудобную информацию в прошлом. То есть данные при выгрузке тиковой истории будут отличаться от тех данных, которые шли в real-time потоке в это время в прошлом?

 
Vladimir #:

Извините, спрашивали не меня, но все же, нашел у себя для разбора со стаканом биржевых ETF такой текст. Может, он поможет:

Спасибо!)

 
MisterRight #:

1) Демо-счета лучше не использовать для выгрузки, с целью дальнейшего анализа рыночной информации в БД?

Лучше данные с сервера, на котором идет торговля. Но по скринам видно, что на каждый сервер тик записывается далеко не в то время, когда пришел в систему. Очень большие плавающие лаги, к сожалению.

2) Может ли брокер корректировать историю в настоящем, чтобы скрыть неудобную информацию в прошлом. То есть данные при выгрузке тиковой истории будут отличаться от тех данных, которые шли в real-time потоке в это время в прошлом?

Такое не практикуют. Может последний исторический тик не соответствовать последнему тику из Обзора рынка - время совпадает, но цены отличаются. Отличие будет постоянным на одинаковую величину - маркап. У крупных брокеров такое практически не попадается.

Причина обращения: