﻿<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type='text/css' href='https://stocksharp.ru/css/style.css'?>
<?xml-stylesheet type='text/css' href='https://stocksharp.ru/css/bbeditor.css'?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title type="html">Сообщество. StockSharp</title>
  <id>https://stocksharp.ru/handlers/atom.ashx?category=community&amp;page=242</id>
  <rights type="text">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  <updated>2026-04-17T00:02:18Z</updated>
  <logo>https://stocksharp.ru/images/logo.png</logo>
  <link href="https://stocksharp.ru/handlers/atom.ashx?category=community&amp;page=242" rel="self" type="application/rss+xml" />
  <entry>
    <id>https://stocksharp.ru/topic/1867/</id>
    <title type="text">Что порождает событие NewPortfolios?</title>
    <published>2011-09-02T13:40:30Z</published>
    <updated>2011-09-02T13:40:30Z</updated>
    <author>
      <name>Сергей Гаврилов</name>
      <uri>https://stocksharp.ru/users/28633/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="Quik" />
    <content type="html">Что нужно сделать, чтобы возникло событие NewPortfolios? Вызвать какой-то метод или оно просто возникает при коннекте с Квиком?</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/1866/</id>
    <title type="text">Правило PositionChanged не срабатывает</title>
    <published>2011-09-02T12:45:26Z</published>
    <updated>2011-09-02T12:45:26Z</updated>
    <author>
      <name>freelancer</name>
      <uri>https://stocksharp.ru/users/28572/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="Quik" />
    <content type="html">Ставлю стоп так (в &lt;em&gt;action&lt;/em&gt;):&lt;br /&gt;&lt;br /&gt;&lt;div class="code"&gt;&lt;strong&gt;Код&lt;/strong&gt;&lt;div class="innercode"&gt;&lt;pre class="brush:csharp"&gt;
this.
When(this.PositionChanged()).
Do(action);&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Но правило не выполняется. В чем может быть проблема ?</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/1865/</id>
    <title type="text">Проблема с котированием</title>
    <published>2011-09-02T08:54:08Z</published>
    <updated>2011-09-02T08:54:08Z</updated>
    <author>
      <name>mdv</name>
      <uri>https://stocksharp.ru/users/6039/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="StockSharp" />
    <content type="html">Здравствуйте! Проблема такая. Стратегия котирования запускается, пишет в лог, что запустилась и на этом зависает, не выставляя никакие заявки.&lt;br /&gt;Что характерно, этот же самый код отлично работает под QUIK JUNIOR котирование выполняется и завершается. Под нормальным квиком обычные заявки работают правильно, то есть настройки базовой стратегии правильные. Экспорт стакана запускаю (иначе бы под джуниором не работало). Может кто сталкивался? Я чувствую, что тут какая-то совсем глупая ошибка, но не могу понять даже, с какого боку копать ее. Может есть возможность посмотреть более подробные логи стратегии?...</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/1863/</id>
    <title type="text">EmulationTrader не понимает тиков с одинаковым Time</title>
    <published>2011-09-01T07:02:43Z</published>
    <updated>2011-09-01T07:02:43Z</updated>
    <author>
      <name>valenock</name>
      <uri>https://stocksharp.ru/users/167/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="тестирование" />
    <content type="html">Есть локальная база тиков по фучу РТС в формате FileStorage. Создана перегонкой из текстовых файлов с финама, соответственно все Time атрибуты идут без миллисекунд.&lt;br /&gt;В секунду могут проходить десятки разных сделок с разным объёмом и ценой. StorageAPI нормально к этому относится и умеет их выдавать последовательно - так, как они записаны в файл.&lt;br /&gt;EmulationTrader.NewTrades их так же видит без проблем.&lt;br /&gt;Но уже когда мы тестируем стратегию в EmulationTrader то Strategy.NewTrades уже видит ТОЛЬКО ОДНУ сделку в секунду, а именно из всех сделок в заданную секунду он видит ТОЛЬКО последнюю сделку.&lt;br /&gt;&lt;br /&gt;Проверялось так - выводим все сделки в EmulationTrader.NewTrades и сравниваем со сделками в  Strategy.When(Security.SecurityNewTrades()).Do(Process);&lt;br /&gt;Первый метод вываливает ВСЕ - второй только последнюю сделку за секунду.&lt;br /&gt;Параметр EmulationTrader.MarketTimeChangedInterval особого влияния не оказал - чаще чем 1 секунда сделки не появлялись, Strategy.Process() не вызывался.&lt;br /&gt;&lt;br /&gt;Без какого-либо изменения кода проблему удалось решить перегонкой базы FileStorage - просто добавив миллисекунды всем сделкам по возрастанию - первая сделка в секунду 00мс, вторая 01мс и т.д.&lt;br /&gt;&lt;br /&gt;видимо, баг ?&lt;br /&gt;пофиксить не могу - нет кода</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/1862/</id>
    <title type="text">EmulationTrader не следит за временем</title>
    <published>2011-08-31T22:17:41Z</published>
    <updated>2011-08-31T22:17:41Z</updated>
    <author>
      <name>valenock</name>
      <uri>https://stocksharp.ru/users/167/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="тестирование" />
    <content type="html">При вызове&lt;br /&gt;&lt;div class="code"&gt;&lt;strong&gt;Код&lt;/strong&gt;&lt;div class="innercode"&gt;&lt;pre class="brush:csharp"&gt;
