[CR] Использование залоговков в таблицах~/topic/1735/cr-ispolzovanie-zalogovkov-v-tablitsah/Copyright @ StockSharp Platform LLC 2010 - 20242024-03-29T10:41:06Zhttps://stocksharp.ru/images/logo.pnghttps://stocksharp.ru/posts/m/10402/глянул. сходу не смог разобраться как это можно сделать, т.к. не нашел исходных кодов где идет работ...2011-08-17T19:15:07Z2011-08-17T19:15:07ZAlexanderhttps://stocksharp.ru/users/2826/info@stocksharp.ru<div class="quote"><span class="quotetitle">President <a href="https://stocksharp.ru/posts/m/10065/"><img src="https://stocksharp.ru/images/icon_latest_reply.gif" title="Перейти" alt="Перейти" /></a></span><div class="innerquote"><div class="quote"><span class="quotetitle">Mikhail Sukhov <a href="https://stocksharp.ru/posts/m/10064/"><img src="https://stocksharp.ru/images/icon_latest_reply.gif" title="Перейти" alt="Перейти" /></a></span><div class="innerquote"><div class="quote"><span class="quotetitle">President <a href="https://stocksharp.ru/posts/m/10062/"><img src="https://stocksharp.ru/images/icon_latest_reply.gif" title="Перейти" alt="Перейти" /></a></span><div class="innerquote">глянул. <br />сходу не смог разобраться как это можно сделать, т.к. не нашел исходных кодов где идет работа с Квиком.<br /></div></div><br /><br />Сырцы QuikTerminal могу прислать + других классов.<br /><br />Посмотрел на код GetTableSettings, там вообщем-то уже практически все сделано. Поэтому, предлагаю такое условие. Мы вам исходники QuikTerminal + другие необходимые классы, вы нам решение с настройками. А именно. Есть еще метод QuikTerminal.OpenTable, который пока NotImplementedException бросает. Смысл его в том, что, если в Квик не открыта необходимая таблица, он ее должен сам открывать (через пункты меню, что уже, в принципе, сделано с другими вещами). Плюс, думаю, имеет смысл сделать метод по настройке таблицы, добавляя в нее необходимые колонки (получается обратная задача от той, что вы в начале предложили). Тогда можно будет сделать настройку таблиц автоматически из робота или из Verifier. По окончанию можем отослать код самого Quik коннектора. По рукам?</div></div><br /><br />если без коммитмента по времени, то по-рукам. :) постораюсь в течении недели осилить, но может быть будет две недели или три - хз.</div></div><br /><br />продвигается?Copyright @ StockSharp Platform LLC 2010 - 2024https://stocksharp.ru/posts/m/10065/глянул. сходу не смог разобраться как это можно сделать, т.к. не нашел исходных кодов где идет работ...2011-07-31T15:09:04Z2011-07-31T15:09:04ZPresidenthttps://stocksharp.ru/users/510/info@stocksharp.ru<div class="quote"><span class="quotetitle">Mikhail Sukhov <a href="https://stocksharp.ru/posts/m/10064/"><img src="https://stocksharp.ru/images/icon_latest_reply.gif" title="Перейти" alt="Перейти" /></a></span><div class="innerquote"><div class="quote"><span class="quotetitle">President <a href="https://stocksharp.ru/posts/m/10062/"><img src="https://stocksharp.ru/images/icon_latest_reply.gif" title="Перейти" alt="Перейти" /></a></span><div class="innerquote">глянул. <br />сходу не смог разобраться как это можно сделать, т.к. не нашел исходных кодов где идет работа с Квиком.<br /></div></div><br /><br />Сырцы QuikTerminal могу прислать + других классов.<br /><br />Посмотрел на код GetTableSettings, там вообщем-то уже практически все сделано. Поэтому, предлагаю такое условие. Мы вам исходники QuikTerminal + другие необходимые классы, вы нам решение с настройками. А именно. Есть еще метод QuikTerminal.OpenTable, который пока NotImplementedException бросает. Смысл его в том, что, если в Квик не открыта необходимая таблица, он ее должен сам открывать (через пункты меню, что уже, в принципе, сделано с другими вещами). Плюс, думаю, имеет смысл сделать метод по настройке таблицы, добавляя в нее необходимые колонки (получается обратная задача от той, что вы в начале предложили). Тогда можно будет сделать настройку таблиц автоматически из робота или из Verifier. По окончанию можем отослать код самого Quik коннектора. По рукам?</div></div><br /><br />если без коммитмента по времени, то по-рукам. :) постораюсь в течении недели осилить, но может быть будет две недели или три - хз.Copyright @ StockSharp Platform LLC 2010 - 2024https://stocksharp.ru/posts/m/10064/глянул. сходу не смог разобраться как это можно сделать, т.к. не нашел исходных кодов где идет работ...2011-07-31T12:23:05Z2011-07-31T12:23:05ZMikhail Sukhovhttps://stocksharp.ru/users/201/info@stocksharp.ru<div class="quote"><span class="quotetitle">President <a href="https://stocksharp.ru/posts/m/10062/"><img src="https://stocksharp.ru/images/icon_latest_reply.gif" title="Перейти" alt="Перейти" /></a></span><div class="innerquote">глянул. <br />сходу не смог разобраться как это можно сделать, т.к. не нашел исходных кодов где идет работа с Квиком.<br /></div></div><br /><br />Сырцы QuikTerminal могу прислать + других классов.<br /><br />Посмотрел на код GetTableSettings, там вообщем-то уже практически все сделано. Поэтому, предлагаю такое условие. Мы вам исходники QuikTerminal + другие необходимые классы, вы нам решение с настройками. А именно. Есть еще метод QuikTerminal.OpenTable, который пока NotImplementedException бросает. Смысл его в том, что, если в Квик не открыта необходимая таблица, он ее должен сам открывать (через пункты меню, что уже, в принципе, сделано с другими вещами). Плюс, думаю, имеет смысл сделать метод по настройке таблицы, добавляя в нее необходимые колонки (получается обратная задача от той, что вы в начале предложили). Тогда можно будет сделать настройку таблиц автоматически из робота или из Verifier. По окончанию можем отослать код самого Quik коннектора. По рукам?Copyright @ StockSharp Platform LLC 2010 - 2024https://stocksharp.ru/posts/m/10062/ Теперь вопрос к Президенту. Прочитайте мою подпись и ответьте, вы готовы это сделать сами и нам пот...2011-07-31T10:14:53Z2011-07-31T10:14:53ZPresidenthttps://stocksharp.ru/users/510/info@stocksharp.ru<div class="quote"><span class="quotetitle">President <a href="https://stocksharp.ru/posts/m/10023/"><img src="https://stocksharp.ru/images/icon_latest_reply.gif" title="Перейти" alt="Перейти" /></a></span><div class="innerquote"><div class="quote"><span class="quotetitle">Mikhail Sukhov <a href="https://stocksharp.ru/posts/m/10020/"><img src="https://stocksharp.ru/images/icon_latest_reply.gif" title="Перейти" alt="Перейти" /></a></span><div class="innerquote"><br />Теперь вопрос к Президенту. Прочитайте мою подпись и ответьте, вы готовы это сделать сами и нам потом уже дать готовый код для вставки в будущие версии?</div></div><br /><br />в выходные гляну насколько мне это под силу.<br /></div></div><br /><br />глянул. <br />сходу не смог разобраться как это можно сделать, т.к. не нашел исходных кодов где идет работа с Квиком.<br />похоже, нужно в деталях разбираться как работает QuikTerminal.GetTableSettings()<br /><br />под решарпером понял что в там идет работа на достаточно низком уровне - PostMessage/SystemWindow/AllChildWindow... а раз так то видимо квик через свой API не выдает информации о таблицах и типах данных в колонках?<br />т.е. можно только узнать все открытые окна и колонки а что это за окна и что это за колонки можно только догадываться - например по именам - это так?<br /><br />также пока не понял как конфигурируются настройки для экспорта стаканов - у QuikTrader есть только одна QuotesTable - значит ли это что настройки всех стаканов обязаны совпадать?<br />Copyright @ StockSharp Platform LLC 2010 - 2024https://stocksharp.ru/posts/m/10023/ Теперь вопрос к Президенту. Прочитайте мою подпись и ответьте, вы готовы это сделать сами и нам пот...2011-07-29T05:57:39Z2011-07-29T05:57:39ZPresidenthttps://stocksharp.ru/users/510/info@stocksharp.ru<div class="quote"><span class="quotetitle">Mikhail Sukhov <a href="https://stocksharp.ru/posts/m/10020/"><img src="https://stocksharp.ru/images/icon_latest_reply.gif" title="Перейти" alt="Перейти" /></a></span><div class="innerquote"><br />Теперь вопрос к Президенту. Прочитайте мою подпись и ответьте, вы готовы это сделать сами и нам потом уже дать готовый код для вставки в будущие версии?</div></div><br /><br />в выходные гляну насколько мне это под силу.<br />Copyright @ StockSharp Platform LLC 2010 - 2024https://stocksharp.ru/posts/m/10020/Ну как я понял речь шла о том, чтобы сначала через DDE вывести названия колонок таблиц, запомнить их...2011-07-28T22:12:28Z2011-07-28T22:12:28ZMikhail Sukhovhttps://stocksharp.ru/users/201/info@stocksharp.ru<div class="quote"><span class="quotetitle">EugeneP <a href="https://stocksharp.ru/posts/m/9945/"><img src="https://stocksharp.ru/images/icon_latest_reply.gif" title="Перейти" alt="Перейти" /></a></span><div class="innerquote">Ну как я понял речь шла о том, чтобы сначала через DDE вывести названия колонок таблиц, запомнить их, а уже затем стартовать DDE без названий колонок..</div></div><br /><br />Не, не очень красивое решение. Мне кажется, лучше создать метод IEnumerable<DdeTableColumn> QuikTrader.GetTableColumns(DdeTable), который бы возвращал реальные настройки в Квике. Метод вызывается один раз при старте и только для тех, кто его решил вызвать (тоесть не при каждом перезапуске ДДЕ и не для всех пользователей). Далее, нужно создать метод DdeTableColumnList.Sync(IEnumerable<DdeTableColumn>) который бы синхронизовывал бы колонки. В итоге выглядело бы так:<br /><br /><div class="code"><strong>Код</strong><div class="innercode"><pre class="brush:csharp">
var trader = new QuikTrader();
trader.SecuritiesTable.Columns.Sync(trader.Terminal.GetTableColumns(trader.SecuritiesTable));</pre>
</div></div><br /><br />Может быть имеет сделать еще метод DdeTable.Sync, который бы внутри себя убирал детали:<br /><br /><div class="code"><strong>Код</strong><div class="innercode"><pre class="brush:csharp">
var trader = new QuikTrader();
trader.SecuritiesTable.Sync();
trader.OrdersTable.Sync();</pre>
</div></div><br /><br />Теперь вопрос к Президенту. Прочитайте мою подпись и ответьте, вы готовы это сделать сами и нам потом уже дать готовый код для вставки в будущие версии?Copyright @ StockSharp Platform LLC 2010 - 2024https://stocksharp.ru/posts/m/10015/ Чем текущий вариант не нравится? да все нравится, но слишком уж много думать и понимать нужно - пор...2011-07-28T17:48:33Z2011-07-28T17:48:59ZPresidenthttps://stocksharp.ru/users/510/info@stocksharp.ru<div class="quote"><span class="quotetitle">Alexander <a href="https://stocksharp.ru/posts/m/9953/"><img src="https://stocksharp.ru/images/icon_latest_reply.gif" title="Перейти" alt="Перейти" /></a></span><div class="innerquote"><br />Чем текущий вариант не нравится?</div></div><br /><br />да все нравится, [biggrin] но слишком уж много думать и понимать нужно - порог входа в S# и сложность поддержки всего комплекса в связке с квиком повышается.Copyright @ StockSharp Platform LLC 2010 - 2024https://stocksharp.ru/posts/m/9953/так замедление будет лишь на "этапе настройки" (пара секунд). А на скорость дальнейшей работы DDE ни...2011-07-27T11:08:33Z2011-07-27T11:08:33ZAlexanderhttps://stocksharp.ru/users/2826/info@stocksharp.ru<div class="quote"><span class="quotetitle">EugeneP <a href="https://stocksharp.ru/posts/m/9952/"><img src="https://stocksharp.ru/images/icon_latest_reply.gif" title="Перейти" alt="Перейти" /></a></span><div class="innerquote">так замедление будет лишь на "этапе настройки" (пара секунд). А на скорость дальнейшей работы DDE никак не скажется.</div></div><br /><br />При каждом старте экспорта DDE будет подниматься дополнительное окно с настройками, его чтение.<br />На этом этапе излишняя как раз работа.<br /><br />Чем текущий вариант не нравится?Copyright @ StockSharp Platform LLC 2010 - 2024https://stocksharp.ru/posts/m/9952/так замедление будет лишь на "этапе настройки" (пара секунд). А на скорость дальнейшей работы DDE ни...2011-07-27T10:53:51Z2011-07-27T10:53:51ZEugenePhttps://stocksharp.ru/users/603/info@stocksharp.ruтак замедление будет лишь на "этапе настройки" (пара секунд). А на скорость дальнейшей работы DDE никак не скажется.Copyright @ StockSharp Platform LLC 2010 - 2024https://stocksharp.ru/posts/m/9948/Ну как я понял речь шла о том, чтобы сначала через DDE вывести названия колонок таблиц, запомнить их...2011-07-27T09:08:36Z2011-07-27T09:08:36ZAlexanderhttps://stocksharp.ru/users/2826/info@stocksharp.ru<div class="quote"><span class="quotetitle">EugeneP <a href="https://stocksharp.ru/posts/m/9945/"><img src="https://stocksharp.ru/images/icon_latest_reply.gif" title="Перейти" alt="Перейти" /></a></span><div class="innerquote">Ну как я понял речь шла о том, чтобы сначала через DDE вывести названия колонок таблиц, запомнить их, а уже затем стартовать DDE без названий колонок..</div></div><br /><br />Я об этом и написал - что для каждой таблицы будет вызываться лишнее действие (для того чтобы узнать где какая колонка) - за счёт этого медленнее.Copyright @ StockSharp Platform LLC 2010 - 2024https://stocksharp.ru/posts/m/9945/Ну как я понял речь шла о том, чтобы сначала через DDE вывести названия колонок таблиц, запомнить их...2011-07-27T08:38:02Z2011-07-27T08:38:02ZEugenePhttps://stocksharp.ru/users/603/info@stocksharp.ruНу как я понял речь шла о том, чтобы сначала через DDE вывести названия колонок таблиц, запомнить их, а уже затем стартовать DDE без названий колонок..Copyright @ StockSharp Platform LLC 2010 - 2024https://stocksharp.ru/posts/m/9894/Экспорт будет замедляться, т.к.: 1) если передавать данные по DDE с названием колонок - это намного ...2011-07-26T10:43:18Z2011-07-26T10:43:18ZAlexanderhttps://stocksharp.ru/users/2826/info@stocksharp.ruЭкспорт будет замедляться, т.к.:<br />1) если передавать данные по DDE с названием колонок - это намного медленнее работает, описывали документацию;<br />2) если дополнительно открывать окно редактирования таблицы и считывать данные оттуда - медленнее за счёт дополнительных действий для каждой из колонок.<br /><br />Т.е. по сути ненужная функциональность - дополнительные колонки добавляет малая часть пользователей, если поменяли порядок - вставили свои пару методов в код - всё работает.<br />Настройки Квика от версии к версии изменяется не так сильно - самые большие изменения как раз будут в 3.2 final по сравнению с 3.1. До этого изменений было минимум и больше их пока не планируется - всё что хотели - сделали и поддержали.<br /><br />Если реализовать передачу заголовок таблиц - будет дополнительное замедление экспорта для всех пользователей ради мнимой пользы для считанных пользователей. Я против.<br /><br /><br />Если кому есть что возразить - напишите, может я и не прав.Copyright @ StockSharp Platform LLC 2010 - 2024https://stocksharp.ru/posts/m/9880/См. документацию, 4ый пункт Если колонки добавляются не в конец, а перемешаны с основными колонками,...2011-07-26T04:50:49Z2011-07-26T04:51:20ZPresidenthttps://stocksharp.ru/users/510/info@stocksharp.ru<div class="quote"><span class="quotetitle">Alexander <a href="https://stocksharp.ru/posts/m/9609/"><img src="https://stocksharp.ru/images/icon_latest_reply.gif" title="Перейти" alt="Перейти" /></a></span><div class="innerquote"><a href="http://stocksharp.com/doc/html/4261879e-9bb3-482c-9fc5-27ecb07bdf5e.htm" title="http://stocksharp.com/doc/html/4261879e-9bb3-482c-9fc5-27ecb07bdf5e.htm">См. документацию, 4ый пункт</a><br /><br /><div class="quote"><span class="quotetitle">Цитата:</span><div class="innerquote">Если колонки добавляются не в конец, а перемешаны с основными колонками, то необходимо вставлять колонки относительно их порядка сделования друг за другом (DdeTableColumn.Index) в таблице:</div></div><br /><div class="code"><strong>Код</strong><div class="innercode"><pre class="brush:csharp">
// вставить колонку волатильность, чтобы она была 5-ой с начала (нумерация идет с нуля)
// все последующие колонки за волатильностью автоматически перестраивают свой порядковый номер
this.Trader.SecuritiesTable.Columns.Insert(4, DdeSecurityColumns.Volatility);</pre>
</div></div></div></div><br /><br />понял что это можно делать вручную.<br />мое предложение заключается в том чтобы это происходило автоматически в момент соединения с Квиком:<br />1. считываются существующие заголовки колонок у таблиц<br />2. сравниваются с предопределенными именами колонок<br />3. по результатам сравнения конфигурится импорт<br />4. если какие-то колонки не найдены то экспешн<br /><br />в результате<br />- можно будет менять порядок колонок не заботясь о перепрограммировании экспорта<br />- при выходе новых версий больше шанс что не нужно будет квик перенастраивать<br />- по сообщению об ("не найдена колонка XXX в таблице YYY") и можно будет сделать исправление руками в таблице без залезания в документацию (чтобы понять на каком месте она должна быть) или сброса настроек квика (через загрузку wnd-файла)<br /><br />важно что на скорость импорта это не влияет, а на удобство влияет положительно.Copyright @ StockSharp Platform LLC 2010 - 2024https://stocksharp.ru/posts/m/9609/См. документацию, 4ый пункт Если колонки добавляются не в конец, а перемешаны с основными колонками,...2011-07-15T23:01:29Z2011-07-15T23:01:29ZAlexanderhttps://stocksharp.ru/users/2826/info@stocksharp.ru<a href="http://stocksharp.com/doc/html/4261879e-9bb3-482c-9fc5-27ecb07bdf5e.htm" title="http://stocksharp.com/doc/html/4261879e-9bb3-482c-9fc5-27ecb07bdf5e.htm">См. документацию, 4ый пункт</a><br /><br /><div class="quote"><span class="quotetitle">Цитата:</span><div class="innerquote">Если колонки добавляются не в конец, а перемешаны с основными колонками, то необходимо вставлять колонки относительно их порядка сделования друг за другом (DdeTableColumn.Index) в таблице:</div></div><br /><div class="code"><strong>Код</strong><div class="innercode"><pre class="brush:csharp">
// вставить колонку волатильность, чтобы она была 5-ой с начала (нумерация идет с нуля)
// все последующие колонки за волатильностью автоматически перестраивают свой порядковый номер
this.Trader.SecuritiesTable.Columns.Insert(4, DdeSecurityColumns.Volatility);</pre>
</div></div>Copyright @ StockSharp Platform LLC 2010 - 2024https://stocksharp.ru/posts/m/9607/Помню что в описании было указано что заголовки в таблицах игнорируются и экспорт DDE идет по номеру...2011-07-15T17:45:37Z2011-07-15T17:45:37ZPresidenthttps://stocksharp.ru/users/510/info@stocksharp.ruПомню что в описании было указано что заголовки в таблицах игнорируются и экспорт DDE идет по номеру колонки - для получения максимальной скорости экспорта.<br />Согласен с этим, но в тоже время сталкивался с тем что это создает неудобства - хочется добавить свои колонки в таблицы, и иногда - например в случае со стаканом - не хочется добавлять их в конец.<br /><br />Поэтому предлагаю такую фичу:<br />- при запуске импорта считыать в таблицах имена колонок и запоминать их номера<br />- а дальше уже вести экспорт по номерам.<br /><br />Т.о. и скорость будет не хуже.<br />И колонки можно будет настроить какие угодно.<br /><br />Как вариант - сделать такое только для стаканов.Copyright @ StockSharp Platform LLC 2010 - 2024