﻿<?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=forum&amp;page=193</id>
  <rights type="text">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  <updated>2026-05-02T15:20:19Z</updated>
  <logo>https://stocksharp.ru/images/logo.png</logo>
  <link href="https://stocksharp.ru/handlers/atom.ashx?category=forum&amp;page=193" rel="self" type="application/rss+xml" />
  <entry>
    <id>https://stocksharp.ru/topic/2226/</id>
    <title type="text">&amp;quot;Рабочая&amp;quot; версия SampleSmartConsole не получает инструмент и портфель</title>
    <published>2011-12-14T20:57:28Z</published>
    <updated>2011-12-14T20:57:28Z</updated>
    <author>
      <name>Андрей Александрович</name>
      <uri>https://stocksharp.ru/users/255/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="SmartCom" />
    <content type="html">Приветствую, недавно закончил курс &amp;quot;Базовый&amp;quot; по S#, пытаюсь довести до ума пример SampleSmartConsole, но выполнение програмы останавливается после сообщения  &amp;quot;Дожидаемся появления в программе инструмента RIH и портфеля &amp;quot;&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;pre class="brush:csharp"&gt;
using System;
using System.Net;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using StockSharp.Algo;
using StockSharp.BusinessEntities;
using StockSharp.Smart;
using System.Threading;
using Ecng.Collections;
using Ecng.Common;
using StockSharp.Algo.Candles;


namespace MyFirstBot
{

    class Program
    {

        static string login = &amp;quot;Мой логин&amp;quot;;
        static string password = &amp;quot;QKVDBU&amp;quot;;
        public static Portfolio portfolio;
        public static Security secObject;
        static string sec;
        private StockSharp.Algo.Candles.CandleManager _candleManager;
        private TimeSpan _candleWidth;
        private SmartTrader trader;
        const string secCode = &amp;quot;RIH2&amp;quot;;
        const string account = &amp;quot;Мой счет&amp;quot;;


        static string ipAddress = &amp;quot;62.141.86.229&amp;quot;;
        static System.Net.IPAddress addr = System.Net.IPAddress.Parse(ipAddress);
        static System.Net.IPEndPoint server = new System.Net.IPEndPoint(addr, 8090);

