﻿<?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">Неверное значение ВМ, полученное из Portfolio.VariationMargin</title>
  <id>~/topic/2700/nevernoe-znachenie-vm-poluchennoe-iz-portfolio_variationmargin/</id>
  <rights type="text">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  <updated>2026-04-22T17:30:56Z</updated>
  <logo>https://stocksharp.ru/images/logo.png</logo>
  <link href="https://stocksharp.ru/handlers/atom.ashx?category=topic&amp;id=2700" rel="self" type="application/rss+xml" />
  <entry>
    <id>https://stocksharp.ru/posts/m/19257/</id>
    <title type="text">Fixed</title>
    <published>2012-05-22T13:05:35Z</published>
    <updated>2012-05-22T13:05:35Z</updated>
    <author>
      <name>Alexander</name>
      <uri>https://stocksharp.ru/users/2826/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">Fixed</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/19248/</id>
    <title type="text">Стало понятно что дело в нескольких счетах на логине. Так как на тестовом полигоне где всего один сч...</title>
    <published>2012-05-22T08:58:34Z</published>
    <updated>2012-05-22T12:33:37Z</updated>
    <author>
      <name>Limfocit</name>
      <uri>https://stocksharp.ru/users/789/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">Стало понятно что дело в нескольких счетах на логине. Так как на тестовом полигоне где всего один счет все отлично работает. &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;
Trader.TableRegistry.VarMarginFuture.Inserted +=new Action&amp;lt;PlazaRecord&amp;gt;(VarMarginFuture_Inserted);&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;

        //сохраняем сессию, чтобы очистить словарь ВМ от значений при изменении сессии
        private int LastSessionId = 0;

        private void VarMarginFuture_Inserted(PlazaRecord record)
        {
            var metadata = Trader.TableRegistry.ColumnRegistry.VarMarginFuture;

            if (LastSessionId == 0)
            {
                LastSessionId = record.GetInt(metadata.SessionId);
            }
            if (LastSessionId != record.GetInt(metadata.SessionId))
            {
                VMDict = new Dictionary&amp;lt;string, Dictionary&amp;lt;int, decimal&amp;gt;&amp;gt;();
            }
            var isin = record.GetInt(metadata.IsinId);
            var curr = record.GetDecimal(metadata.VarMarginReal);
            var client = record.GetString(metadata.ClientCode);
            if (!VMDict.ContainsKey(client))
            {
                VMDict[client] = new Dictionary&amp;lt;int, decimal&amp;gt;();
            }
            VMDict[client][isin] = curr;
        }
        //мой метод для получения ВМ текущего портфеля
        public decimal getVM()
        {
            decimal res = 0.0m;
            //получаю текущий для робота портфель
            var portfolioName = getPortfolio().Name;
            if (VMDict.ContainsKey(portfolioName))
            {
                foreach (int isin in VMDict[portfolioName].Keys)
                {
                    res += VMDict[portfolioName][isin];
                }
            }
            return res;
        }
        //словарь ВМ, основной ключ код клиента, второй ключ - isin
        private Dictionary&amp;lt;string,Dictionary&amp;lt;int, decimal&amp;gt;&amp;gt; VMDict = new Dictionary&amp;lt;string,Dictionary&amp;lt;int,decimal&amp;gt;&amp;gt;();&lt;/pre&gt;
&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/19173/</id>
    <title type="text">Сегодня запустил программу, работающую через S# PlazaTrader и заметил что значение ВМ в портфеле сил...</title>
    <published>2012-05-20T14:14:12Z</published>
    <updated>2012-05-20T14:14:12Z</updated>
    <author>
      <name>Alexander</name>
      <uri>https://stocksharp.ru/users/2826/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;Limfocit &lt;a href="https://stocksharp.ru/posts/m/19102/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;Сегодня запустил программу, работающую через S# PlazaTrader и заметил что значение ВМ в портфеле сильно отличается от значений ВМ для этого счета в привязанном к этому счету квике. Разница в несколько порядков. При этом на этом же логине у меня работают написанные мною программы, которые транслируют ВМ, не отличающуюся от квика. Данные ВМ в своей программе беру из потока FORTS_VM_REPL таблицы fut_vm поле vm.&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Посмотрел ещё раз.&lt;br /&gt;В vm и vm_real транслируется ведь информация по вариционной марже по отдельным инструментам, поэтому как раз она и суммируется у нас.&lt;br /&gt;Т.е. суммируется вариционка по суммарным показателям id_инструмента, id_сессии</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/19116/</id>
    <title type="text">на codeplex еще не положил</title>
    <published>2012-05-18T17:59:58Z</published>
    <updated>2012-05-18T17:59:58Z</updated>
    <author>
      <name>Alexander</name>
      <uri>https://stocksharp.ru/users/2826/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">на codeplex еще не положил</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/19115/</id>
    <title type="text">Поставил ревизию 17022 - все равно нет связи с данными в квике (разница опять на несколько порядков)...</title>
    <published>2012-05-18T17:58:15Z</published>
    <updated>2012-05-18T17:58:15Z</updated>
    <author>
      <name>Limfocit</name>
      <uri>https://stocksharp.ru/users/789/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">Поставил ревизию 17022 - все равно нет связи с данными в квике (разница опять на несколько порядков).&lt;br /&gt;Плюс еще заметил такую вещь. если в открытом примере под плазу отключиться и подключиться под шлюз на другом порту на этой же машине - портфели остаются от старого подключения.</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/19107/</id>
    <title type="text">Поправил. Мы по полю vm_real определяем.</title>
    <published>2012-05-18T12:36:50Z</published>
    <updated>2012-05-18T12:36:50Z</updated>
    <author>
      <name>Alexander</name>
      <uri>https://stocksharp.ru/users/2826/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">Поправил. Мы по полю vm_real определяем.</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/19102/</id>
    <title type="text">Сегодня запустил программу, работающую через S# PlazaTrader и заметил что значение ВМ в портфеле сил...</title>
    <published>2012-05-18T09:03:20Z</published>
    <updated>2012-05-18T09:03:20Z</updated>
    <author>
      <name>Limfocit</name>
      <uri>https://stocksharp.ru/users/789/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">Сегодня запустил программу, работающую через S# PlazaTrader и заметил что значение ВМ в портфеле сильно отличается от значений ВМ для этого счета в привязанном к этому счету квике. Разница в несколько порядков. При этом на этом же логине у меня работают написанные мною программы, которые транслируют ВМ, не отличающуюся от квика. Данные ВМ в своей программе беру из потока FORTS_VM_REPL таблицы fut_vm поле vm.</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
</feed>