_historyTrader.Start(new DateTime(2011, 06, 01), new DateTime(2011, 06, 02, 12, 00, 00));&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;тестирование будет идти до конца дня, а не до 12:00:00.&lt;br /&gt;&lt;br /&gt;Также не понятно как протестировать только один день на истории - при вызове&lt;br /&gt;&lt;div class="code"&gt;&lt;strong&gt;Код&lt;/strong&gt;&lt;div class="innercode"&gt;&lt;pre class="brush:csharp"&gt;
_historyTrader.Start(new DateTime(2011, 06, 01), new DateTime(2011, 06, 01));&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;выскочит exception &amp;quot;начало и конец не могут совпадать&amp;quot;. При вызове&lt;br /&gt;&lt;div class="code"&gt;&lt;strong&gt;Код&lt;/strong&gt;&lt;div class="innercode"&gt;&lt;pre class="brush:csharp"&gt;
_historyTrader.Start(new DateTime(2011, 06, 01), new DateTime(2011, 06, 02));&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;тестирование идёт уже два дня.</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/1861/</id>
    <title type="text">FileStorage - отдаёт сделки только первый раз ?</title>
    <published>2011-08-31T16:14:08Z</published>
    <updated>2011-08-31T16:14:08Z</updated>
    <author>
      <name>valenock</name>
      <uri>https://stocksharp.ru/users/167/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="тестирование" />
    <content type="html">Борюсь с проблемой, которую не получается пока никак локализовать.&lt;br /&gt;Сделал класс HistoryTest, в котором один метод, который запускает тестирование на истории и выходит, когда оно заканчивается.&lt;br /&gt;Первый раз, когда я создаю экземпляр класса и запускаю тестирование на исполнение - всё работает как надо.&lt;br /&gt;Второй и последующие разы создаю НОВЫЙ экземпляр класса и не получаю от storageAPI ни новых сделок ни даже NewSecurities не срабатывает ни разу. totalStorageTrades так и остаётся 0.&lt;br /&gt;&lt;br /&gt;Это я что-то делаю не так или storageAPI не сбрасывает текущую позицию в файле или счётчик трейдов ?&lt;br /&gt;&lt;br /&gt;Класс использую так:&lt;br /&gt;&lt;div class="code"&gt;&lt;strong&gt;Код&lt;/strong&gt;&lt;div class="innercode"&gt;&lt;pre class="brush:csharp"&gt;
            
