﻿<?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=169</id>
  <rights type="text">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  <updated>2026-04-06T07:20:01Z</updated>
  <logo>https://stocksharp.ru/images/logo.png</logo>
  <link href="https://stocksharp.ru/handlers/atom.ashx?category=community&amp;page=169" rel="self" type="application/rss+xml" />
  <entry>
    <id>https://stocksharp.ru/topic/3403/</id>
    <title type="text">Вывод на график свече, сделок, индикаторов</title>
    <published>2013-02-17T05:45:58Z</published>
    <updated>2013-02-17T05:45:58Z</updated>
    <author>
      <name>Иван З.</name>
      <uri>https://stocksharp.ru/users/6502/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="Алготрейдинг" />
    <content type="html">Здравствуйте! Хотелось бы поделиться одним недавним открытием в S#, связанны с выводом на график свече, сделок, индикаторов. Дело в том, что до недавнего времени, для отображения графиков, я пользовался классом Chart(он используется во всех примерах документации). При этом возникает проблема вывода сделок, они выводятся маленькими кружочками, которых почти не видно(рисунок приведен ниже первым). При выводе индикатора цвет линии выставить невозможно. Не заполненное свечками время, особенно то время когда торгов нет, тоже мало радует. Так вот, есть класс SciChart, используется он точно так же как и Chart. График я вывожу в новое окно:&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:xml"&gt;
&amp;lt;Window x:Class=&amp;quot;SampleHistoryTesting.ChartWindow&amp;quot;
        xmlns=&amp;quot;http://schemas.microsoft.com/winfx/2006/xaml/presentation&amp;quot;
        xmlns:x=&amp;quot;http://schemas.microsoft.com/winfx/2006/xaml&amp;quot;
        xmlns:stock=&amp;quot;clr-namespace:StockSharp.Xaml;assembly=StockSharp.Xaml&amp;quot;
        Title=&amp;quot;ChartWindow&amp;quot; Height=&amp;quot;300&amp;quot; Width=&amp;quot;300&amp;quot;&amp;gt;
    &amp;lt;Grid&amp;gt;
        &amp;lt;stock:SciChart Name=&amp;quot;Chart&amp;quot;/&amp;gt;
    &amp;lt;/Grid&amp;gt;
