﻿<?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">конвертация  текстового ордерлога в S#</title>
  <id>~/topic/3312/konvertatsiya--tekstovogo-orderloga-v-s/</id>
  <rights type="text">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  <updated>2026-04-05T21:47:20Z</updated>
  <logo>https://stocksharp.com/images/logo.png</logo>
  <link href="https://stocksharp.com/handlers/atom.ashx?category=topic&amp;id=3312" rel="self" type="application/rss+xml" />
  <entry>
    <id>https://stocksharp.com/posts/m/23535/</id>
    <title type="text">Без статуса не получится ничего. Пример конвертации ОЛ</title>
    <published>2013-01-18T18:31:54Z</published>
    <updated>2016-08-16T00:11:20Z</updated>
    <author>
      <name>Garic</name>
      <uri>https://stocksharp.com/users/809/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">Без статуса не получится ничего.&lt;br /&gt;&lt;a href="http://stocksharp.com/posts/m/21014/" title="http://stocksharp.com/posts/m/21014/"&gt;Пример конвертации ОЛ&lt;/a&gt;</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/23531/</id>
    <title type="text">то есть без информации order.status ничего тестировать не удастся? Вы по ссылке пройдите. Там доходч...</title>
    <published>2013-01-18T14:13:24Z</published>
    <updated>2013-01-18T14:13:24Z</updated>
    <author>
      <name>Mikhail Sukhov</name>
      <uri>https://stocksharp.com/users/201/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;Андрей Шабанов &lt;a href="https://stocksharp.com/posts/m/23530/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;то есть без информации order.status ничего тестировать не удастся?&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Вы по ссылке пройдите. Там доходчиво сотрудник РТС написал про назначение этого поля.</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/23530/</id>
    <title type="text">то есть без информации order.status ничего тестировать не удастся? необходимо писать гидрой? даже ес...</title>
    <published>2013-01-18T13:47:47Z</published>
    <updated>2013-01-18T13:48:40Z</updated>
    <author>
      <name>Андрей Шабанов</name>
      <uri>https://stocksharp.com/users/16691/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">то есть без информации order.status ничего тестировать не удастся? необходимо писать гидрой?&lt;br /&gt;даже если я буду писать что=нибудь типа&lt;br /&gt;&lt;div class="code"&gt;&lt;strong&gt;Code&lt;/strong&gt;&lt;div class="innercode"&gt;&lt;br /&gt;order.Status=OrderStatus.Accepted&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;и &lt;br /&gt;&lt;div class="code"&gt;&lt;strong&gt;Code&lt;/strong&gt;&lt;div class="innercode"&gt;&lt;br /&gt;trade.Status=1;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;еще на строчке.&lt;br /&gt; orderlogStorage.Save(orderlogItems);&lt;br /&gt;выкидывает NullReferenceException.&lt;br /&gt;c чем это может быть связано?&lt;br /&gt;&lt;br /&gt;&lt;div class="code"&gt;&lt;strong&gt;Code&lt;/strong&gt;&lt;div class="innercode"&gt;&lt;br /&gt;            var security = new Security&lt;br /&gt;             {&lt;br /&gt;                 Id = tbx_id.Text,&lt;br /&gt;                 MinStepSize = decimal.Parse(tbx_MinStep.Text),&lt;br /&gt;                 Decimals = int.Parse(tbx_Decimals.Text),&lt;br /&gt;             };&lt;br /&gt;&lt;br /&gt;            var orderlogItems = new List&amp;lt;OrderLogItem&amp;gt;();&lt;br /&gt;            var storage = new StorageRegistry();&lt;br /&gt;            var orderlogStorage = storage.GetOrderLogStorage(security);&lt;br /&gt;            string file = filenames&amp;#91;0&amp;#93;;&lt;br /&gt;&lt;br /&gt;            StreamReader Sr = new StreamReader(path + @&amp;quot;\&amp;quot; + file);&lt;br /&gt;            string CurrentLine = Sr.ReadLine();&lt;br /&gt;            while ((CurrentLine = Sr.ReadLine()) != null)&lt;br /&gt;            {&lt;br /&gt;                string&amp;#91;&amp;#93; Split = CurrentLine.Split(&amp;#39;,&amp;#39;);&lt;br /&gt;                if (Split&amp;#91;0&amp;#93; == security.Id.Split(&amp;#39;@&amp;#39;)&amp;#91;0&amp;#93;)&lt;br /&gt;                {&lt;br /&gt;                    var orderlogItem = new OrderLogItem();&lt;br /&gt;                    var order = new Order();&lt;br /&gt;                    var trade = new Trade();&lt;br /&gt;                    if (Split&amp;#91;5&amp;#93; == &amp;quot;2&amp;quot;)&lt;br /&gt;                    {&lt;br /&gt;                        //order = null;&lt;br /&gt;                        trade.Time = DateTime.ParseExact(Split&amp;#91;3&amp;#93;, &amp;quot;yyyyMMddHHmmssfff&amp;quot;, CultureInfo.InvariantCulture, DateTimeStyles.None);&lt;br /&gt;                        trade.OrderDirection = (Split&amp;#91;2&amp;#93; == &amp;quot;B&amp;quot; ? OrderDirections.Buy : OrderDirections.Sell);&lt;br /&gt;                        trade.Security = security;&lt;br /&gt;                        trade.Id = Int64.Parse(Split&amp;#91;8&amp;#93;);&lt;br /&gt;                        trade.Price = Decimal.Parse(Split&amp;#91;9&amp;#93;, CultureInfo.InvariantCulture);&lt;br /&gt;                        trade.Volume = int.Parse(Split&amp;#91;7&amp;#93;);&lt;br /&gt;                        trade.Status = 1;&lt;br /&gt;                        orderlogItem.Trade = trade;&lt;br /&gt;&lt;br /&gt;                    }&lt;br /&gt;                    else&lt;br /&gt;                    {&lt;br /&gt;                       //trader=null;&lt;br /&gt;                        order.Time = DateTime.ParseExact(Split&amp;#91;3&amp;#93;, &amp;quot;yyyyMMddHHmmssfff&amp;quot;, CultureInfo.InvariantCulture, DateTimeStyles.None);&lt;br /&gt;                        order.Direction = (Split&amp;#91;2&amp;#93; == &amp;quot;B&amp;quot; ? OrderDirections.Buy : OrderDirections.Sell);&lt;br /&gt;                        order.Security = security;&lt;br /&gt;                        order.Id = Int64.Parse(Split&amp;#91;4&amp;#93;);&lt;br /&gt;                        order.Price = Decimal.Parse(Split&amp;#91;6&amp;#93;, CultureInfo.InvariantCulture);&lt;br /&gt;                        order.Volume = int.Parse(Split&amp;#91;7&amp;#93;);&lt;br /&gt;                        order.State = (Split&amp;#91;5&amp;#93; == &amp;quot;1&amp;quot;) ? OrderStates.Active : OrderStates.Done;&lt;br /&gt;                        orderlogItem.Order = order;&lt;br /&gt;                        order.Status = OrderStatus.Accepted;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;                    }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;                    //orderlogItem.Order = order;&lt;br /&gt;                    //orderlogItem.Trade = trade;&lt;br /&gt;                    orderlogItems.Add(orderlogItem);&lt;br /&gt;                    if (orderlogItems.Count &amp;gt;= buff)&lt;br /&gt;                    {&lt;br /&gt;                        orderlogStorage.Save(orderlogItems);&lt;br /&gt;                        orderlogItems.Clear();&lt;br /&gt;                    }&lt;br /&gt;                }&lt;br /&gt;&lt;br /&gt;            }&lt;br /&gt;            if(orderlogItems.Count!=0)&lt;br /&gt;                orderlogStorage.Save(orderlogItems);&lt;br /&gt;            orderlogItems.Clear();&lt;br /&gt;            &lt;br /&gt;            Sr.Close();&lt;br /&gt;&lt;br /&gt;        }&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/23529/</id>
    <title type="text">Без статуса грустно http://forum.rts.micex.ru/viewtopic.asp?t=24197 Стаканы не собрать правильно</title>
    <published>2013-01-18T13:03:42Z</published>
    <updated>2013-01-18T13:03:53Z</updated>
    <author>
      <name>Mikhail Sukhov</name>
      <uri>https://stocksharp.com/users/201/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">Без статуса грустно &lt;a target="_blank" rel="nofollow" href="https://stocksharp.com/away/?u=AQAAAAAAAADqsfI-TfIm12sk6cf5BEkcVcyq8chzwX8T2noRxsvr5covr2zhw2XxONjrMAv2L58dN_wkPbw79fyh40DdkSSx" title="http://forum.rts.micex.ru/viewtopic.asp?t=24197 "&gt;http://forum.rts.micex.ru/viewtopic.asp?t=24197 &lt;/a&gt;Стаканы не собрать правильно</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/23528/</id>
    <title type="text">Добрый день, извините за беспокойство. Задача следующая есть своя история full ордерлога в формате: ...</title>
    <published>2013-01-18T11:18:24Z</published>
    <updated>2013-01-18T12:05:48Z</updated>
    <author>
      <name>Андрей Шабанов</name>
      <uri>https://stocksharp.com/users/16691/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">Добрый день, извините за беспокойство.&lt;br /&gt;Задача следующая есть своя история full ордерлога в формате:&lt;br /&gt;&lt;br /&gt;#SYMBOL,SYSTEM,TYPE,ID,ACTION,PRICE,VOLUME,ID_DEAL,PRICE_DEAL&lt;br /&gt;&lt;br /&gt;сделки со шлюза поступают в формате:&lt;br /&gt;&lt;br /&gt;RIH3,F,B,20130111190000261,9746301221,1,164960.00000,1,0,0&lt;br /&gt;RIH3,F,B,20130111190000261,9746301221,2,164960.00000,1,682802371,157370.00000&lt;br /&gt;RIH3,F,S,20130111190000261,9746300660,2,157370.00000,1,682802371,157370.00000&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;соответственно я хочу их добавить к той историии что пишет гидра.&lt;br /&gt;вопрос1. RIM1@RTS.  RIM1@RTS - security.id, а security.UnderlyingSecurityId это что?&lt;br /&gt;&lt;br /&gt;вопрос2. для строчек с action = 0 || 1 trade=null и вся информация пишется в ордер в частности:&lt;br /&gt;id,time,direction,state,security,price,volume. можно ли остальные поля оставлять непроинициализированные. на какие поля могут выбрасываться исключения при тестировании. например order.status?&lt;br /&gt;вопрос3. несмотря на то, что security.decimal=0&lt;br /&gt;&lt;div class="code"&gt;&lt;strong&gt;Code&lt;/strong&gt;&lt;div class="innercode"&gt;&lt;pre class="brush:plain"&gt;

 order.Price = Decimal.Parse(Split[6], CultureInfo.InvariantCulture);
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt; &lt;br /&gt;естественно пишет в это поле цену со всеми нулями. как этого избежать (если не хочется в ручную сплитить цену)?&lt;br /&gt;&lt;br /&gt;вопрос4. самый важный для меня.&lt;br /&gt;что делать с order в orderlogitem когда проходит сделка? если его заполнять не будет ли дубляжа прихода заявок?&lt;br /&gt;я имею в виду что у нас уже есть заявка которая проинициализировала сделку от строчки&lt;br /&gt;&lt;em&gt;RIH3,F,B,20130111190000261,9746301221,1,164960.00000,1,0,0&lt;/em&gt;&lt;br /&gt;плюс заявка которая когда-то выставилась.&lt;br /&gt;&lt;br /&gt;и две строчки (в случае если больше одной заявки мы не снесли)&lt;br /&gt;&lt;em&gt;&lt;br /&gt;RIH3,F,B,20130111190000261,9746301221,2,164960.00000,1,682802371,157370.00000&lt;br /&gt;RIH3,F,S,20130111190000261,9746300660,2,157370.00000,1,682802371,157370.00000&lt;br /&gt;&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;и что писать в trade.status. спасибо.&lt;br /&gt;&lt;br /&gt;как мне кажется вид обработки одной строчки будет выглядеть примерно так:&lt;br /&gt;&lt;br /&gt;&lt;div class="code"&gt;&lt;strong&gt;Code&lt;/strong&gt;&lt;div class="innercode"&gt;&lt;br /&gt;string&amp;#91;&amp;#93; Split = CurrentLine.Split(&amp;#39;,&amp;#39;);&lt;br /&gt;                   if (Split&amp;#91;0&amp;#93; == security.Id)&lt;br /&gt;                   {&lt;br /&gt;                       var orderlogItem = new OrderLogItem();&lt;br /&gt;                       var order = new Order();&lt;br /&gt;                       var trade = new Trade();&lt;br /&gt;                       if (Split&amp;#91;5&amp;#93; == &amp;quot;2&amp;quot;)&lt;br /&gt;                       {&lt;br /&gt;                           order=null;&lt;br /&gt;                           trade.Time=DateTime.ParseExact(Split&amp;#91;3&amp;#93;, &amp;quot;yyyyMMddHHmmssfff&amp;quot;, CultureInfo.InvariantCulture, DateTimeStyles.None);&lt;br /&gt;                           trade.OrderDirection=(Split&amp;#91;2&amp;#93; == &amp;quot;B&amp;quot; ? OrderDirections.Buy : OrderDirections.Sell);&lt;br /&gt;                           trade.Security=security;&lt;br /&gt;                           trade.Id=Int64.Parse(Split&amp;#91;8&amp;#93;);&lt;br /&gt;                           trade.Price=Decimal.Parse(Split&amp;#91;9&amp;#93;, CultureInfo.InvariantCulture);&lt;br /&gt;                           trade.Volume=int.Parse(Split&amp;#91;7&amp;#93;);&lt;br /&gt;                           &lt;br /&gt;                       }&lt;br /&gt;                       else&lt;br /&gt;                       {&lt;br /&gt;                           trade=null;&lt;br /&gt;                           order.Time=DateTime.ParseExact(Split&amp;#91;3&amp;#93;, &amp;quot;yyyyMMddHHmmssfff&amp;quot;, CultureInfo.InvariantCulture, DateTimeStyles.None);&lt;br /&gt;                           order.Direction=(Split&amp;#91;2&amp;#93; == &amp;quot;B&amp;quot; ? OrderDirections.Buy : OrderDirections.Sell);&lt;br /&gt;                           order.Security=security;&lt;br /&gt;                           order.Id=Int64.Parse(Split&amp;#91;4&amp;#93;);&lt;br /&gt;                           order.Price=Decimal.Parse(Split&amp;#91;6&amp;#93;, CultureInfo.InvariantCulture);&lt;br /&gt;                           order.Volume=int.Parse(Split&amp;#91;7&amp;#93;);&lt;br /&gt;                           order.State = (Split&amp;#91;5&amp;#93; == &amp;quot;1&amp;quot;) ? OrderStates.Active : OrderStates.Done;&lt;br /&gt;                      &lt;br /&gt;                       }&lt;br /&gt;&lt;br /&gt;                      &lt;br /&gt;                       orderlogItem.Order = order;&lt;br /&gt;                       orderlogItem.Trade = trade;&lt;br /&gt;                       orderlogItems.Add(orderlogItem);&lt;br /&gt;                   }&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
</feed>