for (var i = 1000; i &amp;lt; 30000; i+= 1000)
{
     var storage = new TradingStorage(new FileStorage(PathHistoryStorage)) { BasePath = PathHistoryStorage };
     var test = new HistoryTest()
     {
         PathHistoryStorage = PathHistoryStorage,
         Security = _rts,
         FileLog = fLog,
         EmulationStartTime =  new DateTime(2011, 06, 01),
         EmulationStopTime =  new DateTime(2011, 06, 02, 12, 00, 00),
         storage = storage
     };
     test.RunHistoryTest2(i);
     while (!test.IsFinished()) System.Threading.Thread.Sleep(10000);
     Console.ReadLine();
}
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Сам класс:&lt;br /&gt;&lt;div class="code"&gt;&lt;strong&gt;Код&lt;/strong&gt;&lt;div class="innercode"&gt;&lt;pre class="brush:csharp"&gt;
    
class HistoryTest
{
        public string PathHistoryStorage;
        private EmulationTrader _historyTrader;
        public Security Security;
        private StrategyTest _strategy;
        private DateTime _lastTitleUpdateDate;
        public DateTime EmulationStartTime = new DateTime(2011, 06, 01);
        public DateTime EmulationStopTime = new DateTime(2011, 09, 02);
        public StreamWriter FileLog;
        public TradingStorage storage;

        //---------------------------------------------------------------------------------------------------------------
        //
        //---------------------------------------------------------------------------------------------------------------
        public void RunHistoryTest2(int period)
        {
            // тестовый портфель
            var portfolio = new Portfolio { Name = &amp;quot;TeST&amp;quot; };

            // инициализируем настройки (инструмент в истории обновляется раз в 100ms)
            var timeFrame = TimeSpan.FromSeconds(1);
            _historyTrader = new EmulationTrader(new[] { Security }, new[] { portfolio })
            {
                MarketTimeChangedInterval = timeFrame,
                Storage = storage,
                WorkingTime = Exchange.Rts.WorkingTime,
                DaysInMemory = 1,
            };

            Console.WriteLine(&amp;quot;==============================================================&amp;quot;);
            _strategy = new StrategyTest
            {
                Volume = 1,
                Portfolio = portfolio,
                Security = Security,
                Trader = _historyTrader,
                period = period,
            };

            _historyTrader.NewSecurities += newSecs =&amp;gt; { foreach (var security in newSecs) Console.WriteLine(&amp;quot;Актив: &amp;quot; + security.Id + &amp;quot; &amp;quot; + security.Name); };
            var totalStorageTrades = 0;
            _historyTrader.NewTrades += trades =&amp;gt;{ totalStorageTrades += trades.Count(); };
            
            _historyTrader.StateChanged += () =&amp;gt;
            {
                if (_historyTrader.State == EmulationStates.Stopped)
                {
                    Console.WriteLine(&amp;quot;TotalStorageTrades = &amp;quot; + totalStorageTrades);
                    Console.WriteLine(&amp;quot;FINISHED 1 run...&amp;quot;);
                    _strategy.Stop();
                    _strategy.Dispose();
                    _historyTrader.StopExport();
                    _historyTrader.Disconnect();
                    _historyTrader.Dispose();
                    storage.GetTradeStorage(Security).AllDates.GetEnumerator().Reset();
                    storage = null;
                }
                // запускаем стратегию когда эмулятор запустился
                else if (_historyTrader.State == EmulationStates.Started) _strategy.Start();
            };

            // запускаем экспорт, чтобы инициализировать переданными инструментами и портфелями
            // необходимоые свойства HistoryEmulationTrader
            _historyTrader.Connect();
            _historyTrader.StartExport();

            // Запуск начала тестирования: 
            _historyTrader.Start(EmulationStartTime, EmulationStopTime);
        }
        //---------------------------------------------------------------------------------------------------------------
        //
        //---------------------------------------------------------------------------------------------------------------
        public bool IsFinished()
        {
            return _historyTrader == null || _historyTrader.State == EmulationStates.Stopped;
        }
}&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/1860/</id>
    <title type="text">[BUG?] IsSyncRegister</title>
    <published>2011-08-31T10:34:00Z</published>
    <updated>2011-08-31T10:34:00Z</updated>
    <author>
      <name>Church</name>
      <uri>https://stocksharp.ru/users/459/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="StockSharp" />
    <content type="html">Свойство CandleManager.IsSyncRegister, судя по всему, не работает.&lt;br /&gt;&lt;br /&gt;Тестовый код:&lt;br /&gt;&lt;div class="code"&gt;&lt;strong&gt;Код&lt;/strong&gt;&lt;div class="innercode"&gt;&lt;pre class="brush:csharp"&gt;
