﻿<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type='text/css' href='https://stocksharp.com/css/style.css'?>
<?xml-stylesheet type='text/css' href='https://stocksharp.com/css/bbeditor.css'?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title type="html">3 семинар</title>
  <id>~/topic/3383/3-seminar/</id>
  <rights type="text">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  <updated>2026-04-04T17:32:08Z</updated>
  <logo>https://stocksharp.com/images/logo.png</logo>
  <link href="https://stocksharp.com/handlers/atom.ashx?category=topic&amp;id=3383" rel="self" type="application/rss+xml" />
  <entry>
    <id>https://stocksharp.com/posts/m/23995/</id>
    <title type="text">Запись урока: Часть 1 http://vk.com/video_ext.php?oid=-66674957&amp;amp;id=167886014&amp;amp;hash=485c6ef5d7844e6f&amp;amp;h...</title>
    <published>2013-02-13T09:48:41Z</published>
    <updated>2014-03-06T09:16:30Z</updated>
    <author>
      <name>Самунджян Артем</name>
      <uri>https://stocksharp.com/users/675/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <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.com/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.com/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.com/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.com/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.com/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='Show spoiler' class='btn btn-primary' onclick="toggleSpoiler(this, 'spolier_a8c20b2bc2a14962b7732917d9ec2c72');" title='Show spoiler' /&gt;&lt;/div&gt;&lt;div class='spoilerbox' id='spolier_a8c20b2bc2a14962b7732917d9ec2c72' 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;Code&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;Code&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.com/away/?u=AQAAAAAAAADXjL5CL3VluFBlkphAxfOmgzHwBS6gmZ6H1CH1BJ_rN_4qYbIz0eRYJiis-L8IAwA" title="https://vk.com/doc-66674957_276915055"&gt;Исходные коды&lt;/a&gt;</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/25199/</id>
    <title type="text">С чем может быть связано расхождение в значениях линий Болленжера в моем коде и в терминале Alfa-Dir...</title>
    <published>2013-04-06T08:56:37Z</published>
    <updated>2013-04-06T08:56:37Z</updated>
    <author>
      <name>IvanB</name>
      <uri>https://stocksharp.com/users/26984/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;UsilaDobry &lt;a href="https://stocksharp.com/posts/m/25198/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;С чем может быть связано расхождение в значениях линий Болленжера в моем коде и в терминале Alfa-Direct?&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;Два варианта, либо в Alfa-Direct этот индикатор реализован с каким-то нюансом, либо Вы ошиблись в алгоритме.&lt;br /&gt;&lt;br /&gt;</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/25198/</id>
    <title type="text">С чем может быть связано расхождение в значениях линий Болленжера в моем коде и в терминале Alfa-Dir...</title>
    <published>2013-04-06T08:38:26Z</published>
    <updated>2013-04-06T08:38:26Z</updated>
    <author>
      <name>UsilaDobry</name>
      <uri>https://stocksharp.com/users/28825/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">С чем может быть связано расхождение в значениях линий Болленжера в моем коде и в терминале Alfa-Direct?&lt;br /&gt;Мой код расчета:&lt;br /&gt;&lt;br /&gt;            MeddleBB = sum / _buffer.Count;&lt;br /&gt;            decimal variance = 0;&lt;br /&gt;            foreach (int x in _buffer)&lt;br /&gt;                variance += (decimal)Math.Pow((double)(x - MeddleBB), 2); &lt;br /&gt;            StdDev = (decimal) Math.Sqrt((double)(variance / (Length - 1)));&lt;br /&gt;            TopBB = MeddleBB + (D * StdDev);&lt;br /&gt;            LowerBB = MeddleBB - (D * StdDev);&lt;br /&gt;&lt;br /&gt;В результате у меня получается на пятиминутках 01.04.2013 в 11:35 верхняя - 140814, средняя 140527, нижняя 140239.&lt;br /&gt;В терминале AD: верхняя - 140943; средняя - 140578; нижняя - 140212.</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/25195/</id>
    <title type="text">В ДЗ после 3-го семинара надо было изучить ряд методов класса IEnumerable, среди которых метод ToSet...</title>
    <published>2013-04-06T03:22:11Z</published>
    <updated>2013-04-06T03:22:11Z</updated>
    <author>
      <name>IvanB</name>
      <uri>https://stocksharp.com/users/26984/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;UsilaDobry &lt;a href="https://stocksharp.com/posts/m/25192/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;В ДЗ после 3-го семинара надо было изучить ряд методов класса IEnumerable, среди которых метод ToSet(). Его в библиотеке MSDN нет.&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Несколько замечаний:&lt;br /&gt;Если быть точным, то IEnumerable не просто класс, а интерфейс (или чисто абстрактный класс).&lt;br /&gt;Нужно изучить не только интерфейс IEnumerable, а методы, которые перечислены в задании, а они реализованы не в IEnumerable (т.к. это интерфейс, в нем не может быть реализаций, а в данном случае и объявлений методов которые приведены в задании).&lt;br /&gt;&lt;br /&gt;Ну в общем Вы правы, что метода ToSet() нет в стандартном .NET, в частности в версии 4.5. Это было специально добавлено в задание, чтобы ученики могли ориентироваться в .NET, получили некоторый опыт в этом.&lt;br /&gt;&lt;br /&gt;Если все-таки необходимо преобразовать в коллекцию ISet&amp;lt;&amp;gt;, то можно воспользоваться готовыми расширениями LING, например MoreLINQ, или самому реализовать это расширение для IEnumerable&amp;lt;&amp;gt;.</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/25192/</id>
    <title type="text">В ДЗ после 3-го семинара надо было изучить ряд методов класса IEnumerable, среди которых метод ToSet...</title>
    <published>2013-04-05T15:12:00Z</published>
    <updated>2013-04-05T15:12:00Z</updated>
    <author>
      <name>UsilaDobry</name>
      <uri>https://stocksharp.com/users/28825/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">В ДЗ после 3-го семинара надо было изучить ряд методов класса IEnumerable, среди которых метод ToSet(). Его в библиотеке MSDN нет.</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
</feed>