Экспорт произвольных таблиц. Вопрос касательно примера~/topic/1547/ehksport-proizvolnyh-tablits_-vopros-kasatelno-primera/Copyright @ StockSharp Platform LLC 2010 - 20242024-03-29T15:14:54Zhttps://stocksharp.com/images/logo.pnghttps://stocksharp.com/posts/m/22468/Можно: 1. В таблицы добавить столбец с названием инструмента 2. Сделать разные классы для разных таб...2012-11-13T12:26:08Z2012-11-13T12:26:08ZLunokhodhttps://stocksharp.com/users/27806/info@stocksharp.com<div class="quote"><span class="quotetitle">esper <a href="https://stocksharp.com/posts/m/22467/"><img src="https://stocksharp.com/images/icon_latest_reply.gif" title="Go to" alt="Go to" /></a></span><div class="innerquote">Можно:<br />1. В таблицы добавить столбец с названием инструмента<br />2. Сделать разные классы для разных таблиц</div></div><br /><br />Собственно, в результате я и сделал по первому пункту : добавил два столбца, секьюрити код и код класса инструмента.<br />Второй пункт, полагаю, реализовать будет весьма проблематично в моем случае, поскольку в QPL-файлы для каждой таблицы отличаются только таймфреймом и инструментом.Copyright @ StockSharp Platform LLC 2010 - 2024https://stocksharp.com/posts/m/22467/Можно: 1. В таблицы добавить столбец с названием инструмента 2. Сделать разные классы для разных таб...2012-11-13T11:15:23Z2012-11-13T11:15:23Zesperhttps://stocksharp.com/users/5990/info@stocksharp.comМожно:<br />1. В таблицы добавить столбец с названием инструмента<br />2. Сделать разные классы для разных таблицCopyright @ StockSharp Platform LLC 2010 - 2024https://stocksharp.com/posts/m/22466/А как понять к какой таблице они относятся, если тип строк(QuikCandle) во всех случаях одинаков ? А ...2012-11-13T10:01:06Z2012-11-13T10:03:46ZLunokhodhttps://stocksharp.com/users/27806/info@stocksharp.com<div class="quote"><span class="quotetitle">esper <a href="https://stocksharp.com/posts/m/22460/"><img src="https://stocksharp.com/images/icon_latest_reply.gif" title="Go to" alt="Go to" /></a></span><div class="innerquote"><div class="quote"><span class="quotetitle">Lunokhod <a href="https://stocksharp.com/posts/m/22431/"><img src="https://stocksharp.com/images/icon_latest_reply.gif" title="Go to" alt="Go to" /></a></span><div class="innerquote">А как понять к какой таблице они относятся, если тип строк(QuikCandle) во всех случаях одинаков ?</div></div><br />А каким образом вы экспортируете разные таблицы с использованием одного типа? В примере, у QuikCandle есть атрибут [DdeCustomTable("Исторические свечки")], который явно задает название таблицы.</div></div><br /><br />Обратите внимание на строку <b>ct.TableName = caption;</b><br />Таким образом мы можем указать любое имя таблицы через параметр TableName. А имя "Исторические свечки" назначается по умолчанию при создании экземпляра класса DdeCustomTable, если мы указываем в качестве аргумента в конструкторе тип QuikCandle.<br />Функцию, которая приведена в коде выше, можно выполнять многократно с разными именами таблиц. И все прекрасно экспортируется.Copyright @ StockSharp Platform LLC 2010 - 2024https://stocksharp.com/posts/m/22460/А как понять к какой таблице они относятся, если тип строк(QuikCandle) во всех случаях одинаков ? А ...2012-11-13T05:26:35Z2012-11-13T05:26:35Zesperhttps://stocksharp.com/users/5990/info@stocksharp.com<div class="quote"><span class="quotetitle">Lunokhod <a href="https://stocksharp.com/posts/m/22431/"><img src="https://stocksharp.com/images/icon_latest_reply.gif" title="Go to" alt="Go to" /></a></span><div class="innerquote">А как понять к какой таблице они относятся, если тип строк(QuikCandle) во всех случаях одинаков ?</div></div><br />А каким образом вы экспортируете разные таблицы с использованием одного типа? В примере, у QuikCandle есть атрибут [DdeCustomTable("Исторические свечки")], который явно задает название таблицы.Copyright @ StockSharp Platform LLC 2010 - 2024https://stocksharp.com/posts/m/22431/Коллеги! Подскажите, а есть ли возможность в S# идентифицировать таблицу, строки которой передаются ...2012-11-12T12:45:27Z2012-11-12T12:45:27ZLunokhodhttps://stocksharp.com/users/27806/info@stocksharp.comКоллеги!<br /><br />Подскажите, а есть ли возможность в S# идентифицировать таблицу, строки которой передаются в событиях NewCustomTables и CustomTablesChanged ?<br />Дело в том, что у меня возникла необходимость передать роботу таблицы часовых свечек по нескольким инструментам одновременно.<br />В Квике открыто несколько таблиц со свечками, сделанными при помощи модификации файла CHARTS.QPL из примера к библиотеке S#.<br />Все таблицы имеют разные заголовки. Загрузка производится примерно таким кодом :<br /><br /><div class="code"><strong>Code</strong><div class="innercode"><pre class="brush:csharp">
public void AddCandleTable(String caption)
{
DdeCustomTable ct = new DdeCustomTable(typeof(QuikCandle)); ;
try
{
ct.TableName = caption;
trader.CustomTables.Add(ct);
trader.StartExport(ct);
}
catch (Exception ex)
{
PrintDebugMessage(ex.Message, Cl.T_DEBUG, true);
}
}
</pre>
</div></div><br /><br />Где caption - заголовок таблицы в Квике<br /><br />Но когда приходят события NewCustomTables или CustomTablesChanged, то в качестве аргумента передаются только тип строк и массив собственно строк.<br />А как понять к какой таблице они относятся, если тип строк(QuikCandle) во всех случаях одинаков ?Copyright @ StockSharp Platform LLC 2010 - 2024https://stocksharp.com/posts/m/9321/Так, похоже что-то получилось... Прописал атрибут IdentityAttribute у своей таблицы так public strin...2011-07-06T06:38:45Z2011-07-06T06:38:45Zkashttps://stocksharp.com/users/28238/info@stocksharp.comТак, похоже что-то получилось...<br />Прописал атрибут IdentityAttribute у своей таблицы так<br /><br /> [DdeCustomColumn("Базовый актив", Order = 0)]<br /> [Identity()]<br /> public string BazAct { get; set; }<br /><br />Событие CustomTablesChanged вызывается. Правда пока не понял как заменить изменившиеся строки, и не могу понять чем вообще это событие отличается от NewCustomTables, вроде бы в него также приходит обновившаяся строка?<br />И еще кто-нибудь знает как обновлять свою коллекцию раз в заданный промежуток времени. Я ради обучения экспортирую таблицу с параметрами опционов, и мне достаточно обновляться раз в секунду, а там событие обновления происходит десятки раз за секунду.Copyright @ StockSharp Platform LLC 2010 - 2024https://stocksharp.com/posts/m/9319/Тоже интересен данный вопрос. Хочу не добавлять строчки а заменять их. Я так понимаю нужно вызывать ...2011-07-06T05:27:38Z2011-07-06T05:27:38Zkashttps://stocksharp.com/users/28238/info@stocksharp.comТоже интересен данный вопрос. Хочу не добавлять строчки а заменять их. Я так понимаю нужно вызывать событие QuikTrader.CustomTablesChanged. В документации написано что одно из полей должно быть помечено аттрибутом IdentityAttribute, но как это все сделать я сам разобраться не смог. Вы не могли бы пояснить как это сделать? Примерчик небольшой дать? <br />Copyright @ StockSharp Platform LLC 2010 - 2024https://stocksharp.com/posts/m/7766/Расскажите почему, если делать подряд Clear, а потом AddRange без проверки Count, то выскакивает иск...2011-04-29T08:26:55Z2011-04-29T08:26:55ZMikhail Sukhovhttps://stocksharp.com/users/201/info@stocksharp.com<div class="quote"><span class="quotetitle">RyleT <a href="https://stocksharp.com/posts/m/7764/"><img src="https://stocksharp.com/images/icon_latest_reply.gif" title="Go to" alt="Go to" /></a></span><div class="innerquote">Расскажите почему, если делать подряд Clear, а потом AddRange без проверки Count, то выскакивает исключение TargetIvokationException. Может вы предложите вариант решения?<br /></div></div><br /><br /><a href="http://stocksharp.com/doc/help/html/a0a4c8df-2bba-4e1e-8ba9-e1fa98728f92.htm
" title="http://stocksharp.com/doc/help/html/a0a4c8df-2bba-4e1e-8ba9-e1fa98728f92.htm
">http://stocksharp.com/do...e-8ba9-e1fa98728f92.htm
</a><br /><br /><div class="quote"><span class="quotetitle">RyleT <a href="https://stocksharp.com/posts/m/7764/"><img src="https://stocksharp.com/images/icon_latest_reply.gif" title="Go to" alt="Go to" /></a></span><div class="innerquote">Идентификация по времени мне не подходит, я планирую экспортировать не свечи, а свою таблицу написанную на QPILE, которая обновляется каждую секунду. На текущем этапе я бы хотел, чтобы точно такая же таблица точно также отображалась в окне моей программы написанной на C# с применением S#.</div></div><br /><br />У таблица без уникального поля?Copyright @ StockSharp Platform LLC 2010 - 2024https://stocksharp.com/posts/m/7764/Расскажите почему, если делать подряд Clear, а потом AddRange без проверки Count, то выскакивает иск...2011-04-29T06:38:00Z2011-04-29T06:38:00ZRyleThttps://stocksharp.com/users/27693/info@stocksharp.comРасскажите почему, если делать подряд Clear, а потом AddRange без проверки Count, то выскакивает исключение TargetIvokationException. Может вы предложите вариант решения?<br /><br />Идентификация по времени мне не подходит, я планирую экспортировать не свечи, а свою таблицу написанную на QPILE, которая обновляется каждую секунду. На текущем этапе я бы хотел, чтобы точно такая же таблица точно также отображалась в окне моей программы написанной на C# с применением S#.Copyright @ StockSharp Platform LLC 2010 - 2024https://stocksharp.com/posts/m/7755/Идентифицируйте свечки по времени.2011-04-28T17:37:14Z2011-04-28T17:37:14ZMikhail Sukhovhttps://stocksharp.com/users/201/info@stocksharp.comИдентифицируйте свечки по времени.Copyright @ StockSharp Platform LLC 2010 - 2024https://stocksharp.com/posts/m/7731/Здравствуйте. В примере "Экспорт произвольных таблиц" SampleDdeCustomTable идет заполнение экземпляр...2011-04-27T19:22:23Z2011-04-27T19:22:23ZRyleThttps://stocksharp.com/users/27693/info@stocksharp.comЗдравствуйте. В примере "Экспорт произвольных таблиц" SampleDdeCustomTable идет заполнение экземпляра класса ThreadSafeObservableCollection значениями из произвольной таблицы реализованной на QPILE, который автоматически попадает в свойство ItemSource компонента ListView. Но сделано это так, что с каждым пересчетом таблицы в Quik'e в экземпляр класса ThreadSafeObservableCollection добавляется новая порция строк устремляя их количество к бесконечности:<br /><br /><div class="code"><strong>Code</strong><div class="innercode">this.Trader.NewCustomTables += (type, objects) =><br />{<br /> // нас интересует только QuikCandle<br /> if (type == typeof(QuikCandle))<br /> _candlesWindow.Candles.AddRange(objects.Cast<QuikCandle>());<br />};</div></div><br /><br />Подскажите пожалуйста как изменить код так, чтобы новые строки не добавлялись, а заменяли существующие. <br />Мой вариант решения меня не совсем устраивает, так как после каждой второй операции экспорта ListView остается пустым:<br /><br /><div class="code"><strong>Code</strong><div class="innercode">this.Trader.NewCustomTables += (type, objects) =><br />{<br /> if (type == typeof(QuikCandle))<br /> {<br /> if (this.Candles.Count > 0)<br /> this.Candles.Clear();<br /> if (this.Candles.Count == 0) <br /> this.Candles.AddRange(objects.Cast<QuikCandle>());<br /> }<br />};</div></div><br />Copyright @ StockSharp Platform LLC 2010 - 2024