&amp;lt;/Window&amp;gt;&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Чтобы использовать SciChart вместо Chart, надо дописать 3 буквы:&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:xml"&gt;
&amp;lt;stock:Chart Name=&amp;quot;Chart&amp;quot;/&amp;gt;&lt;/pre&gt;
&lt;/div&gt;&lt;/div&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:xml"&gt;
&amp;lt;stock:SciChart Name=&amp;quot;Chart&amp;quot;/&amp;gt;&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;На мой взгляд, он более удобен, и решает вышеперечисленные проблемы. Рисунок SciChart приведен ниже вторым.&lt;br /&gt;</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/239/</id>
    <title type="text">Открытие исходников S#</title>
    <published>2013-02-15T18:08:30Z</published>
    <updated>2013-02-15T18:08:30Z</updated>
    <author>
      <name>Mikhail Sukhov</name>
      <uri>https://stocksharp.ru/users/201/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="StockSharp" />
    <category term="API" />
    <content type="html">Итак, &lt;a href="http://stocksharp.com/products/sources/" title="http://stocksharp.com/products/sources/"&gt;исходные коды открыты&lt;/a&gt;! (фанфары, парад, конфетти). &lt;br /&gt;&lt;br /&gt;Давайте сразу обсудим этот шаг, так как большинство обсуждений, которые велись на нашем сайте и других площадках в интернете (приятно осознавать, что существует такое внимание к проекту), не вполне соответствует первоначальной цели.&lt;br /&gt;&lt;br /&gt;Доступ к исходным кодам будет возможен &lt;b&gt;в двух вариантах&lt;/b&gt;. Либо &lt;a target="_blank" rel="nofollow" href="https://stocksharp.codeplex.com/SourceControl/BrowseLatest" title="https://stocksharp.codeplex.com/SourceControl/BrowseLatest"&gt;бесплатно под лицензией GPL&lt;/a&gt; (open source), либо платный, &lt;a href="http://stocksharp.com/products/sources/" title="http://stocksharp.com/products/sources/"&gt;под коммерческой лицензией&lt;/a&gt;:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;Если вы хотите помочь проекту и развитию S# - можете присоединится к команде разработчиков. Лицензия GPL гарантирует, что пользователи, изменяющие код S# будут публиковать его вместе &lt;b&gt;с исходным кодом своих программ&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;Под лицензией GPL мы будем выпускать только исходный код основных релизов. Соответственно, там может не быть многих хотфиксов, которые будут в платном репозитарии.&lt;br /&gt;&lt;br /&gt;Исходные коды основных релизов будут  выкладываться в публичный репозитарий на CodePlex. Все будут иметь доступ на чтение. Желающие (контрибуторы) могут получить также доступ на запись, если хотят опубликовать свои патчи или создать отдельные ветки, чтобы делать там свои необходимые исправления. Если исправления будут хорошие, то они будут с согласия контрибутора переноситься в закрытый репозитарий и включаться в следующие релизы S#.&lt;br /&gt; &lt;br /&gt;Периодичность обновления публичного репозитария официальными релизами кода S# - от нескольких месяцев, и зависит от числа обновлений от контрибуторов (нет правок, значит и исходные коды в публичном доступе не интересны).&lt;br /&gt;&lt;li&gt;&lt;b&gt;Коммерческая лицензия&lt;/b&gt; включает в себя постоянный доступ к &lt;b&gt;онлайн-репозитарию с самыми свежими версиями кода&lt;/b&gt;. Коммерческая лицензия не накладывает ограничений GPL, которые могут не подходить некоторым пользователям.&lt;br /&gt;&lt;br /&gt;Цена доступа для компаний и небольших команд вполне соответствует риску “черного ящика”. В любой момент, подписчик может изменить код у себя локально под свои личные задачи, не дожидаясь официального релиза.&lt;br /&gt;&lt;br /&gt;Мы понимаем, что наиболее многочисленные пользователи библиотеки - частные трейдеры, делающие первые шаги в алготрейдинге. Поэтому бинарный дистрибутив библиотеки был и остается бесплатным. Что беспрецедентно в русском сегменте алготрейдинга.&lt;br /&gt;&lt;/ul&gt; &lt;br /&gt;&lt;br /&gt;&lt;span style="color:red"&gt;S# - лучший проект&lt;/span&gt;! А лучшему проекту нужно делать лучшие шаги. Именно поэтому, чтобы помочь нашим пользователям вырасти профессионально (надеюсь, они нас не забудут, когда достигнут вершин ;-) ), мы открываем исходные коды. &lt;br /&gt;&lt;br /&gt;Дерзайте, берите новые высоты, достигайте с нами совершенства в свой торговле, а StockSharp вам будет всячески помогать!</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/3402/</id>
    <title type="text">Все видео-уроки в одном месте!</title>
    <published>2013-02-15T09:29:48Z</published>
    <updated>2013-02-15T09:29:48Z</updated>
    <author>
      <name>Самунджян Артем</name>
      <uri>https://stocksharp.ru/users/675/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="Обучение" />
    <content type="html">&lt;span style="font-size:120%"&gt;&lt;br /&gt;Уважаемые слушатели.&lt;br /&gt;Все видео-уроки находятся &lt;a target="_blank" rel="nofollow" href="https://stocksharp.ru/away/?u=AQAAAAAAAABY8Vgi_2ka-GxWm7RvUZktv58xUNQG8FktLWGKtdSbhw" title="http://vk.com/stocksharpedu"&gt;в нашей группе в Контакте&lt;/a&gt;.&lt;br /&gt;Удачного просмотра!&lt;br /&gt;&lt;br /&gt;Не можете зайти?&lt;br /&gt;Посмотрите пожалуйста &lt;a href="http://stocksharp.com/forum/4346/My-pierieiekhali-v-sots-siet--Vkontaktie/" title="http://stocksharp.com/forum/4346/My-pierieiekhali-v-sots-siet--Vkontaktie/"&gt;новую политику безопасности видео-уроков&lt;/a&gt;.&lt;/span&gt;</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/3401/</id>
    <title type="text">Почему у меня багает функция TraderHelper.GetAveragePrice()?</title>
    <published>2013-02-15T08:44:43Z</published>
    <updated>2013-02-15T08:44:43Z</updated>
    <author>
      <name>freak</name>
      <uri>https://stocksharp.ru/users/26912/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="StockSharp" />
    <content type="html">Когда работаем:&lt;br /&gt;-на тестовом Квике с акцией сбербанка, значение которой дробное число с тремя знаками до запятой или двумя знаками после запятой&lt;br /&gt;- либо на бирже РТС с фьючерсом евро-доллар  SiH3, значение которого 1 знак до запятой, 4 знака после запятой&lt;br /&gt;функция  CbOrder.GetAveragePrice() определяет верно средневзвешенное значение сделок при исполнения заявки.&lt;br /&gt; &lt;br /&gt;Когда же работаем на бирже РТС с инструментом рубль-доллар имеющего значение 5 знаков до запятой, то даже  при количестве лотов равном 1 средневзвешенное значение исполнения заявки определяется равным 0, а не значению цены сделки.&lt;br /&gt;Почему?</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/3400/</id>
    <title type="text">В исходниках комменты и сообщения битые</title>
    <published>2013-02-14T16:19:41Z</published>
    <updated>2013-02-14T16:19:41Z</updated>
    <author>
      <name>Den</name>
      <uri>https://stocksharp.ru/users/6003/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="StockSharp" />
    <content type="html">Уважаемые разработчики,&lt;br /&gt;&lt;br /&gt;выкачал сорцы и обнаружил, что все комментарии и сообщения об ошибках битые в некоторых файлах.&lt;br /&gt;На кодеплексе если браузером смотреть такая же картина. Это так и было задумано?&lt;br /&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;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;/// &amp;lt;summary&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;/// �������� DDE �������. ��-��������� ����� STOCKSHARP.&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;/// &amp;lt;/summary&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;public string DdeServer&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;get { return _ddeServer; }&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;set&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;if (value.IsEmpty())&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;throw new ArgumentNullException(&amp;quot;value&amp;quot;);&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;if (DdeServer == value)&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;return;&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;if (IsExportStarted)&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;throw new InvalidOperationException(&amp;quot;������ ������ DDE ������ ��� ���������� ��������.&amp;quot;);&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;DisposeDdeServer();&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;_ddeServer = value;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;список файлов с такими глюками:&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;Sources\Xaml\QuoteConverter.cs&lt;br /&gt;Sources\Xaml\MsChartEx.cs&lt;br /&gt;Sources\Xaml\GuiTrader.cs&lt;br /&gt;Sources\Xaml\EquityData.cs&lt;br /&gt;Sources\Xaml\ChartTransactionElement.cs&lt;br /&gt;Sources\Xaml\ChartTradeElement.cs&lt;br /&gt;Sources\Xaml\ChartPart.cs&lt;br /&gt;Sources\Xaml\ChartOrderElement.cs&lt;br /&gt;Sources\Xaml\ChartIndicatorValue.cs&lt;br /&gt;Sources\Xaml\ChartElement.cs&lt;br /&gt;Sources\Smart\SmartOrderCondition.cs&lt;br /&gt;Sources\Smart\SmartAddresses.cs&lt;br /&gt;Sources\Quik\Transaction.cs&lt;br /&gt;Sources\Quik\QuikTrader.cs&lt;br /&gt;Sources\Quik\QuikOrderCondition.cs&lt;br /&gt;Sources\Quik\QuikDdeServer.cs&lt;br /&gt;Sources\Quik\DdeTableColumnList.cs&lt;br /&gt;Sources\Quik\DdeTableColumn.cs&lt;br /&gt;Sources\Quik\DdeTable.cs&lt;br /&gt;Sources\Quik\Codes.cs&lt;br /&gt;Sources\Quik\ApiWrapper.cs&lt;br /&gt;Sources\Quik\ApiException.cs&lt;br /&gt;Sources\Quik\Api.cs&lt;br /&gt;Sources\Plaza\Wrappers\WrapperHelper.cs&lt;br /&gt;Sources\Plaza\Wrappers\MessageDispatcher.cs&lt;br /&gt;Sources\Plaza\Wrappers\IStreamWrapper.cs&lt;br /&gt;Sources\Plaza\Wrappers\IRecordWrapper.cs&lt;br /&gt;Sources\Plaza\Wrappers\IMessageWrapper.cs&lt;br /&gt;Sources\Plaza\Wrappers\IMessageFactoryWrapper.cs&lt;br /&gt;Sources\Plaza\Wrappers\IConnectionWrapper.cs&lt;br /&gt;Sources\Plaza\PlazaTableManager.cs&lt;br /&gt;Sources\Plaza\PlazaRevisionManager.cs&lt;br /&gt;Sources\Plaza\Metadata\PlazaTableRegistry.cs&lt;br /&gt;Sources\Plaza\Metadata\PlazaSysEventsColumns.cs&lt;br /&gt;Sources\Plaza\Metadata\PlazaFutureColumns.cs&lt;br /&gt;Sources\Plaza\Metadata\PlazaBaseOrdersColumns.cs&lt;br /&gt;Sources\Plaza\Metadata\PlazaAnonymousOrdersLogColumns.cs&lt;br /&gt;Sources\Plaza\Metadata\PlazaAnonymousMultiLegOrdersLogColumns.cs&lt;br /&gt;Sources\Logging\SpeechLogListener.cs&lt;br /&gt;Sources\Logging\LogListener.cs&lt;br /&gt;Sources\Logging\LogLevels.cs&lt;br /&gt;Sources\BusinessEntities\Unit.cs&lt;br /&gt;Sources\BusinessEntities\Trade.cs&lt;br /&gt;Sources\BusinessEntities\Security.cs&lt;br /&gt;Sources\BusinessEntities\Quote.cs&lt;br /&gt;Sources\BusinessEntities\Portfolio.cs&lt;br /&gt;Sources\BusinessEntities\OrderLogItem.cs&lt;br /&gt;Sources\BusinessEntities\Order.cs&lt;br /&gt;Sources\BusinessEntities\MyTrade.cs&lt;br /&gt;Sources\BusinessEntities\MarketDepth.cs&lt;br /&gt;Sources\BusinessEntities\ITrader.cs&lt;br /&gt;Sources\BusinessEntities\IAtomic.cs&lt;br /&gt;Sources\BusinessEntities\ExchangeBoard.cs&lt;br /&gt;Sources\BusinessEntities\Exchange.cs&lt;br /&gt;Sources\BusinessEntities\Currency.cs&lt;br /&gt;Sources\BusinessEntities\BasePosition.cs&lt;br /&gt;Sources\Algo\TraderHelper.cs&lt;br /&gt;Sources\Algo\Testing\RealTimeEmulationTrader.cs&lt;br /&gt;Sources\Algo\Testing\MarketEmulator.cs&lt;br /&gt;Sources\Algo\Strategies\TimeFrameStrategy.cs&lt;br /&gt;Sources\Algo\Strategies\StrategyParam.cs&lt;br /&gt;Sources\Algo\Strategies\Strategy.cs&lt;br /&gt;Sources\Algo\Strategies\QuotingStrategy.cs&lt;br /&gt;Sources\Algo\Strategies\MarketQuotingStrategy.cs&lt;br /&gt;Sources\Algo\Strategies\LevelQuotingStrategy.cs&lt;br /&gt;Sources\Algo\Strategies\LastTradeQuotingStrategy.cs&lt;br /&gt;Sources\Algo\Strategies\HedgeStrategy.cs&lt;br /&gt;Sources\Algo\Strategies\BestByVolumeQuotingStrategy.cs&lt;br /&gt;Sources\Algo\Strategies\BestByPriceQuotingStrategy.cs&lt;br /&gt;Sources\Algo\Strategies\BasketStrategy.cs&lt;br /&gt;Sources\Algo\Storages\TradeList.cs&lt;br /&gt;Sources\Algo\Storages\StorageHelper.cs&lt;br /&gt;Sources\Algo\Storages\SecurityList.cs&lt;br /&gt;Sources\Algo\Storages\SecurityChangeSerializer.cs&lt;br /&gt;Sources\Algo\Storages\SecurityChange.cs&lt;br /&gt;Sources\Algo\Storages\RemoteMarketDataDrive.cs&lt;br /&gt;Sources\Algo\Storages\OrderLogSerializer.cs&lt;br /&gt;Sources\Algo\Storages\OrderList.cs&lt;br /&gt;Sources\Algo\Storages\MyTradeList.cs&lt;br /&gt;Sources\Algo\Storages\MarketDataStorageHelper.cs&lt;br /&gt;Sources\Algo\Storages\LocalMarketDataDrive.cs&lt;br /&gt;Sources\Algo\Storages\IMarketDataDrive.cs&lt;br /&gt;Sources\Algo\Storages\IEntityRegistry.cs&lt;br /&gt;Sources\Algo\Storages\EntityRegistry.cs&lt;br /&gt;Sources\Algo\Statistics\ITradeStatisticParameter.cs&lt;br /&gt;Sources\Algo\Statistics\IPositionStatisticParameter.cs&lt;br /&gt;Sources\Algo\Statistics\IPnLStatisticParameter.cs&lt;br /&gt;Sources\Algo\Statistics\IOrderStatisticParameter.cs&lt;br /&gt;Sources\Algo\Slippage\SlippageManager.cs&lt;br /&gt;Sources\Algo\ServerCredentials.cs&lt;br /&gt;Sources\Algo\Reporting\StrategyReport.cs&lt;br /&gt;Sources\Algo\ReConnectionManager.cs&lt;br /&gt;Sources\Algo\ProcessStates.cs&lt;br /&gt;Sources\Algo\PnL\MyTradePnLInfo.cs&lt;br /&gt;Sources\Algo\OrderLogHelper.cs&lt;br /&gt;Sources\Algo\Notification\NotificationClient.cs&lt;br /&gt;Sources\Algo\MemoryStatistics.cs&lt;br /&gt;Sources\Algo\MarketTimer.cs&lt;br /&gt;Sources\Algo\MarketPriceTypes.cs&lt;br /&gt;Sources\Algo\Licensing\LicenseHelper.cs&lt;br /&gt;Sources\Algo\Licensing\License.cs&lt;br /&gt;Sources\Algo\Indicators\IndicatorToken.cs&lt;br /&gt;Sources\Algo\Indicators\IndicatorHelper.cs&lt;br /&gt;Sources\Algo\IndexSecurity.cs&lt;br /&gt;Sources\Algo\IMarketRuleList.cs&lt;br /&gt;Sources\Algo\IMarketRuleContainer.cs&lt;br /&gt;Sources\Algo\IDailyInfoSoap.cs&lt;br /&gt;Sources\Algo\History\Rts\RtsHistorySource.cs&lt;br /&gt;Sources\Algo\History\Hydra\RemoteStorageClient.cs&lt;br /&gt;Sources\Algo\History\Hydra\RemoteStorage.cs&lt;br /&gt;Sources\Algo\History\Hydra\IRemoteStorage.cs&lt;br /&gt;Sources\Algo\History\Finam\FinamHistorySource.cs&lt;br /&gt;Sources\Algo\Derivatives\IBlackScholes.cs&lt;br /&gt;Sources\Algo\Derivatives\BasketStrike.cs&lt;br /&gt;Sources\Algo\Derivatives\BasketBlackScholes.cs&lt;br /&gt;Sources\Algo\ContinuousSecurity.cs&lt;br /&gt;Sources\Algo\Commissions\ICommissionService.cs&lt;br /&gt;Sources\Algo\Commissions\ICommissionProfile.cs&lt;br /&gt;Sources\Algo\Commissions\ICommissionManager.cs&lt;br /&gt;Sources\Algo\Commissions\CommissionRule.cs&lt;br /&gt;Sources\Algo\Commissions\CommissionManager.cs&lt;br /&gt;Sources\Algo\Candles\StorageCandleSource.cs&lt;br /&gt;Sources\Algo\Candles\IStorageCandleSource.cs&lt;br /&gt;Sources\Algo\Candles\IndexSeriesBuilder.cs&lt;br /&gt;Sources\Algo\Candles\ICandleSource.cs&lt;br /&gt;Sources\Algo\Candles\ICandleManagerSource.cs&lt;br /&gt;Sources\Algo\Candles\Compression\RealTimeCandleBuilderSource.cs&lt;br /&gt;Sources\Algo\Candles\Compression\ICandleBuilder.cs&lt;br /&gt;Sources\Algo\Candles\CandleSourceEnumerator.cs&lt;br /&gt;Sources\Algo\Candles\CandleSeries.cs&lt;br /&gt;Sources\Algo\Candles\CandleManager.cs&lt;br /&gt;Sources\Algo\Candles\Candle.cs&lt;br /&gt;Sources\Algo\Candles\BaseCandleSource.cs&lt;br /&gt;Sources\Algo\BaseTrader.cs</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/3398/</id>
    <title type="text">Не поступают не проиводные активы</title>
    <published>2013-02-14T09:41:28Z</published>
    <updated>2013-02-14T09:41:28Z</updated>
    <author>
      <name>Cherepacha</name>
      <uri>https://stocksharp.ru/users/26869/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="Quik" />
    <content type="html">Если в таблице &amp;quot;Инструменты&amp;quot; добавить столбец &amp;quot;Базовый актив&amp;quot; и запустить его экспорт через UnderlyingSecurity, то в Securites придут только те инструменты, у которых есть базовый актив. Фактически это исключительно инструменты ФОРТС.&lt;br /&gt;При этом если подключать столбец как ShortName все инструменты приходят.&lt;br /&gt;Версия S#  = 4.1.7&lt;br /&gt;&lt;br /&gt;Часть лога ProcessDataError&lt;br /&gt;&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;Цитата:&lt;/span&gt;&lt;div class="innerquote"&gt;System.ArgumentNullException: Значение не может быть неопределенным.&lt;br /&gt;Имя параметра: secCode&lt;br /&gt;   в StockSharp.Algo.SecurityIdGenerator.GenerateId(String secCode, String secClass, ExchangeBoard board)&lt;br /&gt;   в StockSharp.Algo.BaseTrader.CreateSecurityId(String secCode, String secClass)&lt;br /&gt;   в StockSharp.Quik.QuikTrader.#=qrUj$Ns0mMAxxqh0k0FFJLNrS3FJSThHkORGunaJF58s=.#=q0Z9_dpLiWvSwDcCfKEtyUplL1QVVY7PgW3vYAOYO5Xs=.#=qBYIGdPFDuDTFqmDIL2EZXQ==(Security #=qaCJVWJBUYWIoI$GT$UHelw==)&lt;br /&gt;   в StockSharp.Algo.BaseTrader.GetSecurity(String id, Func`2 createSecurity, Func`2 changeSecurity)&lt;br /&gt;   в StockSharp.Algo.BaseTrader.GetSecurity(String id, Func`2 changeSecurity)&lt;br /&gt;   в StockSharp.Quik.QuikTrader.#=qrUj$Ns0mMAxxqh0k0FFJLNrS3FJSThHkORGunaJF58s=.#=qQ_rOPN5Y4NQ8$Xtm2v9MCw==(IList`1 #=qnPrMXzejlhZGIiblHaU0yw==, Func`2 #=qIH_m_wtplnfNadQJBkbcQQ==)&lt;br /&gt;   в #=qzeX7oIanqx4Wa3xhmFWjIZ35RRpWFmHHIqzO3cqd8kt4IpmmskAJSNhw$ndFatEd.#=qp78IP3QjuN6MwG$TanQNmQ==(DdeTable #=qPXJ_07MTX3f5ybGTtOBAqw==, IList`1 #=qVc_rKuxAoIy5P_efJkT6cA==, Action`2 #=q8TgfAZA1MQwAN_5q8wMPQg==, Action`1 #=qEGrZJIojIpM$_i26Ffc_AA==, Boolean #=qRt4iW7c1yIaKnzuW1VSpMA==)&lt;br /&gt;System.InvalidOperationException: Инструмент с кодом RIH3 для деривативной позиции не найден.&lt;br /&gt;   в StockSharp.Quik.QuikTrader.#=qrUj$Ns0mMAxxqh0k0FFJLNrS3FJSThHkORGunaJF58s=.#=qIol6dxi0FbjTEWSI3YMkvg==(IList`1 #=qMKMbY4C5KvIPryXYFmcyag==, Func`2 #=q0Wb5KRoV3aR1oak$4aFg8w==)&lt;br /&gt;   в #=qzeX7oIanqx4Wa3xhmFWjIZ35RRpWFmHHIqzO3cqd8kt4IpmmskAJSNhw$ndFatEd.#=qp78IP3QjuN6MwG$TanQNmQ==(DdeTable #=qPXJ_07MTX3f5ybGTtOBAqw==, IList`1 #=qVc_rKuxAoIy5P_efJkT6cA==, Action`2 #=q8TgfAZA1MQwAN_5q8wMPQg==, Action`1 #=qEGrZJIojIpM$_i26Ffc_AA==, Boolean #=qRt4iW7c1yIaKnzuW1VSpMA==)&lt;br /&gt;System.InvalidOperationException: Инструмент с кодом GZM3 для деривативной позиции не найден.&lt;br /&gt;   в StockSharp.Quik.QuikTrader.#=qrUj$Ns0mMAxxqh0k0FFJLNrS3FJSThHkORGunaJF58s=.#=qIol6dxi0FbjTEWSI3YMkvg==(IList`1 #=qMKMbY4C5KvIPryXYFmcyag==, Func`2 #=q0Wb5KRoV3aR1oak$4aFg8w==)&lt;br /&gt;   в #=qzeX7oIanqx4Wa3xhmFWjIZ35RRpWFmHHIqzO3cqd8kt4IpmmskAJSNhw$ndFatEd.#=qp78IP3QjuN6MwG$TanQNmQ==(DdeTable #=qPXJ_07MTX3f5ybGTtOBAqw==, IList`1 #=qVc_rKuxAoIy5P_efJkT6cA==, Action`2 #=q8TgfAZA1MQwAN_5q8wMPQg==, Action`1 #=qEGrZJIojIpM$_i26Ffc_AA==, Boolean #=qRt4iW7c1yIaKnzuW1VSpMA==)&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/3396/</id>
    <title type="text">Помогите чайнику с примером SampleSMA.</title>
    <published>2013-02-13T14:54:00Z</published>
    <updated>2013-02-13T14:54:00Z</updated>
    <author>
      <name>Кудрев</name>
      <uri>https://stocksharp.ru/users/6154/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="StockSharp" />
    <content type="html">Как переключить пример SampleSMA на фьючерс РТС. Просто везде переписать лукоил на rih3 или нет?</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/3395/</id>
    <title type="text">12 семинар ноябрь 2012</title>
    <published>2013-02-13T12:45:21Z</published>
    <updated>2013-02-13T12:45:21Z</updated>
    <author>
      <name>Самунджян Артем</name>
      <uri>https://stocksharp.ru/users/675/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="Обучение" />
    <content type="html">[vk]http://vk.com/video_ext.php?oid=-66650972&amp;amp;id=167478586&amp;amp;hash=f277c00a30a7f29d&amp;amp;hd=3[/vk]&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:120%"&gt;&lt;b&gt;План:&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Сохранение настроек ( Bin,Xml)&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:120%"&gt;&lt;b&gt;Вложения:&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;a target="_blank" rel="nofollow" href="https://stocksharp.ru/away/?u=AQAAAAAAAADXjL5CL3VluFBlkphAxfOmnJzaYxCX7CcOTTGUgmwW4K6boIgOFrOs1M2za5Et_H8" title="https://vk.com/docs?oid=-66650972"&gt;Проекты&lt;/a&gt;</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/3394/</id>
    <title type="text">11 семинар ноябрь 2012</title>
    <published>2013-02-13T12:43:33Z</published>
    <updated>2013-02-13T12:43:33Z</updated>
    <author>
      <name>Самунджян Артем</name>
      <uri>https://stocksharp.ru/users/675/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="Обучение" />
    <content type="html">&lt;span style="font-size:120%"&gt;&lt;b&gt;Запись урока: &lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:120%"&gt;&lt;b&gt;Часть 1 &lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;[vk]http://vk.com/video_ext.php?oid=-66650972&amp;amp;id=167478575&amp;amp;hash=423b7e5e8779c1b2&amp;amp;hd=3[/vk]&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:120%"&gt;&lt;b&gt;Часть 2 &lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;[vk]http://vk.com/video_ext.php?oid=-66650972&amp;amp;id=167478579&amp;amp;hash=200dc2c9f28fe1a2&amp;amp;hd=3[/vk]&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:120%"&gt;&lt;b&gt;План&lt;/b&gt;:&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Тестирование риал тайм&lt;br /&gt;Тестирование&lt;br /&gt;Сохранение/чтение параметров у стратегии&lt;br /&gt;Сохранение с помощью хранилищ S#&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:120%"&gt;&lt;b&gt;Вложения:&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;a target="_blank" rel="nofollow" href="https://stocksharp.ru/away/?u=AQAAAAAAAADXjL5CL3VluFBlkphAxfOmnJzaYxCX7CcOTTGUgmwW4K6boIgOFrOs1M2za5Et_H8" title="https://vk.com/docs?oid=-66650972"&gt;Проекты&lt;/a&gt;</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/3393/</id>
    <title type="text">10 семинар ноябрь 2012</title>
    <published>2013-02-13T12:41:10Z</published>
    <updated>2013-02-13T12:41:10Z</updated>
    <author>
      <name>Самунджян Артем</name>
      <uri>https://stocksharp.ru/users/675/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="Обучение" />
    <content type="html">&lt;span style="font-size:120%"&gt;&lt;b&gt;Запись урока: &lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:120%"&gt;&lt;b&gt;Часть 1 &lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;[vk]http://vk.com/video_ext.php?oid=-66650972&amp;amp;id=167478238&amp;amp;hash=dc6da8b1b1e89c2d&amp;amp;hd=3[/vk]&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:120%"&gt;&lt;b&gt;Часть 2 &lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;[vk]http://vk.com/video_ext.php?oid=-66650972&amp;amp;id=167479233&amp;amp;hash=a4dd7688c3327a4d&amp;amp;hd=3[/vk]&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:120%"&gt;&lt;b&gt;План&lt;/b&gt;:&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Получение исторических данных&lt;br /&gt;Тестирование&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:120%"&gt;&lt;b&gt;Вложения:&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;a target="_blank" rel="nofollow" href="https://stocksharp.ru/away/?u=AQAAAAAAAADXjL5CL3VluFBlkphAxfOmnJzaYxCX7CcOTTGUgmwW4K6boIgOFrOs1M2za5Et_H8" title="https://vk.com/docs?oid=-66650972"&gt;Проекты&lt;/a&gt;</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/3392/</id>
    <title type="text">9 семинар ноябрь 2012</title>
    <published>2013-02-13T12:39:09Z</published>
    <updated>2013-02-13T12:39:09Z</updated>
    <author>
      <name>Самунджян Артем</name>
      <uri>https://stocksharp.ru/users/675/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="Обучение" />
    <content type="html">[vk]http://vk.com/video_ext.php?oid=-66650972&amp;amp;id=167478228&amp;amp;hash=3b4ba499db20fcc1&amp;amp;hd=3&amp;gt;[/vk]&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:120%"&gt;&lt;b&gt;План&lt;/b&gt;:&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Арбитражная стратегия&lt;br /&gt;&lt;li&gt;Тестирование, исторические данные&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:120%"&gt;&lt;b&gt;Вложения:&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;a target="_blank" rel="nofollow" href="https://stocksharp.ru/away/?u=AQAAAAAAAADXjL5CL3VluFBlkphAxfOmnJzaYxCX7CcOTTGUgmwW4K6boIgOFrOs1M2za5Et_H8" title="https://vk.com/docs?oid=-66650972"&gt;Проекты&lt;/a&gt;</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/3391/</id>
    <title type="text">8 семинар ноябрь 2012</title>
    <published>2013-02-13T12:36:46Z</published>
    <updated>2013-02-13T12:36:46Z</updated>
    <author>
      <name>Самунджян Артем</name>
      <uri>https://stocksharp.ru/users/675/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="Обучение" />
    <content type="html">&lt;span style="font-size:120%"&gt;&lt;b&gt;Запись урока: &lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:120%"&gt;&lt;b&gt;Часть 1 &lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;[vk]http://vk.com/video_ext.php?oid=-66650972&amp;amp;id=167477875&amp;amp;hash=a4c651f173b6ad30&amp;amp;hd=3[/vk]&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:120%"&gt;&lt;b&gt;Часть 2 &lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;[vk]http://vk.com/video_ext.php?oid=-66650972&amp;amp;id=167477880&amp;amp;hash=bc93b80690bf60f2&amp;amp;hd=3[/vk]&lt;br /&gt;&lt;br /&gt;[size=6]&lt;b&gt;План:&lt;/b&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Экспорт дополнительных колонок Quik&lt;br /&gt;&lt;li&gt;&lt;span class="highlight"&gt;Кластерные свечки&lt;/span&gt;&lt;br /&gt;&lt;li&gt;Работа со стратегиями:&lt;br /&gt;  &lt;ol&gt;&lt;li&gt;Стратегия боллинджера - работа с котировщиком&lt;/ol&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Вложения:&lt;/b&gt;&lt;br /&gt;&lt;a target="_blank" rel="nofollow" href="https://stocksharp.ru/away/?u=AQAAAAAAAADXjL5CL3VluFBlkphAxfOmnJzaYxCX7CcOTTGUgmwW4K6boIgOFrOs1M2za5Et_H8" title="https://vk.com/docs?oid=-66650972"&gt;Проекты&lt;/a&gt;</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/3390/</id>
    <title type="text">7 семинар ноябрь 2012</title>
    <published>2013-02-13T12:33:33Z</published>
    <updated>2013-02-13T12:33:33Z</updated>
    <author>
      <name>Самунджян Артем</name>
      <uri>https://stocksharp.ru/users/675/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="Обучение" />
    <content type="html">&lt;span style="font-size:120%"&gt;&lt;b&gt;Запись урока: &lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:120%"&gt;&lt;b&gt;Часть 1 &lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;[vk]http://vk.com/video_ext.php?oid=-66650972&amp;amp;id=167477864&amp;amp;hash=52a3b2908820862a&amp;amp;hd=3[/vk]&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:120%"&gt;&lt;b&gt;Часть 2 &lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;[vk]http://vk.com/video_ext.php?oid=-66650972&amp;amp;id=167477866&amp;amp;hash=66b67c8a67c1915d&amp;amp;hd=3[/vk]&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:120%"&gt;&lt;b&gt;План:&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Свечки&lt;br /&gt;&lt;li&gt;График свечек&lt;br /&gt;&lt;li&gt;Индикаторы&lt;br /&gt;&lt;li&gt;Арбитражная стратегия&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:120%"&gt;&lt;b&gt;Вложения:&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;a target="_blank" rel="nofollow" href="https://stocksharp.ru/away/?u=AQAAAAAAAADXjL5CL3VluFBlkphAxfOmnJzaYxCX7CcOTTGUgmwW4K6boIgOFrOs1M2za5Et_H8" title="https://vk.com/docs?oid=-66650972"&gt;Проекты&lt;/a&gt;</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/3389/</id>
    <title type="text">6 семинар ноябрь 2012</title>
    <published>2013-02-13T12:30:36Z</published>
    <updated>2013-02-13T12:30:36Z</updated>
    <author>
      <name>Самунджян Артем</name>
      <uri>https://stocksharp.ru/users/675/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="Обучение" />
    <content type="html">[vk]http://vk.com/video_ext.php?oid=-66650972&amp;amp;id=167477859&amp;amp;hash=92b3c312c353312b&amp;amp;hd=3[/vk]&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:120%"&gt;&lt;b&gt;План:&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Дочерние стратегии&lt;br /&gt;&lt;li&gt;Свечки&lt;br /&gt;&lt;li&gt;CandleChart&lt;br /&gt;&lt;li&gt;Стратегии на свечках&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:120%"&gt;&lt;b&gt;Вложения:&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;a target="_blank" rel="nofollow" href="https://stocksharp.ru/away/?u=AQAAAAAAAADXjL5CL3VluFBlkphAxfOmnJzaYxCX7CcOTTGUgmwW4K6boIgOFrOs1M2za5Et_H8" title="https://vk.com/docs?oid=-66650972"&gt;Проекты&lt;/a&gt;</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/3388/</id>
    <title type="text">8 семинар</title>
    <published>2013-02-13T11:29:02Z</published>
    <updated>2013-02-13T11:29:02Z</updated>
    <author>
      <name>Самунджян Артем</name>
      <uri>https://stocksharp.ru/users/675/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="Обучение" />
    <content type="html">&lt;span style="font-size:120%"&gt;&lt;b&gt;Запись урока: &lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:120%"&gt;&lt;b&gt;Часть 1 &lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;[vk]http://vk.com/video_ext.php?oid=-66674957&amp;amp;id=167896707&amp;amp;hash=831343a029441e71&amp;amp;hd=3[/vk]&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:120%"&gt;&lt;b&gt;Часть 2 &lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;[vk]http://vk.com/video_ext.php?oid=-66674957&amp;amp;id=167896707&amp;amp;hash=831343a029441e71&amp;amp;hd=3[/vk]&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:120%"&gt;&lt;b&gt;Темы занятия:&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;1. Повторное рассмотрение ключевых моментов по изученному материалу (события, светофоры, TimeSpan, сохранение значений).&lt;br /&gt;2. XML-документация (см. &lt;a target="_blank" href="http://msdn.microsoft.com/ru-ru/library/b2s063f7.aspx" title="http://msdn.microsoft.com/ru-ru/library/b2s063f7.aspx"&gt;Справочник C#&lt;/a&gt;), использование XMLReader (см. &lt;a target="_blank" href="http://msdn.microsoft.com/ru-ru/library/system.xml.xmlreader(v=vs.71).aspx" title="http://msdn.microsoft.com/ru-ru/library/system.xml.xmlreader(v=vs.71).aspx"&gt;Справочник C#&lt;/a&gt; или &lt;a target="_blank" rel="nofollow" href="https://stocksharp.ru/away/?u=AQAAAAAAAACAgYUiuylrmO29oHxzVnT54itjrt57M5UsF1CwRioBwHdt3iVa5MfgQrbQerQyq_WbCydgoKi5vrxpzjFPsKMEW8_KpMH5sAegHqV5CEH8RGvgakmu4iJUFpSHLjkqs5I" title="http://www.codeproject.com/Articles/318876/Using-the-XmlReader-class-with-Csharp"&gt;доп. статья&lt;/a&gt;), сериализация объектов в документы или потоки формата XML (см. &lt;a target="_blank" href="http://msdn.microsoft.com/ru-ru/library/system.xml.serialization.aspx" title="http://msdn.microsoft.com/ru-ru/library/system.xml.serialization.aspx"&gt;Справочник C#&lt;/a&gt;)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:120%"&gt;&lt;b&gt;Домашнее задание:&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:120%"&gt;&lt;b&gt;Полезные ссылки:&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;1. &lt;a target="_blank" href="http://msdn.microsoft.com/ru-ru/library/ms233843.aspx" title="http://msdn.microsoft.com/ru-ru/library/ms233843.aspx"&gt;Сериализация&lt;/a&gt;&lt;br /&gt;2. Книга &amp;quot;Изучаем C# - Эндрю Стиллмен&amp;quot;: на английском языке скачать с &lt;a target="_blank" rel="nofollow" href="https://stocksharp.ru/away/?u=AQAAAAAAAAACvLmQWAfUTMJRJGbA-u2YqeQVeTshoQqvtiTHWMxCrz-CDals_ZzAuEjAYLdGsPs2XEEbZUIGlZlwNZXMgWbx" title="http://rutracker.org/forum/viewtopic.php?t=2982331"&gt;RuTracker&lt;/a&gt; или с &lt;a target="_blank" rel="nofollow" href="https://stocksharp.ru/away/?u=AQAAAAAAAAAZeqNlyZ615x51NhJjPAB68Nz7MEkNWQZu5VXcBPxnCnIV5BVfF3E_cek1Z86GmnigmK4mQwjC7LX7Od204w6YVpzh7zZ-HqaC-jI6vB2u5LMxm3-5ZLBcPQGDCyenR7js_gjq8SWHuYqRnwuEsvtm" title="http://books.google.ru/books?id=Rnea7qV_qQAC&amp;amp;printsec=frontcover&amp;amp;hl=ru#v=onepage&amp;amp;q&amp;amp;f=false"&gt;Google.Books&lt;/a&gt;. &lt;a target="_blank" rel="nofollow" href="https://stocksharp.ru/away/?u=AQAAAAAAAAD4kf5g4RRAcRtM4vmqZLO075a0Y3EoPhri5rr0FVuc06giDJ7NX5CHVCkfIun-p2w" title="http://www.headfirstlabs.com/books/hfcsharp/"&gt;Здесь&lt;/a&gt; - файлы к книге.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-size:120%"&gt;Вложения&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;a target="_blank" rel="nofollow" href="https://stocksharp.ru/away/?u=AQAAAAAAAADXjL5CL3VluFBlkphAxfOmgzHwBS6gmZ6H1CH1BJ_rN_4qYbIz0eRYJiis-L8IAwA" title="https://vk.com/doc-66674957_276915055"&gt;Исходные коды&lt;/a&gt;</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/3387/</id>
    <title type="text">7 семинар</title>
    <published>2013-02-13T11:25:24Z</published>
    <updated>2013-02-13T11:25:24Z</updated>
    <author>
      <name>Самунджян Артем</name>
      <uri>https://stocksharp.ru/users/675/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="Обучение" />
    <content type="html">&lt;span style="font-size:120%"&gt;&lt;b&gt;Запись урока: &lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:120%"&gt;&lt;b&gt;Часть 1 &lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;[vk]http://vk.com/video_ext.php?oid=-66674957&amp;amp;id=167891624&amp;amp;hash=f0ca69e514ff475e&amp;amp;hd=3[/vk]&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:120%"&gt;&lt;b&gt;Часть 2 &lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;[vk]http://vk.com/video_ext.php?oid=-66674957&amp;amp;id=167894426&amp;amp;hash=6b0bfcf795fbaf49&amp;amp;hd=3[/vk]&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:120%"&gt;&lt;b&gt;Темы занятия:&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;Повторное рассмотрение ключевых моментов по изученному материалу.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:120%"&gt;&lt;b&gt;Домашнее задание:&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;Ко все методам написать тесты или хотя бы вызвать каждый из методов с различными параметрами и проверить результат &amp;quot;на глазок&amp;quot;. Но лучше написать тесты - ведь тесты дают гарантии и вселяют уверенность))&lt;br /&gt;&lt;br /&gt;1. Написать метод, вычисляющий значение простого числа по его номеру. Простое число - то которое делится лишь на 1 и на само себя.&lt;br /&gt;&lt;br /&gt;2. Написать метод проверки числа на простоту. Использовать этот метод в решении предыдущего задания.&lt;br /&gt;&lt;br /&gt;3. Написать метод, возвращающий все простые числа. Я не ошибся. Все. Использовать конструкцию yield return.&lt;br /&gt;&lt;br /&gt;4. Написать метод MergeSum, принимающий на вход 2 последовательности интов и возвращающий одну последовательность с поэлементной суммой. Использовать yield return.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:120%"&gt;&lt;b&gt;Полезные ссылки:&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;1. Скачать &lt;a target="_blank" rel="nofollow" href="https://stocksharp.ru/away/?u=AQAAAAAAAAAiKfMI3ZVSBoAXeJfDFRtYJ2Pf98Wbw6mg0v0BUiJQsjs_QiqTL8paDS_QgJ2qg8M" title="http://www.jetbrains.com/dotcover/"&gt;&lt;span style="color:darkred"&gt;dotCover&lt;/span&gt;&lt;/a&gt; (используется при тестировании).&lt;br /&gt;2. &lt;a target="_blank" href="http://msdn.microsoft.com/ru-ru/library/9k7k7cf0.aspx" title="http://msdn.microsoft.com/ru-ru/library/9k7k7cf0.aspx"&gt;Информация о yield return.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:120%"&gt;&lt;b&gt;Пример решения домашнего задания:&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;div class='spoilertitle'&gt;&lt;input type='button' value='Показать спойлер' class='btn btn-primary' onclick="toggleSpoiler(this, 'spolier_edb21fea0b00492fa69bb465cae7e404');" title='Показать спойлер' /&gt;&lt;/div&gt;&lt;div class='spoilerbox' id='spolier_edb21fea0b00492fa69bb465cae7e404' style='display:none'&gt;&lt;div class="code"&gt;&lt;strong&gt;Код&lt;/strong&gt;&lt;div class="innercode"&gt;&lt;pre class="brush:csharp"&gt;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace App0526
{
    public class Program
    {
        // 1. Написать метод, вычисляющий значение простого числа по его номеру. 
        // Простое число - то которое делится лишь на 1 и на само себя.
         
        /// &amp;lt;summary&amp;gt;
        /// Поиск простого числа по его порядковому номеру
        /// &amp;lt;/summary&amp;gt;
        /// &amp;lt;param name=&amp;quot;index&amp;quot;&amp;gt;Порядковый номер числа&amp;lt;/param&amp;gt;
        /// &amp;lt;returns&amp;gt;Простое число&amp;lt;/returns&amp;gt;
        public static int SimpleByIndex(int index)
        {
            for (int candidate = 2; true; candidate++)
            {
                if (!IsValueSimple(candidate)) 
                    continue;
                if (index == 0)
                    return candidate;
                index--;
            }
        }

        // 2. Написать метод проверки числа на простоту. 
        // Использовать этот метод в решении предыдущего задания.
         
        /// &amp;lt;summary&amp;gt;
        /// Проверка числа на принадлежность к множеству простых чисел
        /// &amp;lt;/summary&amp;gt;
        /// &amp;lt;param name=&amp;quot;value&amp;quot;&amp;gt;Проверяемое число&amp;lt;/param&amp;gt;
        /// &amp;lt;returns&amp;gt;Является ли простым&amp;lt;/returns&amp;gt;
        public static bool IsValueSimple(int value)
        {
            if (value &amp;lt; 2) return false;
            for (int i = 2; i &amp;lt; value; i++)
                if (value%i == 0)
                    return false;
            return true;
        }

        // 3. Написать метод, возвращающий все простые числа. 
        // Я не ошибся. Все. Использовать конструкцию yield return.
        
        /// &amp;lt;summary&amp;gt;
        /// Получение всех простых чисел
        /// &amp;lt;/summary&amp;gt;
        /// &amp;lt;returns&amp;gt;Все постые числа, начиная с 2&amp;lt;/returns&amp;gt;
        public static IEnumerable&amp;lt;int&amp;gt; AllSimpleNumbers()
        {
            for (int candidate = 2; true; candidate++)
            {
                if (IsValueSimple(candidate))
                    yield return candidate;
            }     
        }

        // 4. Написать метод MergeSum, принимающий на вход 2 
        // последовательности интов и возвращающий одну последовательность 
        // с поэлементной суммой. Использовать yield return.
        
        /// &amp;lt;summary&amp;gt;
        /// Слияние 2-х последовательностей поэлементным суммированием
        /// &amp;lt;/summary&amp;gt;
        /// &amp;lt;param name=&amp;quot;a&amp;quot;&amp;gt;Первая последовательность&amp;lt;/param&amp;gt;
        /// &amp;lt;param name=&amp;quot;b&amp;quot;&amp;gt;Вторая последовательность&amp;lt;/param&amp;gt;
        /// &amp;lt;returns&amp;gt;Последовательность с поэлементной суммой&amp;lt;/returns&amp;gt;
        public static IEnumerable&amp;lt;int&amp;gt; MergeSum(IEnumerable&amp;lt;int&amp;gt; a, IEnumerable&amp;lt;int&amp;gt; b)
        {
            var en1 = a.GetEnumerator();
            var en2 = b.GetEnumerator();

            while (true)
            {
                bool b1 = en1.MoveNext();
                bool b2 = en2.MoveNext();
                if (!b1 &amp;amp;&amp;amp; !b2)
                    break;

                int v1 = b1 ? en1.Current : 0;
                int v2 = b2 ? en2.Current : 0;
                yield return v1 + v2;
            }
        }

        }
}
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-size:120%"&gt;Вложения&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;a target="_blank" rel="nofollow" href="https://stocksharp.ru/away/?u=AQAAAAAAAADXjL5CL3VluFBlkphAxfOmgzHwBS6gmZ6H1CH1BJ_rN_4qYbIz0eRYJiis-L8IAwA" title="https://vk.com/doc-66674957_276915055"&gt;Исходные коды&lt;/a&gt;</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/3386/</id>
    <title type="text">6 семинар</title>
    <published>2013-02-13T11:22:52Z</published>
    <updated>2013-02-13T11:22:52Z</updated>
    <author>
      <name>Самунджян Артем</name>
      <uri>https://stocksharp.ru/users/675/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="Обучение" />
    <content type="html">&lt;span style="font-size:120%"&gt;&lt;b&gt;Запись урока: &lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:120%"&gt;&lt;b&gt;Часть 1 &lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;[vk]http://vk.com/video_ext.php?oid=-66674957&amp;amp;id=167888006&amp;amp;hash=825d8ae1bd796058&amp;amp;hd=3[/vk]&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:120%"&gt;&lt;b&gt;Часть 2 &lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;[vk]http://vk.com/video_ext.php?oid=-66674957&amp;amp;id=167888010&amp;amp;hash=04c36384a310b279&amp;amp;hd=3[/vk]&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:120%"&gt;&lt;b&gt;Темы занятия:&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;1. Продолжение работы с проектом SimpleTicker: &lt;br /&gt;&lt;ul&gt;&lt;li&gt;добавление SMA-индикатора; &lt;br /&gt;&lt;li&gt;работа с шортом и лонгом;&lt;br /&gt;&lt;li&gt;установление направления заявки, определение цены и создание;&lt;/ul&gt;&lt;br /&gt;2. Рассмотрение примера библиотеки StockSharp - Sample.&lt;br /&gt;3. Подключение к своей программе индикатора SMA, прописанного в StockSharp; тестирование.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:120%"&gt;&lt;b&gt;Домашнее задание:&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;1. Дописать различные варианты тестов для проекта SimpleTicker&lt;br /&gt;2. Нарисовать иерархию классов под IIndicatorValue&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:120%"&gt;&lt;b&gt;Пример решения домашнего задания:&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;ValueWinnerIndicatorTest.cs:&lt;br /&gt;&lt;div class='spoilertitle'&gt;&lt;input type='button' value='Показать спойлер' class='btn btn-primary' onclick="toggleSpoiler(this, 'spolier_5bc38769b45a458cabefbe9d84c6b6ce');" title='Показать спойлер' /&gt;&lt;/div&gt;&lt;div class='spoilerbox' id='spolier_5bc38769b45a458cabefbe9d84c6b6ce' style='display:none'&gt;&lt;div class="code"&gt;&lt;strong&gt;Код&lt;/strong&gt;&lt;div class="innercode"&gt;&lt;pre class="brush:csharp"&gt;