AddInfoLog(&amp;quot;IsSyncRegister = {0}&amp;quot;, _candleManager.IsSyncRegister);
AddInfoLog(&amp;quot;Регистрация свечек...&amp;quot;);
//_candleToken = _candleManager.RegisterCandles((new TimeFrameCandle()).GetType(), this.Security, TimeSpan.FromMinutes(1));
_candleToken = _candleManager.RegisterTimeFrameCandles(Security, _timeFrame);
AddInfoLog(&amp;quot;Свечки зарегистрированы.&amp;quot;);

AddInfoLog(&amp;quot;candlesize will be &amp;quot;+(Math.Max(Math.Max(_longPer, _shortPer), _atrPer) + 1));

var cc = _candleManager.GetCandles(_candleToken, Math.Max(Math.Max(_longPer, _shortPer), _atrPer) + 1);
AddInfoLog(&amp;quot;cc size = {0}&amp;quot;,cc.Count());

Thread.Sleep(5000);

AddInfoLog(&amp;quot;Попытка №2&amp;quot;);

cc = _candleManager.GetCandles(_candleToken, Math.Max(Math.Max(_longPer, _shortPer), _atrPer) + 1);
AddInfoLog(&amp;quot;cc size = {0}&amp;quot;, cc.Count());&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Результат:&lt;br /&gt;&lt;div class="code"&gt;&lt;strong&gt;Код&lt;/strong&gt;&lt;div class="innercode"&gt;&lt;pre class="brush:plain"&gt;
AC$ 31.08.2011 14:27:15.009 IsSyncRegister = True
AC$ 31.08.2011 14:27:15.010 Регистрация свечек...
AC$ 31.08.2011 14:27:15.049 Свечки зарегистрированы.
AC$ 31.08.2011 14:27:15.050 candlesize will be 28
AC$ 31.08.2011 14:27:15.053 cc size = 0
AC$ 31.08.2011 14:27:20.054 Попытка №2
AC$ 31.08.2011 14:27:20.058 cc size = 28&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Могу попробовать самостоятельно пофиксить, если откроете мне тот участок кода.</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/1859/</id>
    <title type="text">WinForms или WPF?</title>
    <published>2011-08-31T07:24:03Z</published>
    <updated>2011-08-31T07:24:03Z</updated>
    <author>
      <name>SergKuz</name>
      <uri>https://stocksharp.ru/users/28330/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="Алготрейдинг" />
    <content type="html">Добрый день!&lt;br /&gt;Подскажите, пожалуйста, возможно ли написание графических интерфейсов WinForms или нужно использовать только WPF?</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/1858/</id>
    <title type="text">Обновил Гидру до 3.2.10 - при запуске вылазит ошибка</title>
    <published>2011-08-30T17:59:09Z</published>
    <updated>2011-08-30T17:59:09Z</updated>
    <author>
      <name>DT</name>
      <uri>https://stocksharp.ru/users/28052/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="Hydra" />
    <content type="html">&lt;a href='http://narod.ru/disk/23472135001/%D0%93%D0%B8%D0%B4%D1%80%D0%B0%203.2.10.PNG.html' class='lightview' data-lightview-options="skin: 'mac'" data-lightview-group='mixed'&gt;&lt;img src="http://narod.ru/disk/23472135001/%D0%93%D0%B8%D0%B4%D1%80%D0%B0%203.2.10.PNG.html" style='max-width: 600px;' alt="скрин" title="скрин" /&gt;&lt;/a&gt;</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/1857/</id>
    <title type="text">Проблемы с функцией Option.IV()</title>
    <published>2011-08-30T14:50:21Z</published>
    <updated>2011-08-30T14:50:21Z</updated>
    <author>
      <name>kas</name>
      <uri>https://stocksharp.ru/users/28238/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="Quik" />
    <content type="html">Периодически, без какой-либо закономерности программа вылетает и выдает исключение на этом методе &lt;br /&gt;Function does not accept a floating point Not-a-Number value.&lt;br /&gt;Число точно не NaN, оно нормальное, даже проверку ставил IsNaN выдает false, переходит к Option.IV()и ошибка выскакивает...&lt;br /&gt;В чем косяк вообще понять не могу, нормальное число я в нее передаю, точно, проверял кучу раз. &lt;br /&gt;&lt;br /&gt;Да кстати пишу так  Option.IV(premium). Premium типа decimal.</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/1856/</id>
    <title type="text">Тип ордера FillOrCancel</title>
    <published>2011-08-30T14:45:31Z</published>
    <updated>2011-08-30T14:45:31Z</updated>
    <author>
      <name>Church</name>
      <uri>https://stocksharp.ru/users/459/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="Quik" />
    <content type="html">Иногда случается ошибка:&lt;br /&gt;&lt;div class="code"&gt;&lt;strong&gt;Код&lt;/strong&gt;&lt;div class="innercode"&gt;&lt;pre class="brush:plain"&gt;
