Не правильное значение лучшей цены в стакане

Не правильное значение лучшей цены в стакане
Atom
23.03.2015
RomSunZ


АПИ 4.2.72, коннектор Quik lua.
Периодически получаю неверное значение лучшей цены в стакане, которая находится в середине противоположных котировок:

Код

            var md = this.Connector.GetFilteredMarketDepth(this.Security);
			Sides? badside = null;
			//проверим, есть ли "плохая" лучшая цена
			if (md.Asks.Count() > 1 && md.Bids.Count() > 1)
			{
				if (md.Asks[0].Price<md.Bids[0].Price)
				{
					//есть попандос
					if (md.Asks[0].Price < md.Bids[1].Price) badside = Sides.Sell;
					else if (md.Bids[0].Price > md.Asks[1].Price) badside = Sides.Buy;
				}
			}
			if (badside != null) this.AddErrorLog("В стакане не верная лучшая цена по направлению {0}", badside);


Вместо Asks и Bids можно использовать GetQuotes, GetFilteredQuotes, вместо GetFilteredMarketDepth использовать GetMarketDepth - результат одинаковый. Закономерность появления "плохой" лучшей цены выявить не удалось. Может выскочить с утра, может к вечеру, а может и вообще несколько дней не появляться.

Теги:


Спасибо:


< 1 2 3  >
Иван З.

Фотография
Дата: 25.03.2015
Ответить


Я как то обновился, с версии S# 4.2.61 на более высокую, именно коннектор обновлял. У меня появились проблемы со стаканом, похожие по описанию на ваши. Я сразу откатился назад. Я не утверждаю что проблема в коннекторе, возможно стратегия моя не столь требовательна к стаканам и я просто не замечаю косяки. Но на S# 4.2.61 проблемы не наблюдаю. В общем прорвете на 4.2.61.
Спасибо:

Mikhail Sukhov

Фотография
Дата: 25.03.2015
Ответить


RomSunZ
С чем связана такая секретность?


Дело не в секретности. Сырцы на Гите. Точка останова и вперед. Или логи.
Спасибо:

RomSunZ

Фотография
Дата: 25.03.2015
Ответить


Михаил Сухов
RomSunZ
С чем связана такая секретность?


Дело не в секретности. Сырцы на Гите. Точка останова и вперед. Или логи.


Как сырцы помогут, если, по вашим словам, проблема в квике?
Плюс к тому же я не разработчик и не имею доступа к исходникам коннектора. Я привел код, который позволяет поймать этот баг. Будьте добры, как разработчик и знаток платформы, заняться доработкой коннектора LUA (если проблема все же в нем).
Спасибо:

Mikhail Sukhov

Фотография
Дата: 25.03.2015
Ответить


Вы же сами хотите интерактив.[biggrin]
Спасибо:

RomSunZ

Фотография
Дата: 25.03.2015
Ответить


Не понял ваш ответ, что имеете в виду под я хотел интерактив? Или это типа троллинг?
Спасибо:

RomSunZ

Фотография
Дата: 30.03.2015
Ответить


Михаил, внятно можете пояснить, было обращение в квик по поводу не верной трансляции данных по стакану или нет?
Спасибо:

Mikhail Sukhov

Фотография
Дата: 30.03.2015
Ответить


RomSunZ
Михаил, внятно можете пояснить, было обращение в квик по поводу не верной трансляции данных по стакану или нет?


http://stocksharp.com/posts/m/32966/
Спасибо:

merabn

Фотография
Дата: 30.03.2015
Ответить


RomSunZ
Они не перепутаны. При формировании стакана в какой-то момент по одной из сторон стакана "зависает" старая цена, которая остается постоянной, пока не перезагрузишь робота. Если она находится "внутри" своей стороны - мы этого не видим, но как только цены сдвигаются на значительное расстояние, она всплывает как "лучшая". Это баг формирования стакана.

......

Вот сравнение лучших цен (приходится делать, чтобы избежать этого бага):
Цитата:

13:54:12.986|Error ||Рассинхронизация цен: MD best ask=6731, bid=6750, Security best ask=6731, bid=6729, newPrice=6729, best quote=6750

MD - это стакан.


Спасибо за информацию.
Можно попробовать импорт через DDE. Если это действительно конфликт lua скрипта и Квика, то избавитесь от ошибки.
Напишите, пожалуйста, о результате, если проведете такой эксперимент.
Спасибо:

RomSunZ

Фотография
Дата: 23.04.2015
Ответить


Уважаемые разработчики, проверьте пожалуйста коннектор ЛУА, т.к. проблема скорее всего в коннекторе. Я подправил скрипт, который в приложении, он экспортирует лучшую цену в файл. Вот что у меня получилось при работе с SRM5@FORTS:
лог робота:
Цитата:

14:35:34.736|Error |BS_SRM5@FORTS_SPBFUT|Рассинхронизация цен (2): MD best ask=7405, bid=7449, Security best ask=7405, bid=7449, quote[0]=7449, quote[1]=7448, Расчетная цена исполнения 7404 направление Sell
14:35:35.016|Error |BS_SRM5@FORTS_SPBFUT|Рассинхронизация цен (2): MD best ask=7405, bid=7449, Security best ask=7405, bid=7449, quote[0]=7405, quote[1]=7406, Расчетная цена исполнения 7450 направление Buy
14:35:35.022|Error |BS_SRM5@FORTS_SPBFUT|Рассинхронизация цен (2): MD best ask=7405, bid=7449, Security best ask=7405, bid=7449, quote[0]=7405, quote[1]=7406, Расчетная цена исполнения 7450 направление Buy
14:35:35.302|Error |BS_SRM5@FORTS_SPBFUT|Рассинхронизация цен (2): MD best ask=7404, bid=7449, Security best ask=7404, bid=7449, quote[0]=7404, quote[1]=7405, Расчетная цена исполнения 7450 направление Buy
14:35:35.304|Error |BS_SRM5@FORTS_SPBFUT|Рассинхронизация цен (2): MD best ask=7404, bid=7449, Security best ask=7404, bid=7449, quote[0]=7404, quote[1]=7405, Расчетная цена исполнения 7450 направление Buy


Лог луа-скрипта, который экспортирует лучшие цены:
Цитата:

DATE TIME BEST ASK BEST BID
23.04.2015 14:35:34.734 7405 7402
23.04.2015 14:35:35.015 7405 7402
23.04.2015 14:35:35.023 7404 7402
23.04.2015 14:35:35.304 7404 7403
23.04.2015 14:35:35.306 7404 7403

Как видно в примерно одинаковое время котировки коннектора идут с неправильными бидами/асками, а ЛУА выводит их без ошибок.
stakan.lua.txt 13 KB (253)
Спасибо:

Mikhail Sukhov

Фотография
Дата: 23.04.2015
Ответить


RomSunZ
Уважаемые разработчики, проверьте пожалуйста коннектор ЛУА, т.к. проблема скорее всего в коннекторе.


Надо проверку вот сюда воткнуть https://github.com/Stock...ua/LuaFixServer.cs#L473 и напишите, что она даст.

Исходники лучше качать ДО https://github.com/Stock...d3ad9f495d7b32f43a8cff6 (включительно). Все что позднее сейчас нестабильно.
Спасибо:
< 1 2 3  >

Добавить файлы через драг-н-дроп, , или вставить из буфера обмена.

loading
clippy