using SimpleTicker;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using System;
using StockSharp.Algo.Indicators;
using StockSharp.Algo.Indicators.Trend;

namespace SimpleTickerTest
{
    [TestClass()]
    public class ValueWinnerIndicatorTest
    {
        private SimpleMovingAverage _sma1;
        private SimpleMovingAverage _sma2;
        private ValueWinnerIndicator/*&amp;lt;decimal, decimal&amp;gt;*/ _winner;

        #region Дополнительные атрибуты теста
        // 
        //При написании тестов можно использовать следующие дополнительные атрибуты:
        //
        //ClassInitialize используется для выполнения кода до запуска первого теста в классе
        //[ClassInitialize()]
        //public static void MyClassInitialize(TestContext testContext)
        //{
        //}
        //
        //ClassCleanup используется для выполнения кода после завершения работы всех тестов в классе
        //[ClassCleanup()]
        //public static void MyClassCleanup()
        //{
        //}
        //
        //TestInitialize используется для выполнения кода перед запуском каждого теста
        //[TestInitialize()]
        //public void MyTestInitialize()
        //{
        //}
        //
        //TestCleanup используется для выполнения кода после завершения каждого теста
        //[TestCleanup()]
        //public void MyTestCleanup()
        //{
        //}
        //
        #endregion