AC$ 30.08.2011 18:00:09.579 [alpha] System.ArgumentException: Транзакции &amp;#39;ACCOUNT=SPBFUT00czw; CLIENT_CODE=SPBFUT00czw; TRANS_ID=57550479; CLASSCODE=SPBFUT; SECCODE=RIU1; QUANTITY=1; OPERATION=S; TYPE=L; ACTION=NEW_ORDER; PRICE=165065; EXECUTION_CONDITION=FILL_OR_KILL;&amp;#39; не была зарегистрирована. Причина &amp;#39;Ошибка создания заявки. [FORTS] &amp;quot;Неполное сведение FOK заявки.&amp;quot;.&amp;#39;.
Parameter name: transactionTxt
   at #=qWVb3hlEq_bsi0PlbyLoPNGtmi$sN1GAXJmEglIOuywk=.#=qe2XG1WRxcPRM7kYqWweGZ$USUGIpyehjN9FXfaVbRqk=(String #=qoaJFz4elMnSbwxESEkocqA==, OrderStatus&amp;amp; #=qF9fiowcCBpgiw2vJwkeiPQ==, UInt32&amp;amp; #=qVABNTzTaO$dkfjwyZVXGRQ==, Int64&amp;amp; #=qufGPkJZSaS$_1AhJXi0Q_Q==, String&amp;amp; #=qZYLywgaI4aboC1fy22p5YQ==)
   at StockSharp.Quik.QuikTrader.#=qIiEPgk1OxvfO3bGPdOk80whIsPAOOUvmEP23HUwhR00=(Order #=qE1hxwYv7mjShNv3VqnQ$4Q==, TransactionBuilder #=qMayz96ds6ngzqy1uCpM0Mw==)
   at StockSharp.Quik.QuikTrader.OnRegisterOrder(Order order)
   at StockSharp.Algo.BaseTrader.RegisterOrder(Order order)
   at StockSharp.Algo.Strategies.Strategy.RegisterOrder(Order order)
   at Church.Strategies.Alpha.Alpha.GoShort()
   at Church.Strategies.Alpha.Alpha.Process()
   at StockSharp.Algo.Strategies.StrategyRule.#=qFRqbpWkXa_e5qv6Y_c3Cjqa84vmqnWUiNQozd3UzbCQ=.#=qE64_FjSgaXcFnXD55NNbNw==(Object #=qXmNYxa6wjOyOlL9yFxtNvA==)
   at StockSharp.Algo.Strategies.Strategy.#=qiaS4JJP6dIvcV4PykmPE_w==(StrategyRule #=qE1G0wojhtVI3LgG2ikwMjQ==, Object #=qN7sJLpCukdtyplL46bCrEQ==)&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Код заполнения ордера:&lt;br /&gt;&lt;div class="code"&gt;&lt;strong&gt;Код&lt;/strong&gt;&lt;div class="innercode"&gt;&lt;pre class="brush:csharp"&gt;
                    var order = CreateOrder(OrderDirections.Sell, this.Security.BestBid.Price - EntrySlip, this.Volume);
                    order.ExecutionCondition = OrderExecutionConditions.FillOrCancel;&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Это бага? Что такое transactionTxt и нужно ли его передавать?</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/1855/</id>
    <title type="text">Exception при первом вызове Trader.RegisterQuotes(...)</title>
    <published>2011-08-30T07:30:27Z</published>
    <updated>2011-08-30T07:30:27Z</updated>
    <author>
      <name>Den</name>
      <uri>https://stocksharp.ru/users/6003/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="StockSharp" />
    <content type="html">S# 3.2.10. Наблюдаю стабильно &lt;b&gt;Exception &amp;quot;окно с именем xxx@xxx не найдено&amp;quot;&lt;/b&gt; при вызове &lt;b&gt;Trader.RegisterQuotes(...)&lt;/b&gt; для инструмента, у которого еще не открывался стакан.  &lt;br /&gt;При этом, стакан автоматически открывается и имеет правильное название, напр. &lt;b&gt;SBRF-9.11@RTS&lt;/b&gt; или &lt;b&gt;BR-9.11@RTS&lt;/b&gt;. &lt;br /&gt;При повторном запуске &lt;b&gt;Trader.RegisterQuotes(...)&lt;/b&gt; все работает нормально. Видимо присутствует какой-то race condition.</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/1854/</id>
    <title type="text">Открытый интерес</title>
    <published>2011-08-29T16:24:02Z</published>
    <updated>2011-08-29T16:24:02Z</updated>
    <author>
      <name>raf</name>
      <uri>https://stocksharp.ru/users/28475/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="SmartCom" />
    <content type="html">Не смог найти такой параметр Security, как Открытый интерес (OpenInt). Не подскажите, где искать?</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/1853/</id>
    <title type="text">Storage API.</title>
    <published>2011-08-29T15:04:20Z</published>
    <updated>2011-08-29T15:04:20Z</updated>
    <author>
      <name>igsbr</name>
      <uri>https://stocksharp.ru/users/27754/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="StockSharp" />
    <content type="html">Тест записи сделок в файловое хранилище (на базе примера SmpleStorage со своим генератором экземпляров класса Trade и хранением на диске вместо записи в память) привел к следующим наблюдениям:&lt;br /&gt;&lt;br /&gt;1.Конструктор &amp;quot;public FileStorage(string directory)&amp;quot; - не ясно, какая именно директория подразумевается. Какую бы я строку не задавал, пишет в текущую директорию (и читает с нее же). Может, я неправильно понимаю этот параметр? Выкрутился тем, что после создания экземпляра TradingStorage задаю нужное место хранения данных используя BasePath. Вполне возможно, что у параметра directory из конструктора FileStorage есть какой-то другой смысл, но разобраться в этом из документации я не смог.&lt;br /&gt;&lt;br /&gt;2. Повторной запись всего набора данных после добавления свежих записей ведет к удвоению бывшей последней записи. На примере. Если я за сегодня записал 10 экземпляров класса Trade со значением Id от 1 до 10, то при добавлении следующих 10 трейдов к исходному списку и повторному его сохранению, имею следующий результат: при чтении получу 21 запись (вместо ожидаемых 20), где все записи будут уникальные, кроме одного исключения - трейд за номером 10 (бывший последний) будет записан два раза с одним и тем же Id. Похоже на баг, т.к. мой здравый смысл подсказывает, что при повторной записи всего набора или все записи должны удваиваться, или ни одна из них. Замечу, что такое поведение наблюдается при AppendOnlyNew = true (интерфейс IMarketDataStorage&amp;lt;T&amp;gt;), если же установить AppendOnlyNew = false все записи будут просто дублироваться, как и ожидается по смыслу.&lt;br /&gt;&lt;br /&gt;3. Если для экземпляров каждой из записей класса Trade в списке не задавать значение Security, то сохранить список трейдов в TradeStorage невозможно, т.к. генерируется ошибка. Признаться, я посчитал, что если стоит атрибут [Ignore] в определении класса перед соответствующим полем, то можно не задавать лишнее - ведь все равно при вызове IMarketDataStorage&amp;lt;Trade&amp;gt; GetTradeStorage(Security security) мы задаем единое значение security для всего набора записываемых данных. Зачем лишние операции на каждую единицу хранения?! Но почему-то [Ignore] не работает. Или я в этом месте неправильно понимаю логику.</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/1852/</id>
    <title type="text">Кто поможет по Publisher?</title>
    <published>2011-08-29T12:25:21Z</published>
    <updated>2011-08-29T12:25:21Z</updated>
    <author>
      <name>Mikhail Sukhov</name>
      <uri>https://stocksharp.ru/users/201/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="StockSharp" />
    <content type="html">На Codeplex сейчас лежит программа Publisher, которая помогает собирать архивы (те самые, что выкладываем на box). В ней написан метод &lt;a target="_blank" rel="nofollow" href="http://stocksharp.codeplex.com/SourceControl/changeset/view/8831#94007" title="http://stocksharp.codeplex.com/SourceControl/changeset/view/8831#94007"&gt;PublishHelper.StartCompile&lt;/a&gt;, который компилирует примеры:&lt;br /&gt;&lt;br /&gt;&lt;div class="code"&gt;&lt;strong&gt;Код&lt;/strong&gt;&lt;div class="innercode"&gt;&lt;pre class="brush:csharp"&gt;
