﻿<?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-06-07T14:15:16Z</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">&lt;p&gt;Fixed&lt;/p&gt;
</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;p&gt;Стало понятно что дело в нескольких счетах на логине. Так как на тестовом полигоне где всего один счет все отлично работает.
На данный момент удалось добиться совпадения с данными в квике с помощью следующего кода:&lt;/p&gt;
&lt;p&gt;вешаем обработчик события&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-csharp"&gt;Trader.TableRegistry.VarMarginFuture.Inserted +=new Action&amp;lt;PlazaRecord&amp;gt;(VarMarginFuture_Inserted);
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;сам код обработчика&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-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;/code&gt;&lt;/pre&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">Limfocit: Сегодня запустил программу, работающую через 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;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(19102)" rel="nofollow" target="_blank"&gt;Limfocit&lt;/a&gt;:&lt;/strong&gt;
Сегодня запустил программу, работающую через S# PlazaTrader и заметил что значение ВМ в портфеле сильно отличается от значений ВМ для этого счета в привязанном к этому счету квике. Разница в несколько порядков. При этом на этом же логине у меня работают написанные мною программы, которые транслируют ВМ, не отличающуюся от квика. Данные ВМ в своей программе беру из потока FORTS_VM_REPL таблицы fut_vm поле vm.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Посмотрел ещё раз.
В vm и vm_real транслируется ведь информация по вариционной марже по отдельным инструментам, поэтому как раз она и суммируется у нас.
Т.е. суммируется вариционка по суммарным показателям id_инструмента, id_сессии&lt;/p&gt;
</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">&lt;p&gt;на codeplex еще не положил&lt;/p&gt;
</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">&lt;p&gt;Поставил ревизию 17022 - все равно нет связи с данными в квике (разница опять на несколько порядков).
Плюс еще заметил такую вещь. если в открытом примере под плазу отключиться и подключиться под шлюз на другом порту на этой же машине - портфели остаются от старого подключения.&lt;/p&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">&lt;p&gt;Поправил. Мы по полю vm_real определяем.&lt;/p&gt;
</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">&lt;p&gt;Сегодня запустил программу, работающую через S# PlazaTrader и заметил что значение ВМ в портфеле сильно отличается от значений ВМ для этого счета в привязанном к этому счету квике. Разница в несколько порядков. При этом на этом же логине у меня работают написанные мною программы, которые транслируют ВМ, не отличающуюся от квика. Данные ВМ в своей программе беру из потока FORTS_VM_REPL таблицы fut_vm поле vm.&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
</feed>