        //TestInitialize используется для выполнения кода перед запуском каждого теста
        [TestInitialize()]
        public void MyTestInitialize()
        {
            _sma1 = new SimpleMovingAverage { Length = 2 };
            _sma2 = new SimpleMovingAverage { Length = 3 };
            _winner = new ValueWinnerIndicator/*&amp;lt;decimal, decimal&amp;gt;*/(_sma1, _sma2);
        }

        [TestMethod()]
        public void IsFormedTest()
        {
            Assert.IsFalse(_winner.IsFormed);
            _winner.Process((DecimalIndicatorValue)1m);
            Assert.IsFalse(_winner.IsFormed);
            _winner.Process((DecimalIndicatorValue)2m);
            Assert.IsFalse(_winner.IsFormed);
            _winner.Process((DecimalIndicatorValue)3m);

            Assert.IsTrue(_winner.IsFormed);
        }

        [TestMethod()]
        public void ProcessWhileNotFormedTest()
        {
            IIndicatorValue biv = null;

            biv = _winner.Process((DecimalIndicatorValue)1m);
            Assert.IsFalse(biv.GetValue&amp;lt;bool&amp;gt;());
            biv = _winner.Process((DecimalIndicatorValue)2m);
            Assert.IsFalse(biv.GetValue&amp;lt;bool&amp;gt;());
            biv = _winner.Process((DecimalIndicatorValue)3m);
            Assert.IsFalse(biv.GetValue&amp;lt;bool&amp;gt;());
        }