public static void StartCompile(string slnFile)
		{
			StartProcess(_devenvPath, &amp;quot;/build Debug {0}&amp;quot;.Put(slnFile));


			//
			// ÷ñÒ1999356421êÖ0õæ÷http://www.roelvanlisdonk.nl/?p=1802
÷ñÒ1999356421êÖ1õæ÷
			//

			//const string logFilePath = &amp;quot;build.log&amp;quot;;

			//using (var process = Process.Start(_devenvPath, &amp;quot;/Rebuild Debug {0} /out {1}&amp;quot;.Put(slnFile, logFilePath)))
			//{
			//    using (var sr = new StreamReader(new FileStream(logFilePath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite)))
			//    {
			//        while (!process.HasExited)
			//        {
			//            while (!sr.EndOfStream)
			//                Console.WriteLine(sr.ReadLine());

			//            Thread.Sleep(1000);
			//        }
			//    }
			//}
		}&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Закомментированная часть - это попытка (неудачная, не знаю почему не работает) перенаправить вывод студии в консоль. Вывод нужен для того, чтобы узнать, нормально ли сейчас собирается пример или он выдает какие-то ошибки. Как следствие этого иногда возникает ситуация когда примеры на box попадают в несобираемом состоянии.</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/1851/</id>
    <title type="text">Кружки</title>
    <published>2011-08-27T11:33:46Z</published>
    <updated>2011-08-27T11:33:46Z</updated>
    <author>
      <name>Mikhail Sukhov</name>
      <uri>https://stocksharp.ru/users/201/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="клуб алготрейдеров" />
    <content type="html">Вчера съездил за кружками, сегодня раздобыл сносный дейвайс для фоток. Собственно, все в аттаче. Получились зачетные, как мне сказали горячего копчения. Попробовал поскоблить ключами, вроде бы держит. Но подушечкой пальцев все равно оттиск ощущается. Сегодня же испробовал в изделие в действии. Вода течет ровно, глотается плавно.&lt;br /&gt;&lt;br /&gt;Просьба ко всем виновным мне в личку написать свои координаты, чтобы я смог отослать по почте. К москвичам есть предложением. 18-го у нас тусовка по ботам (пока не знаю где, но чувствую будет). Если есть желание прийти, то отпишитесь так же. При встрече передам.</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/1850/</id>
    <title type="text">[int Volume]  и [long Position]</title>
    <published>2011-08-26T06:54:46Z</published>
    <updated>2011-08-26T06:54:46Z</updated>
    <author>
      <name>sun</name>
      <uri>https://stocksharp.ru/users/28495/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="StockSharp" />
    <content type="html">&lt;br /&gt;Strategies :: public int Volume { get; set; } &lt;br /&gt;BasePositionManager:: public virtual long Position{ get; set; } &lt;br /&gt;&lt;br /&gt;При использовании свойства BasePositionManager.Position для определения торгового объема для стратегии Strategies.Volume, возникает  необходимось преобразования long в int.Это не хорошо. Может привести все типы в long для единообразия. &lt;br /&gt;.</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/1849/</id>
    <title type="text">[BUG?] Вчерашняя дата в RealTimeEmulationTrader&amp;lt;QuikTrader&amp;gt;</title>
    <published>2011-08-25T19:44:10Z</published>
    <updated>2011-08-25T19:44:10Z</updated>
    <author>
      <name>Church</name>
      <uri>https://stocksharp.ru/users/459/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="тестирование" />
    <content type="html">Только что появилась проблема - Trader.MarketTime начал показывать вчерашнюю дату. Проблема появилась буквально несколько часов назад, в начале вечерки ее еще не было.&lt;br /&gt;&lt;br /&gt;Для сравнения, вывел время свечек, которые приходят в CandleManager.CandlesFinished:&lt;br /&gt;&lt;div class="code"&gt;&lt;strong&gt;Код&lt;/strong&gt;&lt;div class="innercode"&gt;&lt;pre class="brush:plain"&gt;
