[CR] Использование залоговков в таблицах

[CR] Использование залоговков в таблицах
Atom
7/15/2011
President


Помню что в описании было указано что заголовки в таблицах игнорируются и экспорт DDE идет по номеру колонки - для получения максимальной скорости экспорта.
Согласен с этим, но в тоже время сталкивался с тем что это создает неудобства - хочется добавить свои колонки в таблицы, и иногда - например в случае со стаканом - не хочется добавлять их в конец.

Поэтому предлагаю такую фичу:
- при запуске импорта считыать в таблицах имена колонок и запоминать их номера
- а дальше уже вести экспорт по номерам.

Т.о. и скорость будет не хуже.
И колонки можно будет настроить какие угодно.

Как вариант - сделать такое только для стаканов.

Tags:


Thanks:


1 2  >
Alexander

Avatar
Date: 7/16/2011
Reply


См. документацию, 4ый пункт

Quote:
Если колонки добавляются не в конец, а перемешаны с основными колонками, то необходимо вставлять колонки относительно их порядка сделования друг за другом (DdeTableColumn.Index) в таблице:

Code

// вставить колонку волатильность, чтобы она была 5-ой с начала (нумерация идет с нуля)
// все последующие колонки за волатильностью автоматически перестраивают свой порядковый номер
this.Trader.SecuritiesTable.Columns.Insert(4, DdeSecurityColumns.Volatility);
Thanks:

President

Avatar
Date: 7/26/2011
Reply


Alexander
См. документацию, 4ый пункт

Quote:
Если колонки добавляются не в конец, а перемешаны с основными колонками, то необходимо вставлять колонки относительно их порядка сделования друг за другом (DdeTableColumn.Index) в таблице:

Code

// вставить колонку волатильность, чтобы она была 5-ой с начала (нумерация идет с нуля)
// все последующие колонки за волатильностью автоматически перестраивают свой порядковый номер
this.Trader.SecuritiesTable.Columns.Insert(4, DdeSecurityColumns.Volatility);


понял что это можно делать вручную.
мое предложение заключается в том чтобы это происходило автоматически в момент соединения с Квиком:
1. считываются существующие заголовки колонок у таблиц
2. сравниваются с предопределенными именами колонок
3. по результатам сравнения конфигурится импорт
4. если какие-то колонки не найдены то экспешн

в результате
- можно будет менять порядок колонок не заботясь о перепрограммировании экспорта
- при выходе новых версий больше шанс что не нужно будет квик перенастраивать
- по сообщению об ("не найдена колонка XXX в таблице YYY") и можно будет сделать исправление руками в таблице без залезания в документацию (чтобы понять на каком месте она должна быть) или сброса настроек квика (через загрузку wnd-файла)

важно что на скорость импорта это не влияет, а на удобство влияет положительно.
Thanks:

Alexander

Avatar
Date: 7/26/2011
Reply


Экспорт будет замедляться, т.к.:
1) если передавать данные по DDE с названием колонок - это намного медленнее работает, описывали документацию;
2) если дополнительно открывать окно редактирования таблицы и считывать данные оттуда - медленнее за счёт дополнительных действий для каждой из колонок.

Т.е. по сути ненужная функциональность - дополнительные колонки добавляет малая часть пользователей, если поменяли порядок - вставили свои пару методов в код - всё работает.
Настройки Квика от версии к версии изменяется не так сильно - самые большие изменения как раз будут в 3.2 final по сравнению с 3.1. До этого изменений было минимум и больше их пока не планируется - всё что хотели - сделали и поддержали.

Если реализовать передачу заголовок таблиц - будет дополнительное замедление экспорта для всех пользователей ради мнимой пользы для считанных пользователей. Я против.


Если кому есть что возразить - напишите, может я и не прав.
Thanks:

EugeneP

Avatar
Date: 7/27/2011
Reply


Ну как я понял речь шла о том, чтобы сначала через DDE вывести названия колонок таблиц, запомнить их, а уже затем стартовать DDE без названий колонок..
Thanks:

Alexander

Avatar
Date: 7/27/2011
Reply


EugeneP
Ну как я понял речь шла о том, чтобы сначала через DDE вывести названия колонок таблиц, запомнить их, а уже затем стартовать DDE без названий колонок..


Я об этом и написал - что для каждой таблицы будет вызываться лишнее действие (для того чтобы узнать где какая колонка) - за счёт этого медленнее.
Thanks:

EugeneP

Avatar
Date: 7/27/2011
Reply


так замедление будет лишь на "этапе настройки" (пара секунд). А на скорость дальнейшей работы DDE никак не скажется.
Thanks:

Alexander

Avatar
Date: 7/27/2011
Reply


EugeneP
так замедление будет лишь на "этапе настройки" (пара секунд). А на скорость дальнейшей работы DDE никак не скажется.


При каждом старте экспорта DDE будет подниматься дополнительное окно с настройками, его чтение.
На этом этапе излишняя как раз работа.

Чем текущий вариант не нравится?
Thanks:

President

Avatar
Date: 7/28/2011
Reply


Alexander

Чем текущий вариант не нравится?


да все нравится, [biggrin] но слишком уж много думать и понимать нужно - порог входа в S# и сложность поддержки всего комплекса в связке с квиком повышается.
Thanks:

Mikhail Sukhov

Avatar
Date: 7/29/2011
Reply


EugeneP
Ну как я понял речь шла о том, чтобы сначала через DDE вывести названия колонок таблиц, запомнить их, а уже затем стартовать DDE без названий колонок..


Не, не очень красивое решение. Мне кажется, лучше создать метод IEnumerable<DdeTableColumn> QuikTrader.GetTableColumns(DdeTable), который бы возвращал реальные настройки в Квике. Метод вызывается один раз при старте и только для тех, кто его решил вызвать (тоесть не при каждом перезапуске ДДЕ и не для всех пользователей). Далее, нужно создать метод DdeTableColumnList.Sync(IEnumerable<DdeTableColumn>) который бы синхронизовывал бы колонки. В итоге выглядело бы так:

Code
var trader = new QuikTrader();
trader.SecuritiesTable.Columns.Sync(trader.Terminal.GetTableColumns(trader.SecuritiesTable));


Может быть имеет сделать еще метод DdeTable.Sync, который бы внутри себя убирал детали:

Code
var trader = new QuikTrader();
trader.SecuritiesTable.Sync();
trader.OrdersTable.Sync();


Теперь вопрос к Президенту. Прочитайте мою подпись и ответьте, вы готовы это сделать сами и нам потом уже дать готовый код для вставки в будущие версии?
Thanks:

President

Avatar
Date: 7/29/2011
Reply


Mikhail Sukhov

Теперь вопрос к Президенту. Прочитайте мою подпись и ответьте, вы готовы это сделать сами и нам потом уже дать готовый код для вставки в будущие версии?


в выходные гляну насколько мне это под силу.
Thanks:
1 2  >

Attach files by dragging & dropping, , or pasting from the clipboard.

loading
clippy