        [TestMethod()]
        public void Process55012Test()
        {
            _winner.Process((DecimalIndicatorValue)5m);
            _winner.Process((DecimalIndicatorValue)5m);
            _winner.Process((DecimalIndicatorValue)0m);
            // Short = 2.5; Long = 3.3;

            bool firstWinWasCalled = false;
            bool secondWinWasCalled = false;
            bool? winnerChangedWasCalled = null;// Nullable&amp;lt;bool&amp;gt;
            _winner.FirstWin += () =&amp;gt; firstWinWasCalled = true;
            _winner.SecondWin += () =&amp;gt; secondWinWasCalled = true;
            _winner.WinnerChanged += isFirstWin =&amp;gt; winnerChangedWasCalled = isFirstWin;

            IIndicatorValue biv = null;
            biv = _winner.Process((DecimalIndicatorValue)12m);
            Assert.IsTrue(biv.GetValue&amp;lt;bool&amp;gt;());
            // Short = 6; Long = 17/3;

            Assert.IsTrue(firstWinWasCalled);
            Assert.IsFalse(secondWinWasCalled);
            Assert.IsNotNull(winnerChangedWasCalled);
            Assert.IsTrue(winnerChangedWasCalled.Value);
        }

        [TestMethod()]
        public void Process5550Test()
        {
            _winner.Process((DecimalIndicatorValue)5m);
            _winner.Process((DecimalIndicatorValue)5m);
            _winner.Process((DecimalIndicatorValue)5m);
            // Short = 5; Long = 5;

            bool firstWinWasCalled = false;
            bool secondWinWasCalled = false;
            bool? winnerChangedWasCalled = null;// Nullable&amp;lt;bool&amp;gt;
            _winner.FirstWin += () =&amp;gt; firstWinWasCalled = true;
            _winner.SecondWin += () =&amp;gt; secondWinWasCalled = true;
            _winner.WinnerChanged += isFirstWin =&amp;gt; winnerChangedWasCalled = isFirstWin;

            IIndicatorValue biv = null;
            biv = _winner.Process((DecimalIndicatorValue)0m);
            Assert.IsTrue(biv.GetValue&amp;lt;bool&amp;gt;());
            // Short = 2.5; Long = 3.333;

            Assert.IsFalse(firstWinWasCalled);
            Assert.IsTrue(secondWinWasCalled);
            Assert.IsNotNull(winnerChangedWasCalled);
            Assert.IsFalse(winnerChangedWasCalled.Value);
        }