candle = 25.08.2011 10:53:00, market = 24.08.2011 23:32:40&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;Соответственно, в квике все таблицы показывают корректную сегодняшнюю дату.</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/1848/</id>
    <title type="text">Управление памятью</title>
    <published>2011-08-25T12:15:49Z</published>
    <updated>2011-08-25T12:15:49Z</updated>
    <author>
      <name>Mikhail Sukhov</name>
      <uri>https://stocksharp.ru/users/201/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="тестирование" />
    <content type="html">В 3.2.10 добавил в примеры как управлять памятью. Попробуйте позапускать пример. Интересует метрика, какой пик у памяти, сколько длилось по времени.</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/1847/</id>
    <title type="text">Логирование стратегии</title>
    <published>2011-08-24T19:31:57Z</published>
    <updated>2011-08-24T19:31:57Z</updated>
    <author>
      <name>vader</name>
      <uri>https://stocksharp.ru/users/28223/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="StockSharp" />
    <content type="html">В 3.2.9 изменился способ логирования стратегий в файл. Теперь когда стратегия остановилась, файл в который пишется лог, остается не закрытым. Если запустить её опять, то вылетает ошибка, из-за того что файл открыт. Можно это как-то исправить? &lt;br /&gt;Я пробовал и чистить список стратегий, для которых проводится логирование(при остановке стратегии) и  чистить список листнеров. К сожалению это не приводит к закрытию файла. Как быть? </content>
  </entry>
</feed>