﻿<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type='text/css' href='https://stocksharp.com/css/style.css'?>
<?xml-stylesheet type='text/css' href='https://stocksharp.com/css/bbeditor.css'?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title type="html">Проблема с ExtensionInfo Binding</title>
  <id>~/topic/811/problema-s-extensioninfo-binding/</id>
  <rights type="text">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  <updated>2026-06-19T22:27:54Z</updated>
  <logo>https://stocksharp.com/images/logo.png</logo>
  <link href="https://stocksharp.com/handlers/atom.ashx?category=topic&amp;id=811" rel="self" type="application/rss+xml" />
  <entry>
    <id>https://stocksharp.com/posts/m/980/</id>
    <title type="text">Встречался с таким во время тестов 1-2 раза, подумал что глюк у меня =) </title>
    <published>2010-08-17T09:34:00Z</published>
    <updated>2010-08-17T09:34:00Z</updated>
    <author>
      <name>Alexander</name>
      <uri>https://stocksharp.com/users/2826/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;p&gt;Встречался с таким во время тестов 1-2 раза, подумал что глюк у меня
=)&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/979/</id>
    <title type="text">Забавно, но только перед отпуском я как раз думал, что надо всегда обновлять все поля у инструмента....</title>
    <published>2010-08-16T21:13:00Z</published>
    <updated>2010-08-16T21:13:00Z</updated>
    <author>
      <name>Mikhail Sukhov</name>
      <uri>https://stocksharp.com/users/201/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;p&gt;Забавно, но только перед отпуском я как раз думал, что надо всегда
обновлять все поля у инструмента. Просто иногда бывают такие ситуации
(редко, но бывают), когда сначала приходит по дде сделка, а затем уже
инструмент. И тогда в системе начинает обитать пустой инструмент а
минимум заполненных полей.&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/978/</id>
    <title type="text">Отлично. Тогда пока MarginBuy\MarginSell буду использовать, а с MinPrice\MaxPrice подожду 2.3 :) </title>
    <published>2010-08-16T20:10:00Z</published>
    <updated>2010-08-16T20:10:00Z</updated>
    <author>
      <name>Alexander</name>
      <uri>https://stocksharp.com/users/2826/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;p&gt;Отлично. Тогда пока MarginBuy\MarginSell буду использовать, а с
MinPrice\MaxPrice подожду 2.3 :)&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/977/</id>
    <title type="text">Все, понял. Я поля QuikTrader заполняет один раз, при создании инструмента. Делал первоначально для ...</title>
    <published>2010-08-16T18:57:00Z</published>
    <updated>2010-08-16T18:57:00Z</updated>
    <author>
      <name>Mikhail Sukhov</name>
      <uri>https://stocksharp.com/users/201/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;p&gt;Все, понял. Я поля QuikTrader заполняет один раз, при создании
инструмента. Делал первоначально для мамбы, а там деривативов нет.
Потом уже ФОРЦ прикрутил.&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/976/</id>
    <title type="text">Через NewSecurities: const string workInstrument = &amp;quot;RTS-9.10&amp;quot;; var riFut = _securities.FirstOrDefaul...</title>
    <published>2010-08-16T18:17:00Z</published>
    <updated>2010-08-16T18:17:00Z</updated>
    <author>
      <name>Alexander</name>
      <uri>https://stocksharp.com/users/2826/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;p&gt;Через NewSecurities:
const string workInstrument = &amp;quot;RTS-9.10&amp;quot;;
var riFut = _securities.FirstOrDefault(s =&amp;gt; s.Name ==
workInstrument);&lt;/p&gt;
&lt;p&gt;где _securities как раз заполняется внутри обработчика NewSecurities.
Первоначально все поля прописаны верно - как раз совпадает с таблицей
в квике, после клиринга изменилось как ГО, так и MinPrice \ MaxPrice &lt;br /&gt;
MinStepPrice. Почему-то они вот и не обновились&lt;/p&gt;
&lt;p&gt;Вот сейчас:
MinPrice=137475.0 (должно быть 136130)
MinStepPrice=3.05495 (должно быть 3.05254)
MaxPrice=148815.0 (должно быть 147470)
MarginBuy=7483.52 (всё верно, как раз изменилось после клиринга, до
клиринга - было 7489.43)&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/975/</id>
    <title type="text">Security - что был получен через NewSecurities или ручками создан? </title>
    <published>2010-08-16T18:01:00Z</published>
    <updated>2010-08-16T18:01:00Z</updated>
    <author>
      <name>Mikhail Sukhov</name>
      <uri>https://stocksharp.com/users/201/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;p&gt;Security - что был получен через NewSecurities или ручками создан?&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/974/</id>
    <title type="text">Обновилось точно - смотрю по таблице в квике, данные другие чем по дебагеру ловлю. Только что провер...</title>
    <published>2010-08-16T17:50:00Z</published>
    <updated>2010-08-16T17:50:00Z</updated>
    <author>
      <name>Alexander</name>
      <uri>https://stocksharp.com/users/2826/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;ol&gt;