        [TestMethod()]
        public void Process5555Test()
        {
            _winner.Process((DecimalIndicatorValue)5m);
            _winner.Process((DecimalIndicatorValue)5m);
            _winner.Process((DecimalIndicatorValue)5m);
            // Short = 5; Long = 5;

            bool firstWinWasCalled = false;
            bool secondWinWasCalled = false;
            bool? winnerChangedWasCalled = null;// Nullable&amp;lt;bool&amp;gt;
            _winner.FirstWin += () =&amp;gt; firstWinWasCalled = true;
            _winner.SecondWin += () =&amp;gt; secondWinWasCalled = true;
            _winner.WinnerChanged += isFirstWin =&amp;gt; winnerChangedWasCalled = isFirstWin;

            IIndicatorValue biv = null;
            biv = _winner.Process((DecimalIndicatorValue)5m);
            Assert.IsFalse(biv.GetValue&amp;lt;bool&amp;gt;());
            // Short = 5; Long = 5;

            Assert.IsFalse(firstWinWasCalled);
            Assert.IsFalse(secondWinWasCalled);
            Assert.IsNull(winnerChangedWasCalled);
        }
    }
}
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;SmaIndicatorTest.cs:&lt;br /&gt;&lt;div class='spoilertitle'&gt;&lt;input type='button' value='Показать спойлер' class='btn btn-primary' onclick="toggleSpoiler(this, 'spolier_c0be8106ad714514b98f346023e8bfd6');" title='Показать спойлер' /&gt;&lt;/div&gt;&lt;div class='spoilerbox' id='spolier_c0be8106ad714514b98f346023e8bfd6' style='display:none'&gt;&lt;div class="code"&gt;&lt;strong&gt;Код&lt;/strong&gt;&lt;div class="innercode"&gt;&lt;pre class="brush:csharp"&gt;
using SimpleTicker;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using System;

namespace SimpleTickerTest
{
    [TestClass()]
    public class SmaIndicatorTest
    {
        #region Дополнительные атрибуты теста
        // 
        //При написании тестов можно использовать следующие дополнительные атрибуты:
        //
        //ClassInitialize используется для выполнения кода до запуска первого теста в классе
        //[ClassInitialize()]
        //public static void MyClassInitialize(TestContext testContext)
        //{
        //}
        //
        //ClassCleanup используется для выполнения кода после завершения работы всех тестов в классе
        //[ClassCleanup()]
        //public static void MyClassCleanup()
        //{
        //}
        //
        //TestInitialize используется для выполнения кода перед запуском каждого теста
        //[TestInitialize()]
        //public void MyTestInitialize()
        //{
        //}
        //
        //TestCleanup используется для выполнения кода после завершения каждого теста
        //[TestCleanup()]
        //public void MyTestCleanup()
        //{
        //}
        //
        #endregion

        [TestMethod()]
        public void AddTestLength2()
        {
            var ind = new SmaIndicator(2);

            Assert.IsFalse(ind.IsFormed);
            ind.Process(1);
            Assert.IsFalse(ind.IsFormed);
            ind.Process(2);

            Assert.IsTrue(ind.IsFormed);
            Assert.AreEqual(1.5m, ind.LastValue);

            ind.Process(5);

            Assert.IsTrue(ind.IsFormed);
            Assert.AreEqual(3.5m, ind.LastValue);
        }