        static void Main()
        {


            try
            {
                var trader = new SmartTrader(login, password, server);
                var waitHandle = new AutoResetEvent(false);
                trader.Connected += () =&amp;gt;
                {
                    Console.WriteLine(&amp;quot;Подключение было произведено успешно.&amp;quot;);

                   waitHandle.Set();
                };
                Console.WriteLine(&amp;quot;Производим подключение...&amp;quot;);

                trader.Connect();
   
                waitHandle.WaitOne();


                trader.NewPortfolios += portfolios =&amp;gt;
                {
                    // необходимое условие работы в SmartCOM
                    portfolios.ForEach(trader.RegisterPortfolio);

                    if (portfolio == null)
                    {
                       
                        portfolio = portfolios.FirstOrDefault(p =&amp;gt; p.Name == account);

                        if (portfolio != null)
                        {
                            Console.WriteLine(&amp;quot;Портфель {0} появился.&amp;quot;, account);

                            if (secObject != null)
                                waitHandle.Set();
                        }
                    }
                };

               
                trader.NewSecurities += securities =&amp;gt;
                        {
                            if (secObject == null)
                            {
                                
                                secObject = securities.FirstOrDefault(sec =&amp;gt; sec.Code == secCode &amp;amp;&amp;amp; sec.Type == SecurityTypes.Equity);

                                if (secObject != null)
                                {
                                    Console.WriteLine(&amp;quot;Инструмент RIH2 появился.&amp;quot;);

                                    if (portfolio != null)
                                        waitHandle.Set();
                                }
                            }
                        };
                Console.WriteLine(&amp;quot;Дожидаемся появления в программе инструмента RIH и портфеля {0}...&amp;quot;.Put(account));

                // запускаем экспорт по инструментам и портфелям
                trader.StartExport();

                // дожидаемся появления портфеля и инструмента
                waitHandle.WaitOne();

                trader.SecuritiesChanged += securities =&amp;gt;
                {
                    // если инструмент хоть раз изменился (по нему пришли актуальные данные)
                    if (securities.Contains(secObject))
                        waitHandle.Set();
                };

                Console.WriteLine(&amp;quot;Дожидаемся обновления данных по инструменту RIH2...&amp;quot;);


                trader.RegisterSecurity(secObject);
                waitHandle.WaitOne();




          }
            catch (Exception ex)
            {
                Console.WriteLine(ex);
                
            }
            Console.ReadKey();
        }
    
    }
}
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/2225/</id>
    <title type="text">сделки источник Quik</title>
    <published>2011-12-14T08:26:54Z</published>
    <updated>2011-12-14T08:26:54Z</updated>
    <author>
      <name>ET</name>
      <uri>https://stocksharp.ru/users/5992/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="Hydra" />
    <content type="html">Подскажите как осуществить выгрузку данных из Quik по инструментам из списка &amp;quot;мировые индексы&amp;quot;, стаканы качаются без проблем по торговым инструментам, а у данных инструментов нет стаканов и сделок (только изменяется цена последней сделки), возможно ли осуществить закачку по этим инструментам? если да, то можно описать процесс настройки гидры! большое спасибо!</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/2224/</id>
    <title type="text">&amp;quot;подхват&amp;quot; имеющейся позиции</title>
    <published>2011-12-14T08:15:24Z</published>
    <updated>2011-12-14T08:15:24Z</updated>
    <author>
      <name>romanick</name>
      <uri>https://stocksharp.ru/users/28047/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="StockSharp" />
    <content type="html">Неожиданно столкнулся с проблемой что PositionManager.Position возвращает 0 при старте стратегии (в OnStarting и в OnProcess), хотя позиция перед стартом не нулевая. Что нужно сделать чтобы робот &amp;quot;подхватывал&amp;quot; уже имеющуюся позицию при запуске? Проверял на SampleSmartSMA - робот не видит имеющуюся позицию.&lt;br /&gt;SmartCOM 2.2, S# 4.0.8</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/2223/</id>
    <title type="text">MarketTime в версии StockSharp_4.0.8</title>
    <published>2011-12-14T07:17:11Z</published>
    <updated>2011-12-14T07:17:11Z</updated>
    <author>
      <name>guest</name>
      <uri>https://stocksharp.ru/users/28427/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="StockSharp" />
    <content type="html">Добрый день!&lt;br /&gt;Trader.MarketTime возвращает локальное время &lt;br /&gt;попытка вызова SyncMarketTime(Exchange.Rts) к успеху не привела.&lt;br /&gt;Расхождение времени в терминале QUIK и  Trader.MarketTime осталось.&lt;br /&gt;Как получить биржевое время?</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/2222/</id>
    <title type="text">Статистика по внутридневным экстремумам</title>
    <published>2011-12-13T21:17:01Z</published>
    <updated>2011-12-13T21:17:01Z</updated>
    <author>
      <name>Church</name>
      <uri>https://stocksharp.ru/users/459/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="клуб алготрейдеров" />
    <content type="html">Рапределение внутридневных экстремумов на РИ по времени. Каждая точка - день, у которого максимум был в его Y координату, а минимум - в X координату. Интенсивность цвета означает вероятность такого дня.&lt;br /&gt;&lt;br /&gt;Обратите внимание, что это не карта частот, а скорее карта плотности вероятности (к карте частот был применен гауссовский фильтр).&lt;br /&gt;&lt;br /&gt;В обмен хочу идеи по использованию этой инфы в стратегиях.</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/2221/</id>
    <title type="text">Стратегия выхода из сделок.</title>
    <published>2011-12-13T15:48:25Z</published>
    <updated>2011-12-13T15:48:25Z</updated>
    <author>
      <name>Zein</name>
      <uri>https://stocksharp.ru/users/28200/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="клуб алготрейдеров" />
    <content type="html">Предлагаю обсудить идею создания стратегии для выхода из сделки, которая следует принципу &amp;quot;дай прибыли расти&amp;quot;.&lt;br /&gt;&lt;br /&gt;  Я не рассматриваю выходы по стопу, тут все вроде-бы понятно - стоп есть стоп.(хотя если есть идеи на эту тему - высказывайтесь тут). Интересно было бы обсудить те выходы, которые дает система, когда мы в плюсе.&lt;br /&gt;&lt;br /&gt;  Тут есть несколько вариантов: 1 - закрываемся по тейк-профиту, 2 - через определенное время, 3 - по сигналу торговой системы. НО! В каждом из этих случаев может быть ситуация, когда после закрытия цена идет в нашу сторону еще некоторое время. Как научится брать это движение?&lt;br /&gt;&lt;br /&gt;  После того, как наша основная стратегия дает сигнал на закрытие, мы делаем дополнительную проверку поведения цены - если хоть тик против нас - закрываемся (ну этот параметр тоже можно варьировать). Далее, если цена прошла еще какое-то расстояние - передвигаем стоп чуть вверх, но так, чтобы уже можно было пересидеть небольшой откат.&lt;br /&gt; &lt;br /&gt;  Приведу пример: Система дает сигнал на выход, после этого цена двигается в нашем направлении 10 пунктов. Стоп в это время стоит на цене выхода по стратегии (т.е. если цена дернулась назад - сразу выходим но уже с небольшим бонусом). Далее. Цена идет еще 5 пунктов, стоп ставим на цену выхода по стратегии + 10, т.е. цена уже может давать маленькие откаты до 5 пунктов. Дальше трейлим аналогично. Параметры подбираются под торгуемый инструмент.&lt;br /&gt; &lt;br /&gt;  Основная идея в том, что такая стратегия стопов потенциально только улучшит любую уже существующую стратегию торговли,поэтому есть смысл ее организовать как отдельный модуль в виде кода.&lt;br /&gt;&lt;br /&gt;  Задумка конечно требует обкатки, тестов и доработки, но основной посыл думаю понятен. Было бы интересно выслушать ваши замечания и предложения на эту тему.&lt;br /&gt;&lt;br /&gt;upd. Было бы интересно, если бы кто-нибудь прикрутил это к своей стратегии и написал о результатах.Сам пока только постигаю азы wealthlab`a и S#, поэтому своих исследований приложить не могу.</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/2220/</id>
    <title type="text">Одинаковые ID Транзакции у заявок в QUIK</title>
    <published>2011-12-13T11:06:30Z</published>
    <updated>2011-12-13T11:06:30Z</updated>
    <author>
      <name>MCTuTeJ|19951995</name>
      <uri>https://stocksharp.ru/users/18/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="Quik" />
    <content type="html">В таблице &amp;quot;Заявки&amp;quot; есть заявки с разными номерами, но с одинаковым ID Транзакции. При попытке выгрузки таблицы в ProcessDataError вылетает ошибка - Дублированное что-то  там в ДДЕ-пакете *номер заявки* имя параметра item. При этом заявки не обрабатываются. Такое ощущение, что идентификатором заявки (ключом) является ИД транзакции, а не номер заявки, который  по определению почти всегда уникален. Наверное это трудно назвать багом, но объясните, пожалуйста, кто-нибудь, как можно &amp;quot;выкрутиться&amp;quot; в подобной ситуации. Я вижу два варианта -&lt;br /&gt;1) Делать кастомную таблицу без столбца &amp;quot;Id транзакции&amp;quot; и выгружать ее.&lt;br /&gt;2) Подменять одинаковые номера разлицными &amp;quot;фиктивными&amp;quot; в PreProcessDDeData.&lt;br /&gt;&lt;br /&gt;Если можно еще что-нибудь придумать - буду очень признателен за помощь.&lt;br /&gt;&lt;br /&gt;Версия s# - 4.0.3.</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/2219/</id>
    <title type="text">Вопрос!!!</title>
    <published>2011-12-13T10:47:08Z</published>
    <updated>2011-12-13T10:47:08Z</updated>
    <author>
      <name>2101</name>
      <uri>https://stocksharp.ru/users/198/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="клуб алготрейдеров" />
    <content type="html">Добрый день уважаемые формчане &lt;br /&gt;Подскажите пожалуйста &lt;br /&gt;Можно ли использовать торгового робота написанного на C# на нет буке ???[confused] &lt;br /&gt;Можно ли использовать мобильный интеренет при этом ,типа скайлинка или ёоты или МТС или Мегафон или Билайн [confused] &lt;br /&gt;&lt;br /&gt;Вообще будет ли работать такой переносной вариант торгового робота [blush] &lt;br /&gt;</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/2218/</id>
    <title type="text">BuyAtMarket и SellAtMarket</title>
    <published>2011-12-13T09:30:28Z</published>
    <updated>2011-12-13T09:30:28Z</updated>
    <author>
      <name>freelancer</name>
      <uri>https://stocksharp.ru/users/28572/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="StockSharp" />
    <content type="html">Написал this.SellAtMarket(0m) и вылетело исключение, что не определен параметр u2.&lt;br /&gt;Как правильно использовать эти методы (со своим объёмом тоже) ?</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/2217/</id>
    <title type="text">Арбитраж и все все все</title>
    <published>2011-12-12T07:48:06Z</published>
    <updated>2011-12-12T07:48:06Z</updated>
    <author>
      <name>gambler_max</name>
      <uri>https://stocksharp.ru/users/129/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="клуб алготрейдеров" />
    <content type="html">Бодрого дня, уважаемые коллеги и примкнувшие к ним товарищи. Ветка это есть продолжения краткой дискуссии про тематические парки и куртизанок, что была в скайпе.&lt;br /&gt;Предлагаю обсудить тему арбитража. Но прежде чем начать, хотел бы сразу попросить &amp;#171;выступить&amp;#187; всех у кого есть, что сказать по делу и они готовы это сказать. Утверждения типа &amp;#171;на этом можно хорошо зарабатывать имея и пару лямов&amp;#187; и прочие утверждения в стиле Капитана Очевидности лучше пока оставить для скайпа. Если готовы обсуждать открыто (благо форум закрытый – значит можно палить граали), то давайте попробуем.&lt;br /&gt;Так же хочу отметить, что я в этой теме пока как свин в апельсинах. Это связано в первую очередь с возможно не самыми глубокими познаниями в статистике и рядом других причин.&lt;br /&gt;Но для затравки попробую выступить первым.&lt;br /&gt;Хочу сразу поставить все точки над &amp;#171;и&amp;#187; в вопросах терминологии. Есть много разных обзывательств, касательно арбитража. Я предлагаю утвердить слудующее:&lt;br /&gt;- математический арбитраж – арбитраж при котором вероятность благоприятного исхода (гарантированного схождения)близка к  100% - это например игрища со спрэдами между ближним и дальним фьючом. Конечно говорить о 100% удаче не совсем корректно – черных леблядей никто не отменял.&lt;br /&gt;- риск-арбитраж – арбитраж между акциями компаний, затеявших сделку по слиянию (поглощению). В рамках данной темы предлагаю это не трогать ибо на нашем рынке это не актуально, а для буржуйского имеет смысл при наличии больших денег, кучи времени и хорошего понимания фундаментальных факторов.&lt;br /&gt;- межрыночный арбитраж – купили на ММВБ, продали на LSE. Трогать не будем ибо это дорого.&lt;br /&gt;-статистический арбитраж (парный трейдинг) – это именно то, что нам нужно. Назовем это арбитражем при котором ожидается, что спрэд (у нас вроде как это раздвижкой зовется) вернется к своему среднему значению в случае отклонения. При этом &amp;#171;среднее&amp;#187; может быть как и реально mean-reversing, так и 0-reversing (написал с ошибками наверно). Что брать за среднюю обсудим чуть позднее.&lt;br /&gt;&amp;#171;Участниками&amp;#187; парной торговли могут быть – акция+акция (для РФ работает), акция + индустриальный ETF (для РФ не работает), фьючерс-фьючерс (корзина фьючерсов – на РФ возможна, хотя и не всегда приятна), фьючерс-акция (возможна в РФ), ряд других вещей, которые на скудном рынке РФ никак не реализуются.&lt;br /&gt;Нас будет интересовать только два варианта: акция-акция (в том числе и американский рынок) и фьюч-фьючи (в том числе и американский рынок)&lt;br /&gt;Теперь посмотрим из каких &amp;#171;частей&amp;#187; складывается правильная &amp;#171;парная&amp;#187; торговля:&lt;br /&gt;- определение торгуемых инструментов&lt;br /&gt;- определение веса каждого инструмента в паре&lt;br /&gt;- определение точки (причины) входа в позицию&lt;br /&gt;- определение причины выхода из позиции&lt;br /&gt;-ведение позиции в течении сделки &lt;br /&gt;&lt;br /&gt;Предлагаю обсудить по очереди каждый из пунктов ибо в подходах существует много разных мнений.&lt;br /&gt;&lt;br /&gt;1.Определение торгуемых инструментов.&lt;br /&gt;Для буржуев пары подбираются с учетом следующих факторов: акции должны находиться в одном секторе\индустрии, их корреляция должна быть как можно ближе к 1(-1). Первое требование обусловлено тем, что акции одного сектора будут одинаков реагировать на рыночные риски, имеют схожие операционные модели, ну и &amp;#171;слабые&amp;#187; всегда будут стремиться за &amp;#171;сильными&amp;#187;. При работе с фьючерсами обычно также ищут фундаментальные взаимосвязи (например Нефть разных марок, индексы разных стран и т.д.) Что касается корреляции – тот тут я не встретил в литературе единого мнения – как правило указывается, что акции должны коррелировать и значения в 0.5 типа как уже достаточно. &amp;#171;Пацаны&amp;#187; на буржуйских форумах все-таки склоняются к тому, что это значение не должно быть ниже 0.7-0.8. Для нашего рынка это не актуально  ибо акции которыми можно торговать у нас имеют 0.9 и называются Газпромосбербанк.&lt;br /&gt;Некоторые продвинутые участники упоминают еще и необходимость коинтеграции, но мой скудный статистических багаж подсказывает, что добиться коинтеграции у высоко коррелированных инструментов гораздо проще. Но тут я могу быть не прав.&lt;br /&gt;&lt;br /&gt;2.Определение веса инструмента. Тут опять же есть несколько подходов. Самый простой и самый неправильный – поделить один инструмент на другой и полученное значение будет множителем для определения веса инструмента в паре. Более продвинутые предлагают использовать формулу (цена А/бета А)/(цена Б/ бета Б). Даная фишка применима исключительно для акций, торгуемых в штатах (и условно применима для наших). Такой формулой мы учитываем волатильность инструментов относительно &amp;#171;эталона&amp;#187; которым в данном случае выступает индекс. Не могу сказать какие тут минусы ибо &amp;#171;глубоко&amp;#187; протестить это дело трудно так как самому бету считать заманаешься, а исторических данных найти в свободном  доступе трудно.&lt;br /&gt;Еще одним способом является простое ATR A/ATR B. Работает для акций и фьючей но не совсем подходит для торговле фьюч-корзина фьючей (использует товарищь Кауфман). &lt;br /&gt;Попадались и иные способы (например с учетом исторической волатильности), но так или иначе все они учитывают волатильность инструментов и гораздо точнее работают нежели простая &amp;#171;дележка&amp;#187; инструментов.&lt;br /&gt;Для корзинки фьючей наибольший интерес предлагает метод предложенный (но не до конца раскрытый) Тарасом в его публикациях на русском трейдере.&lt;br /&gt;&lt;br /&gt;3.Определение точки входа. Тут так же есть туча вариантов. Одни строят график спрэда и при отклонении на величину более 1.5-2-2.5(кто как) стандартного отклонения за некий промежуток времени открывают позу в надежде на возврат цены к своему среднему (стоит отметить что ст-откл. также можно посчитать по разному), кто-то в качестве фильтра еще считает Density curve. Однако у данного метода есть один неприятный момент – спрэд  может не возвращаться к своему среднему значению достаточно продолжительное время. Нам же интересен короткий горизонт – не далече 3дней (ну или интрадейные колебания).&lt;br /&gt;Другие товарищи считают спрэд не по цене, а через формулу стохастика (без усреднения) и спрэдом для них являются разница двух стохастиков (это предлагает делать Кауфман) или же стохастик построенный по этой разнице взятый за несколько дней (автор он же). Тут у нас решается проблема возврата к &amp;#171;0&amp;#187;. &lt;br /&gt;Есть и более изощренный вариант &amp;#171;от Тараса&amp;#187;, где цена нормируется с целью избавления от &amp;#171;трендовой&amp;#187; составляющей и предполагается торговля при отходе от среднего.&lt;br /&gt;&lt;br /&gt;4.Выход из позиции и управление позицией. Выход прямо зависит от причины входа – это или возвращение к &amp;#171;0&amp;#187; или к средней. Так же используется стоп при достижение порогового значения риска или стоп по времени удержания позы.&lt;br /&gt;Управление позой предполагает добавление к позиции с целью смещения точки безубыточности в случае неверного движения. Однако этот метод весьма требователен к депозиту и устойчивости задницы трейдера.&lt;br /&gt;&lt;br /&gt;Ну вот собственно у меня все. Предлагаю высказаться по пунктам у кого есть что сказать. &lt;br /&gt;</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/2216/</id>
    <title type="text">Сериализация SettingsStorage</title>
    <published>2011-12-11T15:39:02Z</published>
    <updated>2011-12-11T15:39:02Z</updated>
    <author>
      <name>destr</name>
      <uri>https://stocksharp.ru/users/6306/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="StockSharp" />
    <content type="html">Хотел воспользоваться, т.к. всё таки есть методы Save() и Load() у стратегий, но что-то не удалось сохранить. &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;
SettingsStorage storage  = new SettingsStorage();
storage.SetValue&amp;lt;int&amp;gt;(&amp;quot;testvalue&amp;quot;, 1);

XmlSerializer serializer = new XmlSerializer(typeof(SettingsStorage));
TextWriter writer = new StreamWriter(&amp;quot;settingsstorage.xml&amp;quot;);
serializer.Serialize(writer, storage);
writer.Close();
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;На выходе xml только с заголовком&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;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;
&amp;lt;SettingsStorage xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot; xmlns:xsd=&amp;quot;http://www.w3.org/2001/XMLSchema&amp;quot; /&amp;gt;&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;
SettingsStorage storage  = new SettingsStorage();
storage.SetValue&amp;lt;int&amp;gt;(&amp;quot;testvalue&amp;quot;, 1);
                
FileStream stream = new FileStream(&amp;quot;serialize.dat&amp;quot;, FileMode.Create);
BinaryFormatter formatter = new BinaryFormatter();
formatter.Serialize(stream, storage);
stream.Close();
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;Тут кидает исключение &lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;Цитата:&lt;/span&gt;&lt;div class="innerquote"&gt;Type &amp;#39;SettingsStorage&amp;#39; is not marked as serializable.&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Поэтому возник вопрос, а как всё таки сохранить? Желательно в читабельном виде, чтобы можно было править в редакторе.&lt;br /&gt;Версия S# 4.0.8</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/2215/</id>
    <title type="text">SampleEmulationTesting версия 4.0.8</title>
    <published>2011-12-10T20:29:23Z</published>
    <updated>2011-12-10T20:29:23Z</updated>
    <author>
      <name>russ</name>
      <uri>https://stocksharp.ru/users/567/</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;

// создаем заявку
var order = this.CreateOrder(direction, base.Security.GetMarketPrice(direction), base.Volume);&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;a href='http://s017.radikal.ru/i431/1112/e0/bae0c7103c33.png' class='lightview' data-lightview-options="skin: 'mac'" data-lightview-group='mixed'&gt;&lt;img src="http://s017.radikal.ru/i431/1112/e0/bae0c7103c33.png" style='max-width: 600px;' alt=""/&gt;&lt;/a&gt;</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/2214/</id>
    <title type="text">RandomWalkTradeGenerator не хранятся сделки</title>
    <published>2011-12-10T19:45:43Z</published>
    <updated>2011-12-10T19:45:43Z</updated>
    <author>
      <name>russ</name>
      <uri>https://stocksharp.ru/users/567/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="тестирование" />
    <content type="html">Версия 4.0.8&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 security = new Security
                    {
                        Id = &amp;quot;RIU9@RTS&amp;quot;,
                        Code = &amp;quot;RIU9&amp;quot;,
                        Name = &amp;quot;RTS-9.09&amp;quot;,
                        MinStepSize = 5,
                        MinStepPrice = 2,
                        Decimals = 0,
                        Exchange = Exchange.Test,
                    };

                    _trader = new EmulationTrader(
                            new[] { security },
                            new[] { portfolio })
                        {
                            MarketTimeChangedInterval = timeFrame
                        };

                        _trader.TradeGenerators[security] = new RandomWalkTradeGenerator(security, 155000);
                        _trader.DepthGenerators[security] = new TrendMarketDepthGenerator(security);&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;
Int32 count = base.Trader.Trades.Count();&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt; всегда = 0.&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;
Trade tr = base.Security.LastTrade;&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:csharp"&gt;
protected override void OnStarting()
        {
            this
                .When(base.Security.SecurityNewTrades())
                .Do(CalcVolume);

            base.OnStarting();
        }&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;В чем может быть проблема?</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/2213/</id>
    <title type="text">Ошибка P2ERR_MQ_ORIGMSG_NOT_SEND</title>
    <published>2011-12-09T11:35:03Z</published>
    <updated>2011-12-09T11:35:03Z</updated>
    <author>
      <name>frontman</name>
      <uri>https://stocksharp.ru/users/28487/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="Plaza 2" />
    <content type="html">Ребят ни кто не знает что это?&lt;br /&gt;На одной машине работает, на остальных нет... В чем разница не пойму...</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/2212/</id>
    <title type="text">торговля на нескольких квиках</title>
    <published>2011-12-09T09:55:15Z</published>
    <updated>2011-12-09T09:55:15Z</updated>
    <author>
      <name>tmt</name>
      <uri>https://stocksharp.ru/users/6032/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="Quik" />
    <content type="html">Попрошу помощи, тк уже 2ой день бьюсь... Это я пример переделывал и вот что получилось, но скрипт не работает, думаю где то ошибка с подключением (тк он выводит подключение.. и все.. выходит)&lt;br /&gt;&lt;br /&gt;мне кажется все верно, наверняка чтот с терминалами у меня, тк на 2ом счету даже вручную не открывает по RIZ1 &lt;br /&gt;&lt;br /&gt;&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;Цитата:&lt;/span&gt;&lt;div class="innerquote"&gt;namespace SampleConsole&lt;br /&gt;{&lt;br /&gt;    using System;&lt;br /&gt;    using System.Linq;&lt;br /&gt;    using System.Threading;&lt;br /&gt;&lt;br /&gt;    using Ecng.Common;&lt;br /&gt;&lt;br /&gt;    using StockSharp.BusinessEntities;&lt;br /&gt;    using StockSharp.Quik;&lt;br /&gt;    using StockSharp.Algo;&lt;br /&gt;&lt;br /&gt;    class Program&lt;br /&gt;    {&lt;br /&gt;        private static Security _instrument1;&lt;br /&gt;        private static Security _instrument2;&lt;br /&gt;        private static Portfolio _portfolio1;&lt;br /&gt;        private static Portfolio _portfolio2;&lt;br /&gt;        private static MarketDepth _depth1;&lt;br /&gt;        private static MarketDepth _depth2;&lt;br /&gt;&lt;br /&gt;        static void Main()&lt;br /&gt;        {&lt;br /&gt;            try&lt;br /&gt;            {&lt;br /&gt;                // для теста выбираем бумагу Лукойл&lt;br /&gt;                const string secCode = &amp;quot;RIZ1&amp;quot;;&lt;br /&gt;                var path1 = @&amp;quot;D:\FinamJunior\info.exe&amp;quot;;&lt;br /&gt;                var account1 = &amp;quot;SPBFUT00O88&amp;quot;;&lt;br /&gt;                var path2 = @&amp;quot;D:\FinamJunior1\info.exe&amp;quot;;&lt;br /&gt;                var account2 = &amp;quot;SPBFUT00P53&amp;quot;;&lt;br /&gt;&lt;br /&gt;                using (var waitHandle = new AutoResetEvent(false))&lt;br /&gt;                {&lt;br /&gt;                    // создаем шлюз к Quik-у&lt;br /&gt;                    using (var trader1 = new QuikTrader { Path = path1, DdeServer = &amp;quot;quik1&amp;quot; })&lt;br /&gt;                    using (var trader2 = new QuikTrader { Path = path2, DdeServer = &amp;quot;quik2&amp;quot;, DllName = @&amp;quot;TRANS2QUIK_2.dll&amp;quot; })&lt;br /&gt;                    {&lt;br /&gt;                        var portfoliosWait = new ManualResetEvent(false);&lt;br /&gt;                        var connect1 = 0;&lt;br /&gt;                        var connect2 = 0;&lt;br /&gt;                        trader1.Connected += () =&amp;gt;&lt;br /&gt;                        {&lt;br /&gt;                            Console.WriteLine(&amp;quot;Подключение 1 было произведено успешно.&amp;quot;);&lt;br /&gt;                            connect1 = 1;&lt;br /&gt;                            // извещаем об успешном соединени&lt;br /&gt;                            if(connect1==1 &amp;amp;&amp;amp; connect2==1)&lt;br /&gt;                                portfoliosWait.Set();&lt;br /&gt;                        };&lt;br /&gt;                        trader2.Connected += () =&amp;gt;&lt;br /&gt;                        {&lt;br /&gt;                            Console.WriteLine(&amp;quot;Подключение 2 было произведено успешно.&amp;quot;);&lt;br /&gt;                            connect1 = 2;&lt;br /&gt;                            // извещаем об успешном соединени&lt;br /&gt;                            if (connect1 == 1 &amp;amp;&amp;amp; connect2 == 1)&lt;br /&gt;                                portfoliosWait.Set();&lt;br /&gt;                        };&lt;br /&gt;                        Console.WriteLine(&amp;quot;Производим подключение...&amp;quot;);&lt;br /&gt;                        &lt;br /&gt;                        trader1.Connect();&lt;br /&gt;                        trader2.Connect();&lt;br /&gt;                        &lt;br /&gt;&lt;br /&gt;                        // дожидаемся события об успешном соединении&lt;br /&gt;                       //waitHandle.WaitOne();&lt;br /&gt;&lt;br /&gt;                        Console.WriteLine(&amp;quot;Дожидаемся появления инструментов и портфелей...&amp;quot;);&lt;br /&gt;                        portfoliosWait.WaitOne();&lt;br /&gt;&lt;br /&gt;                        trader1.NewPortfolios += portfolios =&amp;gt;&lt;br /&gt;                        {&lt;br /&gt;                            if (_portfolio1 == null)&lt;br /&gt;                            {&lt;br /&gt;                                // находим Лукойл и присваиваем ее переменной lkoh&lt;br /&gt;                                _portfolio1 = portfolios.FirstOrDefault(p =&amp;gt; p.Name == account1);&lt;br /&gt;&lt;br /&gt;                                if (_portfolio1 != null)&lt;br /&gt;                                {&lt;br /&gt;                                    Console.WriteLine(&amp;quot;Портфель {0} появился.&amp;quot;, account1);&lt;br /&gt;&lt;br /&gt;                                    // если инструмент и стакан уже появились,&lt;br /&gt;                                    // то извещаем об этом основной поток для выставления заявки&lt;br /&gt;                                    if (_instrument1 != null &amp;amp;&amp;amp; _depth1 != null &amp;amp;&amp;amp; _instrument2 != null &amp;amp;&amp;amp; _depth2 != null &amp;amp;&amp;amp; _portfolio2 != null)&lt;br /&gt;                                        waitHandle.Set();&lt;br /&gt;                                }&lt;br /&gt;                            }&lt;br /&gt;                        };&lt;br /&gt;&lt;br /&gt;                        trader2.NewPortfolios += portfolios =&amp;gt;&lt;br /&gt;                        {&lt;br /&gt;                            if (_portfolio2 == null)&lt;br /&gt;                            {&lt;br /&gt;                                // находим Лукойл и присваиваем ее переменной lkoh&lt;br /&gt;                                _portfolio2 = portfolios.FirstOrDefault(p =&amp;gt; p.Name == account2);&lt;br /&gt;&lt;br /&gt;                                if (_portfolio2 != null)&lt;br /&gt;                                {&lt;br /&gt;                                    Console.WriteLine(&amp;quot;Портфель {0} появился.&amp;quot;, account2);&lt;br /&gt;&lt;br /&gt;                                    // если инструмент и стакан уже появились,&lt;br /&gt;                                    // то извещаем об этом основной поток для выставления заявки&lt;br /&gt;                                    if (_instrument1 != null &amp;amp;&amp;amp; _depth1 != null &amp;amp;&amp;amp; _instrument2 != null &amp;amp;&amp;amp; _depth2 != null &amp;amp;&amp;amp; _portfolio1 != null)&lt;br /&gt;                                        waitHandle.Set();&lt;br /&gt;                                }&lt;br /&gt;                            }&lt;br /&gt;                        };&lt;br /&gt;&lt;br /&gt;                        // подписываемся на событие появление инструментов&lt;br /&gt;                        trader1.NewSecurities += securities =&amp;gt;&lt;br /&gt;                        {&lt;br /&gt;                            if (_instrument1 == null)&lt;br /&gt;                            {&lt;br /&gt;                                // находим Лукойл и присваиваем ее переменной lkoh&lt;br /&gt;                                _instrument1 = securities.FirstOrDefault(sec =&amp;gt; sec.Code == secCode);&lt;br /&gt;&lt;br /&gt;                                if (_instrument1 != null)&lt;br /&gt;                                {&lt;br /&gt;                                    Console.WriteLine(&amp;quot;Инструмент Лукойл появился.&amp;quot;);&lt;br /&gt;&lt;br /&gt;                                    // запускаем экспорт стакана&lt;br /&gt;                                    trader1.RegisterQuotes(_instrument1);&lt;br /&gt;&lt;br /&gt;                                    if (_portfolio1 != null &amp;amp;&amp;amp; _depth1 != null &amp;amp;&amp;amp; _portfolio2 != null &amp;amp;&amp;amp; _depth2 != null &amp;amp;&amp;amp; _instrument2 != null)&lt;br /&gt;                                        waitHandle.Set();&lt;br /&gt;                                }&lt;br /&gt;                            }&lt;br /&gt;                        };&lt;br /&gt;&lt;br /&gt;                        trader2.NewSecurities += securities =&amp;gt;&lt;br /&gt;                        {&lt;br /&gt;                            if (_instrument2 == null)&lt;br /&gt;                            {&lt;br /&gt;                                // находим Лукойл и присваиваем ее переменной lkoh&lt;br /&gt;                                _instrument2 = securities.FirstOrDefault(sec =&amp;gt; sec.Code == secCode);&lt;br /&gt;&lt;br /&gt;                                if (_instrument2 != null)&lt;br /&gt;                                {&lt;br /&gt;                                    Console.WriteLine(&amp;quot;Инструмент Лукойл появился.&amp;quot;);&lt;br /&gt;&lt;br /&gt;                                    // запускаем экспорт стакана&lt;br /&gt;                                    trader2.RegisterQuotes(_instrument2);&lt;br /&gt;&lt;br /&gt;                                    if (_portfolio1 != null &amp;amp;&amp;amp; _depth1 != null &amp;amp;&amp;amp; _portfolio2 != null &amp;amp;&amp;amp; _depth2 != null &amp;amp;&amp;amp; _instrument1 != null)&lt;br /&gt;                                        waitHandle.Set();&lt;br /&gt;                                }&lt;br /&gt;                            }&lt;br /&gt;                        };&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;                        // подписываемся на событие обновления стакана&lt;br /&gt;                        trader1.QuotesChanged += depths =&amp;gt;&lt;br /&gt;                        {&lt;br /&gt;                            if (_depth1 == null &amp;amp;&amp;amp; _instrument1 != null)&lt;br /&gt;                            {&lt;br /&gt;                                _depth1 = depths.FirstOrDefault(d =&amp;gt; d.Security == _instrument1);&lt;br /&gt;&lt;br /&gt;                                if (_depth1 != null)&lt;br /&gt;                                {&lt;br /&gt;                                    Console.WriteLine(&amp;quot;Стакан Лукойла появился.&amp;quot;);&lt;br /&gt;&lt;br /&gt;                                    // если портфель и инструмент уже появился, то извещаем об этом основной поток для выставления заявки&lt;br /&gt;                                    if (_portfolio1 != null &amp;amp;&amp;amp; _instrument1 != null &amp;amp;&amp;amp; _portfolio2 != null &amp;amp;&amp;amp; _instrument2 != null &amp;amp;&amp;amp; _depth2 != null)&lt;br /&gt;                                        waitHandle.Set();&lt;br /&gt;                                }&lt;br /&gt;                            }&lt;br /&gt;                        };&lt;br /&gt;&lt;br /&gt;                        trader2.QuotesChanged += depths =&amp;gt;&lt;br /&gt;                        {&lt;br /&gt;                            if (_depth2 == null &amp;amp;&amp;amp; _instrument2 != null)&lt;br /&gt;                            {&lt;br /&gt;                                _depth2 = depths.FirstOrDefault(d =&amp;gt; d.Security == _instrument2);&lt;br /&gt;&lt;br /&gt;                                if (_depth2 != null)&lt;br /&gt;                                {&lt;br /&gt;                                    Console.WriteLine(&amp;quot;Стакан Лукойла появился.&amp;quot;);&lt;br /&gt;&lt;br /&gt;                                    // если портфель и инструмент уже появился, то извещаем об этом основной поток для выставления заявки&lt;br /&gt;                                    if (_portfolio1 != null &amp;amp;&amp;amp; _instrument1 != null &amp;amp;&amp;amp; _portfolio2 != null &amp;amp;&amp;amp; _instrument2 != null &amp;amp;&amp;amp; _depth1 != null)&lt;br /&gt;                                        waitHandle.Set();&lt;br /&gt;                                }&lt;br /&gt;                            }&lt;br /&gt;                        };&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;                        trader1.StartExport(trader1.SecuritiesTable, trader1.MyTradesTable, trader1.EquityPositionsTable,&lt;br /&gt;                                           trader1.EquityPortfoliosTable, trader1.OrdersTable);&lt;br /&gt;                        trader2.StartExport(trader2.SecuritiesTable, trader2.MyTradesTable, trader2.EquityPositionsTable,&lt;br /&gt;                                           trader2.EquityPortfoliosTable, trader2.OrdersTable);&lt;br /&gt;                        // дожидаемся появления портфеля и инструмента&lt;br /&gt;                        waitHandle.WaitOne();&lt;br /&gt;&lt;br /&gt;                        // 0.1% от изменения цены&lt;br /&gt;                        const decimal delta = 0.001m;&lt;br /&gt;&lt;br /&gt;                        // запоминаем первоначальное значение середины спреда&lt;br /&gt;                        var firstMid = _instrument1.BestPair.SpreadPrice / 2;&lt;br /&gt;                        if (_instrument1.BestBid == null)&lt;br /&gt;                            throw new Exception(&amp;quot;Нет лучшего бида для котировки.&amp;quot;);&lt;br /&gt;&lt;br /&gt;                        Console.WriteLine(&amp;quot;Первоначальное значение середины спреда {0:0.##}&amp;quot;, _instrument1.BestBid.Price + firstMid);&lt;br /&gt;&lt;br /&gt;                        while (true)&lt;br /&gt;                        {&lt;br /&gt;                            var mid = _instrument1.BestPair.SpreadPrice / 2;&lt;br /&gt;&lt;br /&gt;                            // если спред вышел за пределы нашего диапазона&lt;br /&gt;                            if (&lt;br /&gt;                                    ((firstMid + firstMid * delta) &amp;lt;= mid) ||&lt;br /&gt;                                    ((firstMid - firstMid * delta) &amp;gt;= mid)&lt;br /&gt;                                )&lt;br /&gt;                            {&lt;br /&gt;                                var order1 = new Order&lt;br /&gt;                                {&lt;br /&gt;                                    Portfolio = _portfolio1,&lt;br /&gt;                                    Price = _instrument1.ShrinkPrice(_instrument1.BestBid.Price + mid),&lt;br /&gt;                                    Security = _instrument1,&lt;br /&gt;                                    Volume = 1,&lt;br /&gt;                                    Direction = OrderDirections.Buy,&lt;br /&gt;                                };&lt;br /&gt;                                trader1.RegisterOrder(order1);&lt;br /&gt;                                Console.WriteLine(&amp;quot;Заявка {0} зарегистрирована.&amp;quot;, order1.Id);&lt;br /&gt;&lt;br /&gt;                                var order2 = new Order&lt;br /&gt;                                {&lt;br /&gt;                                    Portfolio = _portfolio2,&lt;br /&gt;                                    Price = _instrument2.ShrinkPrice(_instrument2.BestAsk.Price + mid),&lt;br /&gt;                                    Security = _instrument2,&lt;br /&gt;                                    Volume = 1,&lt;br /&gt;                                    Direction = OrderDirections.Sell,&lt;br /&gt;                                };&lt;br /&gt;                                trader2.RegisterOrder(order2);&lt;br /&gt;                                Console.WriteLine(&amp;quot;Заявка {0} зарегистрирована.&amp;quot;, order2.Id);&lt;br /&gt;                                break;&lt;br /&gt;                            }&lt;br /&gt;                            else&lt;br /&gt;                                //Console.WriteLine(&amp;quot;Текущее значение середины спреда {0:0.##}&amp;quot;, _instrument.BestBid.Price + mid);&lt;br /&gt;&lt;br /&gt;                            // ждем 1 секунду&lt;br /&gt;                            Thread.Sleep(1000);&lt;br /&gt;                        }&lt;br /&gt;&lt;br /&gt;                        // останавливаем экспорт по DDE&lt;br /&gt;                        trader2.StopExport(trader2.SecuritiesTable, trader2.MyTradesTable, trader2.EquityPositionsTable,&lt;br /&gt;                                           trader2.EquityPortfoliosTable, trader2.OrdersTable);&lt;br /&gt;                        trader1.StopExport(trader1.SecuritiesTable, trader1.MyTradesTable, trader1.EquityPositionsTable,&lt;br /&gt;                                           trader1.EquityPortfoliosTable, trader1.OrdersTable);&lt;br /&gt;                    }&lt;br /&gt;                }&lt;br /&gt;            }&lt;br /&gt;            catch (Exception ex)&lt;br /&gt;            {&lt;br /&gt;                Console.WriteLine(ex);&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;}&lt;/div&gt;&lt;/div&gt;</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/2211/</id>
    <title type="text">CPU и версия S#</title>
    <published>2011-12-09T07:51:51Z</published>
    <updated>2011-12-09T07:51:51Z</updated>
    <author>
      <name>dart</name>
      <uri>https://stocksharp.ru/users/28358/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="Quik" />
    <content type="html">Сейчас работаю с двумя версиями S# - 4.0.2 и 4.0.7.&lt;br /&gt;Сегодня, на довольно активном рынке 4.0.2 &amp;quot;отжирает&amp;quot; 2-4% CPU в среднем, 4.0.7 побольше - 14-18% в то же самое время (одновременно запущено два квика).&lt;br /&gt;Комп 4-процессорный. У версии 4.0.5 картина такая же как и 4.0.7.&lt;br /&gt;Код везде одинаковый.&lt;br /&gt;Никто такого не замечал?&lt;br /&gt;Получается 4.0.7 и 4.0.5 больше грузят комп нежели 4.0.2</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/2210/</id>
    <title type="text">как учесть отрицательные проскальзывания</title>
    <published>2011-12-08T14:08:56Z</published>
    <updated>2011-12-08T14:08:56Z</updated>
    <author>
      <name>Greene-nsk</name>
      <uri>https://stocksharp.ru/users/27932/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="Quik" />
    <content type="html">Вот здесь написано, что как-то можно учитывать отрицательное проскальзывание:&lt;br /&gt;&lt;a href="http://stocksharp.com/forum/1540/SlippageManager-otritsatiel-noie-proskal-zyvaniie/
" title="http://stocksharp.com/forum/1540/SlippageManager-otritsatiel-noie-proskal-zyvaniie/
"&gt;http://stocksharp.com/fo...-noie-proskal-zyvaniie/
&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Как сделать чтобы учитывалось?? &lt;br /&gt;Если оно отрицательное, то GetSlippage(order) выдает 0 всегда. И свойство Slippage тоже не учитывает отрицательные.&lt;br /&gt;&lt;br /&gt;Использую свой SlippageManager.&lt;br /&gt;&lt;br /&gt;--&lt;br /&gt;    public class MyStrategySlippageManager : StrategySlippageManager&lt;br /&gt;    {&lt;br /&gt;        public MyStrategySlippageManager(Strategy strategy)&lt;br /&gt;            : base(strategy)&lt;br /&gt;--</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/2209/</id>
    <title type="text">Ошибка создания заявки</title>
    <published>2011-12-08T12:31:01Z</published>
    <updated>2011-12-08T12:31:01Z</updated>
    <author>
      <name>vader</name>
      <uri>https://stocksharp.ru/users/28223/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="Quik" />
    <content type="html">Сегодня два раза была ситуация когда стратегия пыталась отправить заявку и у неё это не получилось.&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;

protected void Register(Order order)
		{
			if(ProcessState == ProcessStates.Started){
				try{
					base.RegisterOrder(order);
				}
				catch(Exception ex){
					WriteDiagnostics(&amp;quot;Register- &amp;quot; + ex.Message);
				}
				WriteDiagnostics(&amp;quot;Register order &amp;quot; + order.TransactionId.ToString());
			}
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;в какой-то момент робот подвис. при этом в отладчик выводятся обычны лог, где раз за разом вызывается метод, создающий заявку, но не происходит вывод сообщений о регистрации заявки(WriteDiagnostics(&amp;quot;Register order &amp;quot; + order.TransactionId.ToString());) .&lt;br /&gt;Спустя не продолжительное время робот &amp;quot;отвис&amp;quot; и выкинул сообщение - &amp;quot;Ошибка при регистрации заявки&amp;quot;. При этом в Квике оказалось три заявки, отправленные роботом.&lt;br /&gt;Версия 4.0.5</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/2208/</id>
    <title type="text">ММВБ Директ</title>
    <published>2011-12-07T14:15:17Z</published>
    <updated>2011-12-07T14:15:17Z</updated>
    <author>
      <name>Mikhail Sukhov</name>
      <uri>https://stocksharp.ru/users/201/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="SmartCom" />
    <content type="html">АйТи новую штуку &lt;a target="_blank" rel="nofollow" href="http://www.itinvest.ru/education/courses/direct-mmvb/" title="http://www.itinvest.ru/education/courses/direct-mmvb/"&gt;презентует в понедельник&lt;/a&gt;. Иду.</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/2207/</id>
    <title type="text">Несколько инструментов в стратегии</title>
    <published>2011-12-07T12:06:10Z</published>
    <updated>2011-12-07T12:06:10Z</updated>
    <author>
      <name>foRs</name>
      <uri>https://stocksharp.ru/users/28037/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="StockSharp" />
    <content type="html">Юзал поиск но не нашел как реализовать чтобы в стратегии можно было использовать несколько инструментов&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;

_strategy = new SmaStrategy()
			{
				Volume = 1,
				Portfolio = portfolio,
				Security = RIU,
				Trader = _trader
			};

&lt;/pre&gt;
&lt;/div&gt;&lt;/div&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;pre class="brush:csharp"&gt;

                    order = this.CreateOrder(direction, price + _point, base.Volume);
                    base.RegisterOrder(order);
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;В случае выставления заявок по 2-м инструментам, как лучше реализовать?</content>
  </entry>
</feed>