&lt;li&gt;Обновилось точно - смотрю по таблице в квике, данные другие чем по
дебагеру ловлю.
Только что проверил ещё раз - остановил стратегию, посмотрел Security
в стратегии в вижуал студии, не обновилось.&lt;/li&gt;
&lt;li&gt;нет, ни одного сообщения не поступало&lt;/li&gt;
&lt;/ol&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/973/</id>
    <title type="text">Так может и не обновилось? (double)Security.ExtensionInfo[DdeSecurityColumns.MarginBuy] Так нельзя. ...</title>
    <published>2010-08-16T17:33:00Z</published>
    <updated>2010-08-16T17:33:00Z</updated>
    <author>
      <name>Mikhail Sukhov</name>
      <uri>https://stocksharp.com/users/201/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;ol&gt;
&lt;li&gt;Так может и не обновилось?&lt;/li&gt;
&lt;li&gt;(double)Security.ExtensionInfo[DdeSecurityColumns.MarginBuy]  Так
нельзя. Все таки надо через отдельное свойство Security.MarginBuy .&lt;/li&gt;
&lt;li&gt;ProcessDataError ничего не пишет?&lt;/li&gt;
&lt;/ol&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/972/</id>
    <title type="text">Кажется я немного не понимаю как должны обновляться дополнительные поля у Security... Для каждого из...</title>
    <published>2010-08-16T15:25:00Z</published>
    <updated>2010-08-16T15:25:00Z</updated>
    <author>
      <name>Alexander</name>
      <uri>https://stocksharp.com/users/2826/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;p&gt;Кажется я немного не понимаю как должны обновляться дополнительные
поля у Security...&lt;/p&gt;
&lt;p&gt;Для каждого из QuikTrader, входящих в MultiTrader я добавил нужные мне
поля:&lt;/p&gt;
&lt;p&gt;quikTrader.SecuritiesTable.Columns.Add(DdeSecurityColumns.MarginBuy);&lt;/p&gt;
&lt;p&gt;quikTrader.SecuritiesTable.Columns.Add(DdeSecurityColumns.MarginSell);&lt;/p&gt;
&lt;p&gt;quikTrader.SecuritiesTable.Columns.Add(DdeSecurityColumns.MaxPrice);&lt;/p&gt;
&lt;p&gt;quikTrader.SecuritiesTable.Columns.Add(DdeSecurityColumns.MinPrice);&lt;/p&gt;
&lt;p&gt;quikTrader.SecuritiesTable.Columns.Add(DdeSecurityColumns.MinStepPrice);
(Все эти поля есть в таблице квика.)&lt;/p&gt;
&lt;p&gt;Пробую печатать из стратегии:
AddLog(StrategyErrorStates.None, &amp;quot;ГО ({0}), minPrice
({1}), minStepPrice ({2})&amp;quot;,
new object[]
{
Security.MarginBuy,
Security.MinPrice,
Security.MinStepSize,
});&lt;/p&gt;
&lt;p&gt;Сегодня после клиринга изменилась печать лишь для ГО, для MinPrice и
для MinStepPrice осталась прежней.
Печать через
try
{
AddLog(StrategyErrorStates.None, &amp;quot;ГО_2 ({0})&amp;quot;, new
object[]&lt;/p&gt;
&lt;p&gt;{&lt;/p&gt;
&lt;p&gt;(double)Security.ExtensionInfo[DdeSecurityColumns.MarginBuy]
});
}
catch (Exception)
{&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;           AddLog(StrategyErrorStates.None, &amp;quot;Не удалось получить
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;ГО_2&amp;quot;, new object());
}
выбрасывает exception.&lt;/p&gt;
&lt;p&gt;Как сделать так, чтоб автоматически обновлялись и MinPrice,
MinStepPrice, ...?&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/971/</id>
    <title type="text">Да, это только для формы, поэтому не к спеху, пока хватает и таймера. </title>
    <published>2010-07-13T20:53:00Z</published>
    <updated>2010-07-13T20:53:00Z</updated>
    <author>
      <name>Александр Сопов</name>
      <uri>https://stocksharp.com/users/28297/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;p&gt;Да, это только для формы, поэтому не к спеху, пока хватает и таймера.&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/970/</id>
    <title type="text">Просто то просто, только все равно фичи раньше след. версии не смогу выпустить. А к следующей версии...</title>
    <published>2010-07-13T12:57:00Z</published>
    <updated>2010-07-13T12:57:00Z</updated>
    <author>
      <name>Mikhail Sukhov</name>
      <uri>https://stocksharp.com/users/201/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;p&gt;Просто то просто, только все равно фичи раньше след. версии не смогу
