﻿<?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">weightedindexsecurity. StockSharp</title>
  <id>https://stocksharp.ru/handlers/atom.ashx?category=tag&amp;id=weightedindexsecurity&amp;type=forum</id>
  <rights type="text">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  <updated>2026-06-10T11:20:57Z</updated>
  <logo>https://stocksharp.ru/images/logo.png</logo>
  <link href="https://stocksharp.ru/handlers/atom.ashx?category=tag&amp;id=weightedindexsecurity&amp;type=forum" rel="self" type="application/rss+xml" />
  <entry>
    <id>https://stocksharp.ru/topic/8952/</id>
    <title type="text">Создание WeightedIndexSecurity из исторических данных (получить исторический спред 2-х инструментов)</title>
    <published>2017-12-21T20:39:37Z</published>
    <updated>2018-01-09T20:04:19Z</updated>
    <author>
      <name>Дмитрий_</name>
      <uri>https://stocksharp.ru/users/62269/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="исторические данные" />
    <category term="WeightedIndexSecurity" />
    <content type="html">&lt;p&gt;Здравствуйте.&lt;/p&gt;
&lt;p&gt;Подскажите, как правильно создать WeightedIndexSecurity из исторических данных?&lt;/p&gt;
&lt;p Id="SBER@TQBR"&gt;Имею:
Security _leg1Security = new Security() ;
Security _leg2Security = new Security() ;&lt;/p&gt;
&lt;p&gt;DateTime from = new DateTime(2017, 1, 3).ChangeKind(DateTimeKind.Utc);
DateTime to = new DateTime(2017, 1, 4).ChangeKind(DateTimeKind.Utc);&lt;/p&gt;
&lt;p&gt;private TimeSpan _timeFrame = TimeSpan.FromMinutes(1);&lt;/p&gt;
&lt;p&gt;В переменных _leg1TimeFrameCandles и _leg2TimeFrameCandles исторические 1-мин свечи, загруженные из локального хранилища.&lt;/p&gt;
&lt;p&gt;_portfolio = new Portfolio
{
Name = &amp;quot;Test Account&amp;quot;,
BeginValue = 1000000,
};&lt;/p&gt;
&lt;p&gt;WeightedIndexSecurity _spreadSecurity = new WeightedIndexSecurity() { Id = &amp;quot;Index1&amp;quot;, Board = ExchangeBoard.Forts };
_spreadSecurity.Weights.Add(_leg1Security.Id.ToSecurityId(), Convert.ToDecimal(1));
_spreadSecurity.Weights.Add(_leg2Security.Id.ToSecurityId(), Convert.ToDecimal(-1));&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;        var securityList = new List&amp;lt;Security&amp;gt; { _spreadSecurity };
        var portfolioList = new List&amp;lt;Portfolio&amp;gt; { _portfolio };
&lt;/code&gt;&lt;/pre&gt;
&lt;p BuildCandlesMode="BuildCandlesModes.Build"&gt;_historyEmulationConnector = new HistoryEmulationConnector(securityList, portfolioList);
_spreadCandleSeries = new CandleSeries(typeof(TimeFrameCandle), _spreadSecurity, TimeSpan.FromMinutes(1)) ;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;        ConfigManager.RegisterService&amp;lt;ISecurityProvider&amp;gt;(_historyEmulationConnector);

        CandleManager _spreadCandleManager = new CandleManager(_historyEmulationConnector);
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;_spreadCandleManager.Processing += DrawSpreadCandle;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;        _spreadCandleManager.Start(_spreadCandleSeries); (Исключение - System.InvalidOperationException: &amp;quot;Инструмент S#:SBER@TQBR, Native:,Type: не найден.&amp;quot;)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;private void DrawSpreadCandle(CandleSeries series, Candle candle)
{
Debug.WriteLine(string.Format(&amp;quot;series= {0}, candle= {1}, candleseries= {2}&amp;quot;, series.Security.Id, candle.Security.Id, _spreadCandleSeries.Security.Id));&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;        var data = new ChartDrawData();
        data.Group(candle.OpenTime).Add(_spreadChartCandleElement, candle);

        try
        {
            Chart.Draw(data);
        }
        catch (Exception ex)
        {
        }
    }
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Как получить исторический спред этих 2-х инструментов?&lt;/p&gt;
</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/8897/</id>
    <title type="text">Эмуляция недостающих свечей</title>
    <published>2017-12-05T01:45:09Z</published>
    <updated>2017-12-05T10:05:30Z</updated>
    <author>
      <name>Дмитрий_</name>
      <uri>https://stocksharp.ru/users/62269/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="WeightedIndexSecurity" />
    <category term="TimeFrameCandle" />
    <content type="html">&lt;p&gt;Здравствуйте.&lt;/p&gt;
&lt;p&gt;Качаю исторические данные для 2-х инструментов.
Используя два инструмента - хочу создать индекс.
Иногда, количество 1-мин свечей одного инструмента != количеству 1-мин свечей другого инструмента.&lt;/p&gt;
&lt;p&gt;И дабы не создавать кривой индекс
Вопросы:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Содержит S# API функционал для эмуляции недостающих свечей?&lt;/li&gt;
&lt;li&gt;Как данную проблему решают профессиональные алготрейдеры?&lt;/li&gt;
&lt;/ol&gt;
</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/8700/</id>
    <title type="text">WeightedIndexSecurity внутри другого WeightedIndexSecurity после обновления.</title>
    <published>2017-10-12T20:36:24Z</published>
    <updated>2017-10-12T20:36:24Z</updated>
    <author>
      <name>JcJet</name>
      <uri>https://stocksharp.ru/users/94445/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="WeightedIndexSecurity" />
    <category term="SecurityId" />
    <category term="Составной инструмент" />
    <content type="html">&lt;p&gt;Здравствуйте. В своей торговой стратегии я использовал несколько индексных инструментов, вложенных в корневой индексный инструмент. Однако после обновления S# API возникли сложности, т.к. теперь метод Weights.Add() требует SecurityId вместо Security.
На прошлой версии такой трюк работал нормально, однако не пойму, как нужно переделать вызов метода , чтобы снова все было ок.
Если вызывать метод ToSecurityId для индексного инструмента, то вылетает исключение, т.к. поля Code, Board, как и многие другие в нем являются null.
Каким образом формировать SecurityId, или, быть может, есть решение проще?
Корректно ли будет создать новый SecurityId и установить свойства, чтобы они соответствовали строковому представлению индексного инструмента вида &amp;quot;1 * SBER@TQBR&amp;quot;?&lt;/p&gt;
</content>
  </entry>
</feed>