        [TestMethod()]
        public void AddTestLength3()
        {
            var ind = new SmaIndicator(3);

            Assert.IsFalse(ind.IsFormed);
            ind.Process(2);
            Assert.IsFalse(ind.IsFormed);
            ind.Process(2);
            Assert.IsFalse(ind.IsFormed);
            ind.Process(5);

            Assert.IsTrue(ind.IsFormed);
            Assert.AreEqual(3m, ind.LastValue);

            ind.Process(8);

            Assert.IsTrue(ind.IsFormed);
            Assert.AreEqual(5m, ind.LastValue);
        }
    }
}
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-size:120%"&gt;Вложения&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;a target="_blank" rel="nofollow" href="https://stocksharp.ru/away/?u=AQAAAAAAAADXjL5CL3VluFBlkphAxfOmgzHwBS6gmZ6H1CH1BJ_rN_4qYbIz0eRYJiis-L8IAwA" title="https://vk.com/doc-66674957_276915055"&gt;Исходные коды&lt;/a&gt;</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/3385/</id>
    <title type="text">5 семинар</title>
    <published>2013-02-13T11:20:18Z</published>
    <updated>2013-02-13T11:20:18Z</updated>
    <author>
      <name>Самунджян Артем</name>
      <uri>https://stocksharp.ru/users/675/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="Обучение" />
    <content type="html">&lt;span style="font-size:120%"&gt;&lt;b&gt;Запись урока: &lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:120%"&gt;&lt;b&gt;Часть 1 &lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;[vk]http://vk.com/video_ext.php?oid=-66674957&amp;amp;id=167887861&amp;amp;hash=6412c1a92a61c1ec&amp;amp;hd=3[/vk]&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:120%"&gt;&lt;b&gt;Часть 2 &lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;[vk]http://vk.com/video_ext.php?oid=-66674957&amp;amp;id=167887862&amp;amp;hash=98a826729b6bcf31&amp;amp;hd=3[/vk]&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:120%"&gt;&lt;b&gt;Темы занятия:&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;1.	Детальное рассмотрение примера StockSharp для QUIK – SampleConsole:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Подключение к запущенному  QUIK, либо программный запуск и аутентификация.&lt;br /&gt;&lt;li&gt;События появления портфеля, инструментов, стакана, далее – новых сделок.&lt;br /&gt;&lt;li&gt;Добавление заявки на покупку/продажу – создание условия (отклонение от середины спреда),  при выполнении которого действие будет совершено. &lt;/ul&gt;&lt;br /&gt;2.	Начало рассмотрения примера StockSharp для QUIK - SampleCandles: &lt;br /&gt;&lt;ul&gt;&lt;li&gt;WPF (Windows Presentation Foundation) (см. подробнее &lt;a target="_blank" rel="nofollow" href="https://stocksharp.ru/away/?u=AQAAAAAAAAAEaGmvoumqQV_3sIYeBdTh-tvNSqx15cmvLa7FOzSozZpFvjbxP_lr5k1RITsuE-Y" title="http://ru.wikipedia.org/wiki/WPF"&gt;Вики&lt;/a&gt; и &lt;a target="_blank" href="http://msdn.microsoft.com/ru-ru/library/ms754130.aspx" title="http://msdn.microsoft.com/ru-ru/library/ms754130.aspx"&gt;справочник C#&lt;/a&gt;)&lt;br /&gt;&lt;li&gt;Базовая настройка событий для примера SampleCandles (создание окон и добавление в них свечек).&lt;/ul&gt;&lt;br /&gt;3.	Создание простой консольной программы для вывода свечек.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:120%"&gt;&lt;b&gt;Домашнее задание:&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;В проект SimpleTicker добавить разработанный ранее SMA-индикатор&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:120%"&gt;&lt;b&gt;Полезные материалы:&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;1.	&lt;a target="_blank" href="http://msdn.microsoft.com/ru-ru/library/ms173178.aspx" title="http://msdn.microsoft.com/ru-ru/library/ms173178.aspx"&gt;Потоки в C#&lt;/a&gt;&lt;br /&gt;2.      &lt;a target="_blank" href="http://msdn.microsoft.com/ru-ru/library/system.threading.aspx" title="http://msdn.microsoft.com/ru-ru/library/system.threading.aspx"&gt;Пространство имен System.Threading&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-size:120%"&gt;Вложения&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;a target="_blank" rel="nofollow" href="https://stocksharp.ru/away/?u=AQAAAAAAAADXjL5CL3VluFBlkphAxfOmgzHwBS6gmZ6H1CH1BJ_rN_4qYbIz0eRYJiis-L8IAwA" title="https://vk.com/doc-66674957_276915055"&gt;Исходные коды&lt;/a&gt;</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/3384/</id>
    <title type="text">4 семинар</title>
    <published>2013-02-13T09:59:55Z</published>
    <updated>2013-02-13T09:59:55Z</updated>
    <author>
      <name>Самунджян Артем</name>
      <uri>https://stocksharp.ru/users/675/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="Обучение" />
    <content type="html">&lt;span style="font-size:120%"&gt;&lt;b&gt;Запись урока: &lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:120%"&gt;&lt;b&gt;Часть 1 &lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;[vk]http://vk.com/video_ext.php?oid=-66674957&amp;amp;id=167886046&amp;amp;hash=bed15957c2efd528&amp;amp;hd=3[/vk]&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:120%"&gt;&lt;b&gt;Часть 2 &lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;[vk]http://vk.com/video_ext.php?oid=-66674957&amp;amp;id=167886048&amp;amp;hash=bb4f7d12f349b7c0&amp;amp;hd=3[/vk]&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:120%"&gt;&lt;b&gt;Темы занятия:&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;1.	События, операции подписывания/отписывания, вызов события.&lt;br /&gt;2.	Создание приложения Windows Forms, элементы форм (&lt;a target="_blank" href="http://msdn.microsoft.com/ru-ru/library/system.windows.forms.button.aspx" title="http://msdn.microsoft.com/ru-ru/library/system.windows.forms.button.aspx"&gt;&lt;span style="color:darkred"&gt;Button&lt;/span&gt;&lt;/a&gt;, &lt;a target="_blank" href="http://msdn.microsoft.com/ru-ru/library/system.windows.forms.textbox.aspx" title="http://msdn.microsoft.com/ru-ru/library/system.windows.forms.textbox.aspx"&gt;&lt;span style="color:darkred"&gt;TextBox&lt;/span&gt;&lt;/a&gt;, &lt;a target="_blank" href="http://msdn.microsoft.com/ru-ru/library/system.windows.forms.checkbox.aspx" title="http://msdn.microsoft.com/ru-ru/library/system.windows.forms.checkbox.aspx"&gt;&lt;span style="color:darkred"&gt;CheckBox&lt;/span&gt;&lt;/a&gt;, &lt;a target="_blank" href="http://msdn.microsoft.com/ru-ru/library/system.windows.forms.tabcontrol.aspx" title="http://msdn.microsoft.com/ru-ru/library/system.windows.forms.tabcontrol.aspx"&gt;&lt;span style="color:darkred"&gt;TabControl&lt;/span&gt;&lt;/a&gt;, &lt;a target="_blank" href="http://msdn.microsoft.com/ru-ru/library/system.windows.forms.combobox.aspx" title="http://msdn.microsoft.com/ru-ru/library/system.windows.forms.combobox.aspx"&gt;&lt;span style="color:darkred"&gt;ComboBox&lt;/span&gt;&lt;/a&gt;), обработчики событий формы.&lt;br /&gt;3.	&lt;a target="_blank" href="http://msdn.microsoft.com/ru-ru/library/2w8f0bss.aspx" title="http://msdn.microsoft.com/ru-ru/library/2w8f0bss.aspx"&gt;&lt;span style="color:darkred"&gt;Обработка исключений&lt;/span&gt;&lt;/a&gt; и &lt;a target="_blank" href="http://msdn.microsoft.com/ru-ru/library/z4c5tckx.aspx" title="http://msdn.microsoft.com/ru-ru/library/z4c5tckx.aspx"&gt;&lt;span style="color:darkred"&gt;их иерархия&lt;/span&gt;&lt;/a&gt;.&lt;br /&gt;4.	Начало работы с библиотекой StockSharp (ConsoleSample).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:120%"&gt;&lt;b&gt;Домашнее задание:&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;1. Нарисовать часть иерархии исключений, чтобы представлять, кто на ком стоит.&lt;br /&gt;2. Реализовать срабатывание алгоритма в примере SampleConsole не по ожиданию 1000мс, а по событию изменения стакана.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:120%"&gt;&lt;b&gt;Полезные материалы:&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;1. &lt;a target="_blank" rel="nofollow" href="https://stocksharp.ru/away/?u=AQAAAAAAAADxQZTy2o4Oc4lLYgR71i6gL0YolyelOyoqJYSlnXfW2ruYuIG5hJcI00DN3WLOTPXRz4C4-leNz9sg68Uy0ZpY" title="http://zerich.ru/internet-trading/platforms/quik/"&gt;Здесь можно подать заявку на демо-счет.&lt;/a&gt;&lt;br /&gt;2. &lt;a target="_blank" rel="nofollow" href="https://stocksharp.ru/away/?u=AQAAAAAAAAA2Dytq3nNHUYJvxjEs-wKgkJXr_oJ7jts4m8P_n-Pl23fiGWJVyrTByyq-RIJdG6w" title="https://www.box.com/stocksharp/1/841005838"&gt;Скачать библиотеку StockSharp&lt;/a&gt; (достаточно архива StockSharp_4.x.xx_Sources.zip)&lt;br /&gt;3. &lt;a href="http://www.stocksharp.com/doc/html/5c13da7b-b6e4-4fd4-958a-66c93c58b941.htm" title="http://www.stocksharp.com/doc/html/5c13da7b-b6e4-4fd4-958a-66c93c58b941.htm"&gt;&lt;span style="color:darkred"&gt;Настройка Quick для StockSharp&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:120%"&gt;&lt;b&gt;Решение домашней задачи:&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;div class='spoilertitle'&gt;&lt;input type='button' value='Показать спойлер' class='btn btn-primary' onclick="toggleSpoiler(this, 'spolier_f74dbf67b01b4ec7893fb94c43fb020a');" title='Показать спойлер' /&gt;&lt;/div&gt;&lt;div class='spoilerbox' id='spolier_f74dbf67b01b4ec7893fb94c43fb020a' style='display:none'&gt;&lt;br /&gt;Необходимо:&lt;br /&gt;1. Дописать:&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;