выпустить. А к следующей версии лучше сделать по правильному (как пока
не знаю). Вам это только для обновления данных на форме?&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/969/</id>
    <title type="text">Михаил, Вы правы, дикшенари ничего не знает о интерфейсе, и реализовать дифференцированный отклик на...</title>
    <published>2010-07-12T18:40:00Z</published>
    <updated>2010-07-12T18:40:00Z</updated>
    <author>
      <name>Александр Сопов</name>
      <uri>https://stocksharp.com/users/28297/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;p&gt;Михаил, Вы правы, дикшенари ничего не знает о интерфейсе, и
реализовать дифференцированный отклик на изменение каждой записи не
так просто. Но ведь можно сделать &amp;quot;компромиссный&amp;quot; вариант - код,
который заполняет или изменяет дикшенари, может отправлять
RaisedPropertyChanged(&amp;quot;ExtensionInfo&amp;quot;). То есть форма будет обновлять
все поля при изменении какой-либо записи в ExtensionInfo. Не так чтобы
очень сильно нужно, но это ведь просто реализовать. Поправте меня,
если ошибаюсь. Идея с  VisualSecurity тоже не очень удобно, сильно
запутывает код.&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/968/</id>
    <title type="text">ExtensionInfo не могло генерировать RaisedPropertyChanged - это Dictionary из .NET, который ничего н...</title>
    <published>2010-07-12T12:20:00Z</published>
    <updated>2010-07-12T12:20:00Z</updated>
    <author>
      <name>Mikhail Sukhov</name>
      <uri>https://stocksharp.com/users/201/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;p&gt;ExtensionInfo не могло генерировать RaisedPropertyChanged - это
Dictionary из .NET, который ничего не знает о INotifyPropertyChanged.&lt;/p&gt;
&lt;p&gt;Сильно неудобно? Посмотрю, что можно сделать. Но это будет не раньше
новой версии. Как обходной путь сейчас, не использовать таймер, а
использовать ITrader.SecuritiesChanged. Из него заполнять структуру
VisualSecurity через нужное свойство. Которой в свою очередь бросает
событие PropertyChanged. И форма преспокойно это отображает. Это более
правильно чем через таймер.&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/967/</id>
    <title type="text">Но ведь класс Security уже реализует INotifyPropertyChanged, и при изменении всех полей кроме Extens...</title>
    <published>2010-07-10T16:09:00Z</published>
    <updated>2010-07-10T16:09:00Z</updated>
    <author>
      <name>Александр Сопов</name>
      <uri>https://stocksharp.com/users/28297/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;p&gt;Но ведь класс Security уже реализует INotifyPropertyChanged, и при
изменении всех полей кроме ExtensionInfo соответствующие события
посылаются. В версии 2.01 ExtensionInfo также генерировало
RaisedPropertyChanged... Почему в 2.1 этого больше не происходит?
Сейчас приходится опрашивать ExtensionInfo по таймеру, как в подходе с
SampleQuote, что не есть гуд.&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/966/</id>
    <title type="text">Я думаю Вы правы. Это сложна структура и с ней такой простой ход как INotifyPropertyChanged не пройд...</title>
    <published>2010-07-09T10:00:00Z</published>
    <updated>2010-07-09T10:00:00Z</updated>
    <author>
      <name>Mikhail Sukhov</name>
      <uri>https://stocksharp.com/users/201/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;p&gt;Я думаю Вы правы. Это сложна структура и с ней такой простой ход как
INotifyPropertyChanged не пройдет. Используйте подход как с
SampleQuote (который читает данные из Quote.ExtensionInfo ).&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/965/</id>
    <title type="text">Михал, вечер добрый. В примере с экспортом инструментов волатильность и теор цена не обновляются в р...</title>
    <published>2010-07-08T21:00:00Z</published>
    <updated>2010-07-08T21:00:00Z</updated>
    <author>
      <name>Александр Сопов</name>
      <uri>https://stocksharp.com/users/28297/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;p&gt;Михал, вечер добрый.&lt;/p&gt;
&lt;p&gt;В примере с экспортом инструментов волатильность и теор цена не
обновляются в реальном времени. Думаю дело в том, что они биндятся к
объекту Security, а не к полю. Если их забиндить через
Path=ExtensionInfo и написать конвертер, то данные все равно не
обновляются в реальном времени, хотя на ранних версиях S# это
работало.... В чем может быть причина? ExtensionInfo больше не
свойство зависимости? или не реализует INotifyPropertyChanged?&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
</feed>