﻿<?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">ExpressionIndexSecurity в Shell не рассчитывается</title>
  <id>~/topic/10754/expressionindexsecurity-v-shell-ne-rasschityvaetsya/</id>
  <rights type="text">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  <updated>2026-04-28T05:19:39Z</updated>
  <logo>https://stocksharp.ru/images/logo.png</logo>
  <link href="https://stocksharp.ru/handlers/atom.ashx?category=topic&amp;id=10754" rel="self" type="application/rss+xml" />
  <entry>
    <id>https://stocksharp.ru/posts/m/47766/</id>
    <title type="text">В приложении модицифированный пример SampleHistoryTesting, который выводит индексные свечи согласно ...</title>
    <published>2019-06-12T20:34:18Z</published>
    <updated>2019-06-12T20:34:18Z</updated>
    <author>
      <name>Support</name>
      <uri>https://stocksharp.ru/users/97869/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">В приложении модицифированный пример SampleHistoryTesting, который выводит индексные свечи согласно формуле:&lt;br /&gt;&lt;br /&gt;&lt;a href='https://stocksharp.ru/file/109265/508e1b0ebae2eec2b77394615221a0d4.png' class='lightview' data-lightview-options="skin: 'mac'" data-lightview-group='mixed'&gt;&lt;img src="https://stocksharp.ru/file/109265/508e1b0ebae2eec2b77394615221a0d4.png?size=800x800" alt="508e1b0ebae2eec2b77394615221a0d4.png" title="508e1b0ebae2eec2b77394615221a0d4.png" /&gt;&lt;/a&gt;</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/47757/</id>
    <title type="text">Пожалуйста, пришлите ваш код для воспроизведения ошибки. В спойлере - код. using System; using Syste...</title>
    <published>2019-06-11T14:52:14Z</published>
    <updated>2019-06-11T14:52:14Z</updated>
    <author>
      <name>allint29</name>
      <uri>https://stocksharp.ru/users/103515/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;Support &lt;a href="https://stocksharp.ru/posts/m/47756/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;Пожалуйста, пришлите ваш код для воспроизведения ошибки.&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;В спойлере - код. &lt;div class='spoilertitle'&gt;&lt;input type='button' value='Показать спойлер' class='btn btn-primary' onclick="toggleSpoiler(this, 'spolier_ddabd088f85545718e0d0e7b2a484909');" title='Показать спойлер' /&gt;&lt;/div&gt;&lt;div class='spoilerbox' id='spolier_ddabd088f85545718e0d0e7b2a484909' style='display:none'&gt;using System;&lt;br /&gt;using System.IO;&lt;br /&gt;using System.Linq;&lt;br /&gt;using System.Windows;&lt;br /&gt;using System.Windows.Controls;&lt;br /&gt;using Ecng.Common;&lt;br /&gt;using Ecng.Configuration;&lt;br /&gt;using StockSharp.Algo.Candles;&lt;br /&gt;using StockSharp.Algo.Expressions;&lt;br /&gt;using StockSharp.Algo.Storages;&lt;br /&gt;using StockSharp.Algo.Testing;&lt;br /&gt;using StockSharp.BusinessEntities;&lt;br /&gt;using StockSharp.Logging;&lt;br /&gt;using StockSharp.Messages;&lt;br /&gt;using StockSharp.Xaml.Charting;&lt;br /&gt;&lt;br /&gt;namespace FirstConsole.XAML&lt;br /&gt;{&lt;br /&gt;    /// &amp;lt;summary&amp;gt;&lt;br /&gt;    /// Логика взаимодействия для Index.xaml&lt;br /&gt;    /// &amp;lt;/summary&amp;gt;&lt;br /&gt;    public partial class Index : UserControl&lt;br /&gt;    {&lt;br /&gt;        private HistoryEmulationConnector _connector;&lt;br /&gt;        private ChartCandleElement _candleElement;&lt;br /&gt;            private CandleManager _candleManager; // создадим менеджер свечей - из него будем получать свечи&lt;br /&gt;&lt;br /&gt;        private CandleSeries _candleSeries;&lt;br /&gt;        private Security _security;&lt;br /&gt;        private Security _indexSecurity;&lt;br /&gt;        private Portfolio _portfolio;&lt;br /&gt;        private readonly LogManager _logManager;&lt;br /&gt;&lt;br /&gt;        private readonly string _pathHistory = @&amp;quot;G:\Sharp\Hydra\CSVFromFinamReady\&amp;quot;.ToFullPath();&lt;br /&gt;        public Index()&lt;br /&gt;        {&lt;br /&gt;            InitializeComponent();&lt;br /&gt;            //здесь без разницы какую службу включать, в Shell работает только Fw40&lt;br /&gt;            //     ConfigManager.RegisterService&amp;lt;ICompilerService&amp;gt;(new RoslynCompilerService());&lt;br /&gt;            ConfigManager.RegisterService&amp;lt;ICompilerService&amp;gt;(new Fw40CompilerService(Directory.GetCurrentDirectory(), Directory.GetCurrentDirectory()));&lt;br /&gt;            _logManager = new LogManager();&lt;br /&gt;            _logManager.Listeners.Add(new FileLogListener(&amp;quot;log.txt&amp;quot;));&lt;br /&gt;            _logManager.Listeners.Add(Monitor);&lt;br /&gt;&lt;br /&gt;            CandleSettingsEditor.Settings = new CandleSeries()&lt;br /&gt;            {&lt;br /&gt;                CandleType = typeof(TimeFrameCandle),&lt;br /&gt;                Arg = TimeSpan.FromMinutes(5)&lt;br /&gt;            };&lt;br /&gt;&lt;br /&gt;            DatePickerBegin.SelectedDate = new DateTime(2019, 03, 23);&lt;br /&gt;            DatePickerEnd.SelectedDate = new DateTime(2019, 05, 10);&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        private void Start_Click(object sender, RoutedEventArgs e)&lt;br /&gt;        {&lt;br /&gt;            //здесь без разницы какую службу включать, в Shell работает только Fw40&lt;br /&gt;     //       ConfigManager.RegisterService&amp;lt;ICompilerService&amp;gt;(new Fw40CompilerService(Directory.GetCurrentDirectory(), Directory.GetCurrentDirectory()));&lt;br /&gt;       //     ConfigManager.RegisterService&amp;lt;ICompilerService&amp;gt;(new RoslynCompilerService());&lt;br /&gt;            _security = new Security&lt;br /&gt;            {&lt;br /&gt;                Id = &amp;quot;RIM9@FORTS&amp;quot;,&lt;br /&gt;                Code = &amp;quot;RTS&amp;quot;,&lt;br /&gt;                PriceStep = 10m,&lt;br /&gt;                Board = ExchangeBoard.Micex,&lt;br /&gt;            };&lt;br /&gt;            _indexSecurity = new ExpressionIndexSecurity()&lt;br /&gt;            {&lt;br /&gt;                Id = &amp;quot;IndexInstr@FORTS&amp;quot;,&lt;br /&gt;                Code = &amp;quot;IndexInstr&amp;quot;,&lt;br /&gt;                Expression = &amp;quot;RIM9@FORTS/2&amp;quot;,&lt;br /&gt;                Board = ExchangeBoard.Micex,&lt;br /&gt;            };&lt;br /&gt;&lt;br /&gt;            _portfolio = new Portfolio { Name = &amp;quot;test portfolio&amp;quot;, BeginValue = 10000000 };&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;            var storageRegistry = new StorageRegistry&lt;br /&gt;            {&lt;br /&gt;                DefaultDrive = new LocalMarketDataDrive(_pathHistory),&lt;br /&gt;            };&lt;br /&gt;&lt;br /&gt;            _connector = new HistoryEmulationConnector(new[] { _security, _indexSecurity }, new[] { _portfolio })&lt;br /&gt;            {&lt;br /&gt;                HistoryMessageAdapter =&lt;br /&gt;                {&lt;br /&gt;                    StorageRegistry = storageRegistry,&lt;br /&gt;                    StorageFormat = StorageFormats.Csv,&lt;br /&gt;                    StartDate = DatePickerBegin.SelectedDate.Value.ChangeKind(DateTimeKind.Utc),&lt;br /&gt;                    StopDate = DatePickerEnd.SelectedDate.Value.ChangeKind(DateTimeKind.Utc),&lt;br /&gt;                },&lt;br /&gt;                LogLevel = LogLevels.Info,&lt;br /&gt;            };&lt;br /&gt;            _logManager.Sources.Add(_connector);&lt;br /&gt;&lt;br /&gt;            //зарегистрируем в менеджере конфигураций коннектор как источник инструментов&lt;br /&gt;            //в версии 4.15 4.16 работает и без регистрации&lt;br /&gt;     //       ConfigManager.RegisterService&amp;lt;ISecurityProvider&amp;gt;(_connector);&lt;br /&gt;&lt;br /&gt;            _candleSeries = new CandleSeries(CandleSettingsEditor.Settings.CandleType, _indexSecurity, CandleSettingsEditor.Settings.Arg)&lt;br /&gt;            {&lt;br /&gt;                BuildCandlesMode = MarketDataBuildModes.Build,&lt;br /&gt;                BuildCandlesFrom = MarketDataTypes.Trades,&lt;br /&gt;            };&lt;br /&gt;&lt;br /&gt;            InitCart();&lt;br /&gt;&lt;br /&gt;            _candleManager = new CandleManager(_connector);&lt;br /&gt;            _candleManager.Processing += Processing;&lt;br /&gt;            _connector.NewSecurity += Connector_NewSecurity;&lt;br /&gt;            _connector.Connect();&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;        private void Connector_NewSecurity(Security security)&lt;br /&gt;        {&lt;br /&gt;            if (_connector.Securities.Count() &amp;lt; 2) return;&lt;br /&gt;            //в версии 4.15, 4.16 работает и без этого&lt;br /&gt;           _connector.RegisterTrades(_indexSecurity);&lt;br /&gt;            //запускаем менеджер свечей на получение свечей по индексу&lt;br /&gt;            _candleManager.Start(_candleSeries);&lt;br /&gt;            _connector.Start();&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        private void Processing(CandleSeries candleSeries, Candle candle)&lt;br /&gt;        {&lt;br /&gt;            //в методе отрисовки свечей нужно проверять - является ли свеча индекса или нет и только их отрисовывать на графике&lt;br /&gt;            if (candleSeries.Security != _indexSecurity) return;&lt;br /&gt;&lt;br /&gt;            Chart.Draw(_candleElement, candle);&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        private void InitCart()&lt;br /&gt;        {&lt;br /&gt;            Chart.ClearAreas();&lt;br /&gt;            var area = new ChartArea();&lt;br /&gt;            _candleElement = new ChartCandleElement();&lt;br /&gt;&lt;br /&gt;            Chart.AddArea(area);&lt;br /&gt;            Chart.AddElement(area, _candleElement);&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/47756/</id>
    <title type="text">Пожалуйста, пришлите ваш код для воспроизведения ошибки.</title>
    <published>2019-06-11T13:17:53Z</published>
    <updated>2019-06-11T13:17:53Z</updated>
    <author>
      <name>Support</name>
      <uri>https://stocksharp.ru/users/97869/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">Пожалуйста, пришлите ваш код для воспроизведения ошибки.</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/47755/</id>
    <title type="text">Просьба уточнить ваш вопрос. В Шелл не было индексов. О каком архиве идёт речь? Я не только про Shel...</title>
    <published>2019-06-11T11:32:10Z</published>
    <updated>2019-06-11T11:32:10Z</updated>
    <author>
      <name>allint29</name>
      <uri>https://stocksharp.ru/users/103515/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;Support &lt;a href="https://stocksharp.ru/posts/m/47751/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;Просьба уточнить ваш вопрос. В Шелл не было индексов. О каком архиве идёт речь?&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Я не только про Shell описываю, а программу которая написана на библиотеке версии (на которых пробовал) 4.4.15 и 4.4.16. В Shell которая у меня, например, версия библиотеки  StockSharp.Algo 4.4.15 (версию библиотеки смотрю в свойствах ссылок на библиотеку), а версия из учебного примера (в котором все работает нормально) - 4.4.5.4, там даже модуль Expression выведен в отдельный файл. Я не разработчик данной библиотеки, но считаю что это баг, или, возможно, с версии обучающего видео процедура расчета индекса изменилась и тогда хотелось бы узнать эту процедуру.</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/47751/</id>
    <title type="text">Просьба уточнить ваш вопрос. В Шелл не было индексов. О каком архиве идёт речь?</title>
    <published>2019-06-11T10:03:04Z</published>
    <updated>2019-06-11T10:03:04Z</updated>
    <author>
      <name>Support</name>
      <uri>https://stocksharp.ru/users/97869/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">Просьба уточнить ваш вопрос. В Шелл не было индексов. О каком архиве идёт речь?</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/47746/</id>
    <title type="text">Здравствуйте, данная корректировка помогла, начали производиться вычисления, но теперь вычисления за...</title>
    <published>2019-06-11T09:13:47Z</published>
    <updated>2019-06-11T09:13:47Z</updated>
    <author>
      <name>allint29</name>
      <uri>https://stocksharp.ru/users/103515/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">Здравствуйте, данная корректировка помогла, начали производиться вычисления, но теперь вычисления заканчиваются на открытии свечи, то есть если взять индекс без всяких коэффициентов, то на выходе получаю бар с открытием закрытием и телом в одну точку равным открытию бара данного инструмента на данном таймфрейме. Сначала думал, что индекс строится не из сделок а из свечей таймфрейма, но пробовал разные таймфреймы нестандартные, всегда бар начинается и заканчивается открытием свечи того таймфрейма, который выбран. Скрин экрана прилагаю. Еще хочу уточнить, что на версии 4.4.5.4 из учебного примера все работает как надо на тех же данных.&lt;a href='https://stocksharp.ru/file/109258/QuestByShellIndex2.jpg' class='lightview' data-lightview-options="skin: 'mac'" data-lightview-group='mixed'&gt;&lt;img src="https://stocksharp.ru/file/109258/QuestByShellIndex2.jpg?size=800x800" alt="QuestByShellIndex2.jpg" title="QuestByShellIndex2.jpg" /&gt;&lt;/a&gt;</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/47714/</id>
    <title type="text">Добрый день Попробуйте вместо RoslynCompilerService использовать следующий: ConfigManager.RegisterSe...</title>
    <published>2019-06-08T15:36:04Z</published>
    <updated>2019-06-08T15:36:04Z</updated>
    <author>
      <name>Support</name>
      <uri>https://stocksharp.ru/users/97869/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">Добрый день&lt;br /&gt;&lt;br /&gt;Попробуйте вместо RoslynCompilerService использовать следующий:&lt;br /&gt;&lt;br /&gt;&lt;div class="code"&gt;&lt;strong&gt;Код&lt;/strong&gt;&lt;div class="innercode"&gt;ConfigManager.RegisterService&amp;lt;ICompilerService&amp;gt;(new Fw40CompilerService(Directory.GetCurrentDirectory(), Directory.GetCurrentDirectory()));&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;_indexSecurity = new ExpressionIndexSecurity()&lt;br /&gt;            {&lt;br /&gt;                Id = &amp;quot;INDEXTWO@FORTS&amp;quot;,&lt;br /&gt;                Code = &amp;quot;IndexMy&amp;quot;,&lt;br /&gt;                &lt;br /&gt;            Expression = &amp;quot;RIM9@FORTS-10000&amp;quot;,&lt;br /&gt;            Board = ExchangeBoard.Micex,&lt;br /&gt;            };&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;        var result = _indexSecurity.Formula.Calculate(new&amp;#91;&amp;#93; { 167.43m });&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;        if (result != -9832.57m)&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;        {&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;        throw new Exception(result.ToString());&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;        }&lt;/div&gt;&lt;/div&gt;</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/47698/</id>
    <title type="text">Добрый день Пожалуйста, пришлите ваш код на support@stocksharp.com Добрый день выслал на почту код и...</title>
    <published>2019-06-06T16:32:43Z</published>
    <updated>2019-06-06T16:32:43Z</updated>
    <author>
      <name>allint29</name>
      <uri>https://stocksharp.ru/users/103515/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;Support &lt;a href="https://stocksharp.ru/posts/m/47697/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;Добрый день &lt;br /&gt;&lt;br /&gt;Пожалуйста, пришлите ваш код на &lt;a href="mailto:support@stocksharp.com"&gt;support@stocksharp.com&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;Добрый день выслал на почту код из shell.&lt;br /&gt;</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/47697/</id>
    <title type="text">Добрый день Пожалуйста, пришлите ваш код на support@stocksharp.com</title>
    <published>2019-06-06T13:30:06Z</published>
    <updated>2019-06-06T13:30:06Z</updated>
    <author>
      <name>Support</name>
      <uri>https://stocksharp.ru/users/97869/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">Добрый день &lt;br /&gt;&lt;br /&gt;Пожалуйста, пришлите ваш код на &lt;a href="mailto:support@stocksharp.com"&gt;support@stocksharp.com&lt;/a&gt;</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/47637/</id>
    <title type="text">Здравствуйте, возник вопрос по формированию индексного графика в Shell. Пытаюсь сделать индекс при п...</title>
    <published>2019-06-02T09:41:10Z</published>
    <updated>2019-06-02T09:41:10Z</updated>
    <author>
      <name>allint29</name>
      <uri>https://stocksharp.ru/users/103515/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">Здравствуйте, возник вопрос по формированию индексного графика в Shell. Пытаюсь сделать индекс при помощи ExpressionIndexSecurity и RoslynCompilerService, но индекс не формируется, в графе Expression после инициализации нового инструмента остается null, соответственно и инструмента нет, ошибок никаких не выдает C#. При этом вне рамок Shell все нормально работает. На приложенном скрине два варианта остановы, в которых видно , что в обычной форме индекс создается, а во втором (Shell) нет. Я в Shell пытался код с формированием индекса включать даже при инициализации главной формы но результат тот же. Не пойму, что я делаю не так?</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
</feed>