Вначале приведу картинку из доки:

Предлагаю удалить следующие колонки:
- Полное название.
- Спрос (цена).
- Спрос (объем).
- Предложение (цена).
- Предложение (объем).
- Время послед. сделки.
- Цена послед. сделки.
- Объем послед. сделки.
- Цена открытия.
- Макс цена сделки.
- Мин цена сделки.
- Закрытие.
Тоесть, превратить в это
Причина - сделать настройки проще (проблема с временем послед сделки самая острая). Скажем, сейчас таблица с Инструментами самая тяжелая. Я не беру в расчет стоп-заявки, так как это все же больше экзотика, чем реально полезная вещь. Разберемся по пунктам.
- Оно кому-нибудь нужно? 2-5. Security.BestBid + BestAsk - сейчас есть медленное копия MarketDepth. Не могу найти причину, когда нужна такая информация (ей по сути верить нельзя). 6-8. Security.LastTrade - тоже самое, что и пред пункт. 9-12 - оно кому-нибудь нужно?
Как вариант перехода - сделать опцию в QuikTrader. Если она включена - используется укороченный вариант таблицы с инструментами. Для совместимости, BestBid BestAsk LastTrade будут заполняться, но уже реальными данными (из стакана и тиковых сделок).
Ну как?
Comentários (34)
Entrar ou Criar conta, Faça login ou cadastre-se para deixar um comentário
Я за, если данную таблицу можно будет без проблем дополнять своими данными, как и раньше (нижний\верхний лимит, к примеру).
Возможность добавления своих колонок остается как есть.
Я за - сколько ни писал прог - ничем почти из этого не пользовался.
Михаил, задумался как получить Security.LastTrade в предлагаемой новой реализации. Как это будет быстрее сделать? MarketDepth в текущем виде не имеет такого свойства...
Не понял смысла. Есть стакан, а есть сделка. Одно с другим не пересекается.
Тогда это я немного не понял вначале =) Как предлагается получать последнюю сделку по инструменту в новой реализации таблицы инструменты? Сейчас я это делаю через Security.LastTrade
Так же как и раньше. Внешний интерфейс не меняется. Но для этого необходимо будет запустить экспорт по таблице Все сделки.
Очень здорово тогда =)
Михаил, кстати, не знаете почему экспорт данных по DDE на Win7 запускается на порядок медленнее, чем на Win XP? Как на Win Vista не знаю, но с XP разница мягко говоря заметна - раз в 5-10.
Уже писали об этом. Нет, пока не знаю. Хотите провести эксперимент и выяснить?
Я не против экспериментов, у себя уже пытался - и 32 битная версия, и 64 битная. В любом случае любой экспорт стартует медленнее. В независимости от размеров таблицы...
Решил написать свои изыскания:
на одном форуме читал про проблему, что GetPixel стал работать в десятки раз медленнее на Win7 по сравнению с Win XP. Человеку надо было читать цвет пикселей игрушки, запущенной в браузере. В итоге он разобрался и написал следущее:
"если получать пиксель используя хэндл рабочего стола (или контекст ус-ва, связанный с раб. столом в случае с GetPixel()), то тупит , если использовать например хэндл браузера, то работает быстро. Вот такая вот магия... "
Михаил, возможно из этого вы по аналогии сможете решить проблему долгого поиска окон на Win7: брать Handle от окна Quik для поиска таблиц.
Пользуюсь 64-битной версией Win7. Иногда экспорт стартуется мгновенно, а иногда - порядка 10 секунд. Выявить закономерность пока не удалось...
Я не пользовался и не планировал.
вот этого делать точно не надо по таблице всех сделок строится всё что можно, включая свечки
большинство стратегий завязаны как раз на ленту
если и убирать так только то, что безболезненно скажется на всех пользователях.
Вся ключевая информация, в том числе и для построения свечек и , соответственно, для всех дочерних от свечек индикаторов, есть в Таблице тек.параметров - а именно: Ticker, LastTrade_Time, LastTrade_Price, LastTrade_Quantity.
Можете ли Вы привести конкретный пример того, что Вы не можете построить исходя из этих полей, и зачем Вам нужна Таблица Всех сделок?
Таблицу текущих параметров в квике найти не смог. По умолчанию (с помощью StartExport) она точно не экспортируется. Таблица всех сделок мне нужна для правильного проведения кластерного анализа, на основе которого я и вхожу \ выхожу в сделку.
Как было предложено Михаилом - не хотите Все сделки - не экспортируйте. :)
Кстати, пропустил момент. А что за трафик? Действительно, есть нагрузка на обработку тиков при старте, когда робот стартует не в начале сессии. Но там идет обработка пакетов в 16 тыч сделок. Потом то такое количество сделок просто отсутствует.
Кто еще подобное ощущает?
по поводу колонки Lasttrade в таблице Инструменты. Начиная с 3 версии её нет и LastTrade берётся из ТВС. Между тем, колонку Lasttrade из Инструментов я как раз использую в случаях когда данные в ТВС приходят с задержкой. Может имеет смысл её восстановить?
QuikTrader.IsNewSecurityTable
Про таблицу всех сделок -- дешевле просто отредактировать эту таблицу в Квике и убрать оттуда все классы =) Тогда она не будет ничего экспортировать и для этого не придётся писать левый код.
Я тоже использую Lasttrade для корректной обработки данных при задержках. QuikTrader.IsNewSecurityTable помечено как obsolete, поэтому хочется уточнить, останется ли это свойство в дальнейшем, или лучше сразу самому добавить Lasttrade в обновленную таблицу инструментов как дополнительную колонку?
Самому. Я это свойство сделал, чтобы можно было поддержать старые приложения. Но только для перехода.
Добавил следующий код:
В квике добавил в конец таблицы инструментов колонку "Время последнего изменения". При запуске исключение System.InvalidOperationException: Для таблицы 'инструменты' не была найдена колонка 'Количество в последней сделке'. Я что-то не понимаю, или в DdeSecurityColumns колонки перепутаны?
((QuikTrader)Trader).SecuritiesTable.Columns.Add(DdeSecurityColumns.LastChangeTime); ... DateTime lastTradeTime = ((DateTime)WorkingSecurity.ExtensionInfo[DdeSecurityColumns.LastChangeTime]);
То есть надо добавить еще DdeSecurityColumns.LastTradePrice и DdeSecurityColumns.LastTradeVolume? Порядок значения не имеет?
Порядок зависит от того, что вы в Квике сделаете.
Ну да, это понятно. Спасибо.
И опять ничего не получилось. Добавляю колонки в квике и коде:
Смотрю в ExtensionInfo, а там только цена последней сделки и количество последней сделки. К ExpiryDate и MinStepPrice я обращался без ExtensionInfo, через уже имеющиеся свойства Security. Но если я буду лезть в Security.LastTrade.Time, то там будет время последней экспортированной сделки из таблицы всех сделок, а не LastChangeTime из инструментов. Как быть?
Да, похоже так не получиться, действительно идет перезапись.
Михаил, в S# 3.1 можно добраться до времени последнего изменения из таблицы инструментов?
Хм, забыл про этот недочет... Ок, пока идет бета тестированию, его реализую.
Я в текущей бете исправил, чтобы добавление какой-то колонки не требовало добавление другой. Может вы это проверите?