using (var waitHandleQuotesChanged = new AutoResetEvent(false))&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;2. Находим строки с расчетом середины спреда и указываем подписывание на новое событие.&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 firstMid = _security.BestPair.MiddlePrice;
                        Console.WriteLine(&amp;quot;Первоначальное значение середины спреда {0:0.##}&amp;quot;, firstMid);

                        ///////////////////////////////
                        //Подписываемся на событие
                        _depth.QuotesChanged += () =&amp;gt;
                        {
                            waitHandleQuotesChanged.Set();
                        };
                        //////////////////////////////

                        while (true)
                        {
                            var mid = _security.BestPair.MiddlePrice;
                            Console.WriteLine(&amp;quot;Текущее значение середины спреда {0:0.##}&amp;quot;, mid);

                            // если спред вышел за пределы нашего диапазона
                            if ((firstMid * (1.0m + delta) &amp;lt;= mid) ||
                                 (firstMid * (1.0m - delta) &amp;gt;= mid))
                            {
                                var order = new Order
                                {
                                    Portfolio = _portfolio,
                                    Security = _security,
                                    Price = _security.ShrinkPrice(mid),
                                    Volume = 1,
                                    Direction = OrderDirections.Buy,
                                };

                             }

                            // ждем 1 секунду
                            //Thread.Sleep(1000);
                            //TODO: Ждать не 1 сек, а изменения стакана
                            waitHandleQuotesChanged.WaitOne();
                        }
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-size:120%"&gt;Вложения&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;a target="_blank" rel="nofollow" href="https://stocksharp.ru/away/?u=AQAAAAAAAADXjL5CL3VluFBlkphAxfOmgzHwBS6gmZ6H1CH1BJ_rN_4qYbIz0eRYJiis-L8IAwA" title="https://vk.com/doc-66674957_276915055"&gt;Исходные коды&lt;/a&gt;</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/3383/</id>
    <title type="text">3 семинар</title>
    <published>2013-02-13T09:48:41Z</published>
    <updated>2013-02-13T09:48:41Z</updated>
    <author>
      <name>Самунджян Артем</name>
      <uri>https://stocksharp.ru/users/675/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="Обучение" />
    <content type="html">&lt;span style="font-size:120%"&gt;&lt;b&gt;Запись урока: &lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:120%"&gt;&lt;b&gt;Часть 1 &lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;[vk]http://vk.com/video_ext.php?oid=-66674957&amp;amp;id=167886014&amp;amp;hash=485c6ef5d7844e6f&amp;amp;hd=3[/vk]&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:120%"&gt;&lt;b&gt;Часть 2 &lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;[vk]http://vk.com/video_ext.php?oid=-66674957&amp;amp;id=167886016&amp;amp;hash=d5a74cd8c3f76bb9&amp;amp;hd=3[/vk]&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:120%"&gt;&lt;b&gt;Темы занятия:&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;1.	Сущность и основные принципы ООП (см. стр. 42 Шилдта или &lt;a target="_blank" rel="nofollow" href="https://stocksharp.ru/away/?u=AQAAAAAAAAAEaGmvoumqQV_3sIYeBdThYsD1oiuIli87Mns2dDNxwB3WvjYOD8o-ervjE2W00e1km20Juu8RzI9EZB1EnESmF8IdsIlwmLKvyj0nMKn6DhehXk8msfwdHLhG4uHKgM06PGSMr1ej7Z9xweE65CDMBCXV_vUPuac88FGewCq4Kx80Rz0TWj2nUBh12drok0PrSZ6wnmQT9-QfeVFyAptcAUutHPeQcR9kr_fdcGK2p_p34qoDyZ7k64vxB4AV88OcqjnSa8IinYtpFFYmWkYyO0ZQ_H-u_smZKtq2_8z2Tkt7occNADG-EpBVDZwQuzQ" title="http://ru.wikipedia.org/wiki/%25CE%25E1%25FA%25E5%25EA%25F2%25ED%25EE-%25EE%25F0%25E8%25E5%25ED%25F2%25E8%25F0%25EE%25E2%25E0%25ED%25ED%25EE%25E5_%25EF%25F0%25EE%25E3%25F0%25E0%25EC%25EC%25E8%25F0%25EE%25E2%25E0%25ED%25E8%25E5"&gt;Википедия об ООП&lt;/a&gt;): &lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a target="_blank" rel="nofollow" href="https://stocksharp.ru/away/?u=AQAAAAAAAAAEaGmvoumqQV_3sIYeBdThBhiuItNCcGsIy35jEdFoiZXQ3aXlNfa4zBy7TaPyAeIuEMDQiyYLwCkldWIRb-c0Uxlhn2YurGg0LQXasJHt4e5jyiKgPuqv-x19qj5Nu5ctTFY4aGqxeS6YabHAawOkvydwFM1ryAtR9yD6CHgicg" title="http://ru.wikipedia.org/wiki/%D0%90%D0%B1%D1%81%D1%82%D1%80%D0%B0%D0%BA%D1%86%D0%B8%D1%8F_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85"&gt;Абстракция&lt;/a&gt;;&lt;br /&gt;&lt;li&gt;&lt;a target="_blank" rel="nofollow" href="https://stocksharp.ru/away/?u=AQAAAAAAAAAEaGmvoumqQV_3sIYeBdThBhiuItNCcGsIy35jEdFoiXLaZId9kxBXUEvvIJvceuYVBLPvttFO4cog0nhNo7yAsqkVkzG2o2JzKf2jbEPMdLzt-1dhuBIpfQE6lSyBACxACEUO9D9SCyCKxkO7DWLC_oIw9_XIy5l0XpglcE4UXBllvX34Wg9gppZHVwiGfKmD9ZyEezKoJ2wzKkmXEnNSKgByin4fLa20AAc4dwjY1K_qJT_8sG6kSXljvHXSGar7vhaYobd566aOwSXRlNC2" title="http://ru.wikipedia.org/wiki/%D0%98%D0%BD%D0%BA%D0%B0%D0%BF%D1%81%D1%83%D0%BB%D1%8F%D1%86%D0%B8%D1%8F_(%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5)"&gt;Инкапсуляция&lt;/a&gt;;&lt;br /&gt;&lt;li&gt;&lt;a target="_blank" rel="nofollow" href="https://stocksharp.ru/away/?u=AQAAAAAAAAAEaGmvoumqQV_3sIYeBdThBhiuItNCcGsIy35jEdFoiQzZC8tOVdfGLMiH0m6nl2W3BR5kNGpWIkJ5UTTe6zImaFFHONYVLcEwRrdRrZUY8fLp769joj1yWKOdC-NTKx6SfnQXfbY3twqN9RjWllNADT2r6y1lXWC3dT9ARknTHgytLmmB1bpzGzzZGnwBNmIKFKK0D249_MFBtIjsFq_FBEsrgp8F6DjvAPQ0qQsijY9REzC9WUzJUxvRnZD9l28Z883j3urtcPQI9uIWhaTp" title="http://ru.wikipedia.org/wiki/%D0%9F%D0%BE%D0%BB%D0%B8%D0%BC%D0%BE%D1%80%D1%84%D0%B8%D0%B7%D0%BC_(%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5)"&gt;Полиморфизм&lt;/a&gt;;&lt;br /&gt;&lt;li&gt;&lt;a target="_blank" rel="nofollow" href="https://stocksharp.ru/away/?u=AQAAAAAAAAAEaGmvoumqQV_3sIYeBdThBhiuItNCcGsIy35jEdFoibE-1nyOyIX2-LU89_083OeAOrK_DtzFSV_DLvBgtfyGLlJJakrAI2-yKxyL8LmA7-1N5pK6IfJyTSm0E_Az-1ewPh6EZlTZooROhm0eGcJer1VK4LbxYJVTqf-tADh2xGqvLg6AurtqjijWsVpPpXX6KxotAMx7pRaFUC2EXen_IrGV-76xlATq56aWmwU_4EvT84OQ6NzCE47Rz-kzRm2oSw1vI63yAcZV1P01RnVg" title="http://ru.wikipedia.org/wiki/%D0%9D%D0%B0%D1%81%D0%BB%D0%B5%D0%B4%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_(%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5)"&gt;Наследование&lt;/a&gt;.&lt;/ul&gt;2.	Тестирование программы средствами Visual Studio 2010.&lt;br /&gt;3.	Использование очередей – класс Queue. (см. &lt;a target="_blank" href="http://msdn.microsoft.com/en-us/library/system.collections.queue.aspx" title="http://msdn.microsoft.com/en-us/library/system.collections.queue.aspx"&gt;Справочник C#&lt;/a&gt;)&lt;br /&gt;4.	Классы: уровни доступности (см. &lt;a target="_blank" href="http://msdn.microsoft.com/ru-ru/library/ba0a1yw2.aspx" title="http://msdn.microsoft.com/ru-ru/library/ba0a1yw2.aspx"&gt;Справочник C#&lt;/a&gt;), статические и нестатические методы (см. &lt;a target="_blank" href="http://msdn.microsoft.com/ru-ru/library/98f28cdx.aspx" title="http://msdn.microsoft.com/ru-ru/library/98f28cdx.aspx"&gt;Справочник C#&lt;/a&gt;), интерфейсы (стр. 375 Шилдта)&lt;br /&gt;5.	Делегирование (см. стр. 473 Шилдта) и лямбда-выражения (см. стр. 488 Шилдта).&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:120%"&gt;&lt;b&gt;Домашнее задание:&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;1. Прочитать о следующих методах LINQ:&lt;br /&gt;	&lt;ul&gt;&lt;li&gt;Take(), TakeWhile(), Skip(), SkipWhile(); &lt;br /&gt;	&lt;li&gt;First(), FirstOrDefault(), Min(), Max(); &lt;br /&gt;	&lt;li&gt;OrderBy(), OrderByDescending(), ElementAt(); &lt;br /&gt;	&lt;li&gt;ToList(), ToArray(), ToSet();&lt;br /&gt;	&lt;li&gt;При желании – GroupBy().&lt;/ul&gt;2. Написать тесты к классу SmmIndicator по аналогии с SmaIndicator.&lt;br /&gt;Тесты оформить в виде MSTest, если стоит полная версия Visual Studio или в виде самодельной функции)&lt;br /&gt;&lt;br /&gt;3. Разработать расширяющий метод (Extension method) для IEnumerable&amp;lt;int&amp;gt;, выполняющий подсчёт выражения:&lt;br /&gt;КубическийКорень(Сумма(Аi * i))&lt;br /&gt;Пример использования метода в коде:&lt;br /&gt;var mas = new [] {5,6,7,8,9};&lt;br /&gt;double res = mas.MyMagicMethod();&lt;br /&gt;// res == кубкорень(5*0 + 6*1 + 7*2 + 8*3 + 9*4);&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:120%"&gt;&lt;b&gt;Полезные материалы:&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;1. &lt;a target="_blank" href="http://msdn.microsoft.com/ru-ru/library/bb383977.aspx" title="http://msdn.microsoft.com/ru-ru/library/bb383977.aspx"&gt;Методы расширения&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:120%"&gt;&lt;b&gt;Решение домашней задачи:&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;div class='spoilertitle'&gt;&lt;input type='button' value='Показать спойлер' class='btn btn-primary' onclick="toggleSpoiler(this, 'spolier_88d30649327e43bf8c1cfca44f057cdb');" title='Показать спойлер' /&gt;&lt;/div&gt;&lt;div class='spoilerbox' id='spolier_88d30649327e43bf8c1cfca44f057cdb' style='display:none'&gt;&lt;br /&gt;&lt;em&gt;&lt;b&gt;1. Тест для SmmIndicator:&lt;/b&gt;&lt;/em&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;
static class MySmmIndicatorTest
    {
        public static void AddTestLength2()
        {
            var ind = new SmmIndicator(2);

            ind.Add(3);
            ind.Add(4);

            if (!ind.IsReady)
                throw new Exception();
            if (5m != ind.Value)
                throw new Exception();

            ind.Add(10);

            if (!ind.IsReady)
                throw new Exception();
            if (Math.Abs(116m - ind.Value * ind.Value) &amp;gt; 0.000001m)
                throw new Exception();
        }

        public static void AddTestLength3()
        {
            var ind = new SmmIndicator(3);

            ind.Add(3);
            ind.Add(4);
            ind.Add(5);

            if (!ind.IsReady)
                throw new Exception();
            if (Math.Abs(50m - ind.Value * ind.Value) &amp;gt; 0.000001m)
                throw new Exception();

            ind.Add(8);

            if (!ind.IsReady)
                throw new Exception();
            if (Math.Abs(105m - ind.Value * ind.Value) &amp;gt; 0.000001m)
                throw new Exception();
        }
    }&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;b&gt;&lt;em&gt;2. Расширяющий метод:&lt;/em&gt;&lt;/b&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 double MyMagicMethod(this IEnumerable&amp;lt;int&amp;gt; items)
        {
            //double sum = 0;
            //int index = 0;
            //foreach (var item in items)
            //{
            //    sum += item*index;
            //    index++;
            //}
            //return Math.Pow(sum, 1.0/3);

           
            // LINQ ~ SQL
            return Math.Pow(items.Select((a,i) =&amp;gt; a*i).Sum(), 1.0 / 3);
        }&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-size:120%"&gt;Вложения:&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;a target="_blank" rel="nofollow" href="https://stocksharp.ru/away/?u=AQAAAAAAAADXjL5CL3VluFBlkphAxfOmgzHwBS6gmZ6H1CH1BJ_rN_4qYbIz0eRYJiis-L8IAwA" title="https://vk.com/doc-66674957_276915055"&gt;Исходные коды&lt;/a&gt;</content>
  </entry>
</feed>