﻿<?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">Чтение и вывод сделок из архива Гидры</title>
  <id>~/topic/2706/chtenie-i-vyvod-sdelok-iz-arhiva-gidry/</id>
  <rights type="text">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  <updated>2026-04-11T07:02:58Z</updated>
  <logo>https://stocksharp.com/images/logo.png</logo>
  <link href="https://stocksharp.com/handlers/atom.ashx?category=topic&amp;id=2706" rel="self" type="application/rss+xml" />
  <entry>
    <id>https://stocksharp.com/posts/m/19129/</id>
    <title type="text">Здравствуйте! Я изучаю C# и библиотеку S#, до этого имел дело лишь с Бейсиком и Паскалем в пределах ...</title>
    <published>2012-05-19T17:00:28Z</published>
    <updated>2012-05-21T06:36:27Z</updated>
    <author>
      <name>Доктор Сальватор</name>
      <uri>https://stocksharp.com/users/28547/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">Здравствуйте!&lt;br /&gt;Я изучаю C# и библиотеку S#, до этого имел дело лишь с Бейсиком и Паскалем в пределах университетского курса. Для самообучения решил написать программу, которая берёт из архива Гидры котировки ценной бумаги и выводит их в таблицу. Проще говоря, решил сделать программу-аналог окна Гидры, которое в исходниках называется &amp;quot;TradesWindow.xaml&amp;quot;. В процессе написаня я столкнулся с двумя трудностями:&lt;br /&gt;1)Привязку данных к GridViewColumn удаётся осуществить только с помощью вставки кода DisplayMemberBinding=&amp;quot;{Binding Path=Id}&amp;quot; в окно редактора XAML. А как сделать это с помощью средств Visual Studio (в разделе DataContext пусто)?&lt;br /&gt;2)При отладке компилятор пишет: &lt;br /&gt;Ошибка	2	Требуется определение типа или пространства имен, либо признак конца файла	&lt;br /&gt;Ошибка	3	Элемент &amp;quot;storage&amp;quot; не существует в текущем контексте.&lt;br /&gt;Ошибка	4	Элемент &amp;quot;security&amp;quot; не существует в текущем контексте.	&lt;br /&gt;Ошибка	1	Требуется &amp;quot;}&amp;quot;&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;pre class="brush:csharp"&gt;

namespace Sdelki
{
    using System;
    using System.Collections.Generic;
    using System.IO;
    using System.Linq;
    using System.Windows;
    using System.Xml.Linq;
    using System.Windows.Forms;

    using Ecng.Common;
    using Ecng.Interop;
    using Ecng.Serialization;
    
    using StockSharp.BusinessEntities;
    using StockSharp.Algo.Storages;
   
    using Microsoft.Win32;
    using MessageBox = Microsoft.Windows.Controls.MessageBox;

    public partial class MainWindow
    {
        public MainWindow()
        {
            InitializeComponent();
        }

        //Указываем путь к базе данных
        private void _Fail_Click(object sender, RoutedEventArgs e)
        {
            var dlg = new FolderBrowserDialog();

            if (!_Baza.Text.IsEmpty())
                dlg.SelectedPath = _Baza.Text;

            if (dlg.ShowDialog() == System.Windows.Forms.DialogResult.OK)
            {
                _Baza.Text = dlg.SelectedPath;
            }
        }

        //Выводим сделки в таблицу
        private void _Sdelki(object sender, RoutedEventArgs e)
        {

            //Проверяем, указан ли путь к базе данных
            if (_Baza.Text.IsEmpty() || !Directory.Exists(_Baza.Text))
            {
                MessageBox.Show(this, &amp;quot;Неправильный путь.&amp;quot;);
                return;
            }

            // Создаем инструмент, который будем выводить в таблицу
            var security = new Security
            {
                Id = &amp;quot;RIU9@RTS&amp;quot;,
                Code = &amp;quot;RIU9&amp;quot;,
                Name = &amp;quot;RTS-9.09&amp;quot;,
                MinStepSize = 5,
                MinStepPrice = 2,
                Exchange = Exchange.Test,
            };

            // Создаём хранилище, через которое будет производиться доступ к тиковой 
            // и котировочной базе данных
            var storage = new TradingStorage(new InMemoryStorage())
            {
                BasePath = _Baza.Text
            };

          //Ошибка 1   
          var tradeStorage = storage.GetTradeStorage(security);

            //Выводим сделки в таблицу
          private void FindedTrades_SelectionChanged(object sender, System.Windows.Controls.SelectionChangedEventArgs e)
            {

            //Ошибка 3 и Ошибка 4  
            FindedTrades.ItemsSource = storage.GetTradeStorage(security, _Baza.Text)
                      .Load();  
            }
        }
    }
// Ошибка 2
} 
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;Я понимаю, что у профессиональных программистов мои вопросы вызовут улыбку [biggrin] , ибо для них тут нет сложностей. Но я бьюсь над этим второй день и чего только не перепробовал, но увы и ах... Подозреваю, что собака порылась в закрытых полях и свойствам для их чтения. Подскажите, в чём моя ошибка? И скажите пожалуйста, как вставлять код в сообщение так, чтобы он выглядел как в окне редактора Visual Studio?</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/19135/</id>
    <title type="text">Вот как простой пример. CS using System; using System.Data; using System.Windows; using System.Windo...</title>
    <published>2012-05-19T19:32:14Z</published>
    <updated>2012-05-19T19:32:14Z</updated>
    <author>
      <name>Moadip</name>
      <uri>https://stocksharp.com/users/5973/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">Вот как простой пример.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;CS&lt;/b&gt;&lt;br /&gt;&lt;div class='spoilertitle'&gt;&lt;input type='button' value='Show spoiler' class='btn btn-primary' onclick="toggleSpoiler(this, 'spolier_4437bc8f034d4629b8afcd4ff9bc8497');" title='Show spoiler' /&gt;&lt;/div&gt;&lt;div class='spoilerbox' id='spolier_4437bc8f034d4629b8afcd4ff9bc8497' style='display:none'&gt;&lt;br /&gt;&lt;div class="code"&gt;&lt;strong&gt;Code&lt;/strong&gt;&lt;div class="innercode"&gt;&lt;pre class="brush:csharp"&gt;

using System;
using System.Data;
using System.Windows;
using System.Windows.Forms;
using StockSharp.Algo.Storages;
using Ecng.Serialization;
using Ecng.Common;
using StockSharp.BusinessEntities;

namespace TradesTable
{
    public partial class MainWindow
    {
        public MainWindow()
        {
            InitializeComponent();
            StartDate.Value = DateTime.Today;
            EndDate.Value = DateTime.Today;
        }

        private void Load_Click(object sender, RoutedEventArgs e)
        {
			var security = new Security
			{
				Id = &amp;quot;RIM2@RTS&amp;quot;, 
				Code = &amp;quot;RIM2&amp;quot;,
				Name = &amp;quot;RTS-6.12&amp;quot;,
				MinStepSize = 5,
				MinStepPrice = 3,
				Exchange = Exchange.Rts
			};

            var storage = new StorageRegistry(new InMemoryStorage());
            var tradeStorage = storage.GetTradeStorage(security, Path.Text);
            var reader = tradeStorage.CreateReader(StartDate.Value, EndDate.Value);

            var tradesTable = new DataTable(&amp;quot;tradeTable&amp;quot;);
            tradesTable.Columns.Add(&amp;quot;Time&amp;quot;);
            tradesTable.Columns.Add(&amp;quot;Price&amp;quot;);
            tradesTable.Columns.Add(&amp;quot;Vol&amp;quot;);
            tradesTable.Columns.Add(&amp;quot;Direction&amp;quot;);
            TradeGrid.ItemsSource = tradesTable.DefaultView;

            foreach (var trade in reader)
            {
                tradesTable.Rows.Add(trade.Time, trade.Price, trade.Volume, trade.OrderDirection);
            }
        }

        private void FindPath_Click(object sender, RoutedEventArgs e)
        {
            var dlg = new FolderBrowserDialog();

            if (!Path.Text.IsEmpty())
                dlg.SelectedPath = Path.Text;

            if (dlg.ShowDialog() == System.Windows.Forms.DialogResult.OK)
            {
                Path.Text = dlg.SelectedPath;
            }
        }
    }
}
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;b&gt;XAML&lt;/b&gt;&lt;br /&gt;&lt;div class='spoilertitle'&gt;&lt;input type='button' value='Show spoiler' class='btn btn-primary' onclick="toggleSpoiler(this, 'spolier_8b18efa5c2b04bb8bf0c94577d602016');" title='Show spoiler' /&gt;&lt;/div&gt;&lt;div class='spoilerbox' id='spolier_8b18efa5c2b04bb8bf0c94577d602016' style='display:none'&gt;&lt;div class="code"&gt;&lt;strong&gt;Code&lt;/strong&gt;&lt;div class="innercode"&gt;&lt;pre class="brush:csharp"&gt;

&amp;lt;Window x:Class=&amp;quot;TradesTable.MainWindow&amp;quot;
        xmlns=&amp;quot;http://schemas.microsoft.com/winfx/2006/xaml/presentation&amp;quot;
        xmlns:x=&amp;quot;http://schemas.microsoft.com/winfx/2006/xaml&amp;quot; xmlns:xctk=&amp;quot;http://schemas.xceed.com/wpf/xaml/toolkit&amp;quot;
        Title=&amp;quot;TradesTable&amp;quot; Height=&amp;quot;407&amp;quot; Width=&amp;quot;335&amp;quot; Topmost=&amp;quot;True&amp;quot; WindowStartupLocation=&amp;quot;CenterScreen&amp;quot;&amp;gt;
    &amp;lt;Grid&amp;gt;
        &amp;lt;xctk:DateTimePicker Name=&amp;quot;StartDate&amp;quot; Margin=&amp;quot;0,23,0,0&amp;quot; Height=&amp;quot;20&amp;quot; VerticalAlignment=&amp;quot;Top&amp;quot; HorizontalAlignment=&amp;quot;Left&amp;quot; Width=&amp;quot;153&amp;quot; /&amp;gt;
        &amp;lt;xctk:DateTimePicker Name=&amp;quot;EndDate&amp;quot; Margin=&amp;quot;0,23,1,0&amp;quot; Height=&amp;quot;20&amp;quot; VerticalAlignment=&amp;quot;Top&amp;quot; HorizontalAlignment=&amp;quot;Right&amp;quot; Width=&amp;quot;153&amp;quot; /&amp;gt;
        &amp;lt;Button Content=&amp;quot;Load&amp;quot; Height=&amp;quot;23&amp;quot; Margin=&amp;quot;0,44,1,0&amp;quot; Name=&amp;quot;Load&amp;quot; VerticalAlignment=&amp;quot;Top&amp;quot; Click=&amp;quot;Load_Click&amp;quot; Focusable=&amp;quot;False&amp;quot; /&amp;gt;
        &amp;lt;DataGrid AutoGenerateColumns=&amp;quot;true&amp;quot; Margin=&amp;quot;0,73,1,0&amp;quot; Name=&amp;quot;TradeGrid&amp;quot; /&amp;gt;
        &amp;lt;TextBox Height=&amp;quot;23&amp;quot; Name=&amp;quot;Path&amp;quot; VerticalAlignment=&amp;quot;Top&amp;quot; Margin=&amp;quot;0,0,30,0&amp;quot; /&amp;gt;
        &amp;lt;Button Content=&amp;quot;...&amp;quot; Height=&amp;quot;23&amp;quot; HorizontalAlignment=&amp;quot;Right&amp;quot; Margin=&amp;quot;0,-1,1,0&amp;quot; Name=&amp;quot;FindPath&amp;quot; VerticalAlignment=&amp;quot;Top&amp;quot; Width=&amp;quot;23&amp;quot; Click=&amp;quot;FindPath_Click&amp;quot; Focusable=&amp;quot;False&amp;quot; /&amp;gt;
    &amp;lt;/Grid&amp;gt;
&amp;lt;/Window&amp;gt;
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href='http://i38.fastpic.ru/big/2012/0519/7d/77d50513aaa66de80343c14ae5fd2b7d.png' class='lightview' data-lightview-options="skin: 'mac'" data-lightview-group='mixed'&gt;&lt;img src="http://i38.fastpic.ru/big/2012/0519/7d/77d50513aaa66de80343c14ae5fd2b7d.png" style='max-width: 600px;' alt=""/&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;А это насчет тегов&lt;br /&gt;&lt;br /&gt;&lt;a href='http://i38.fastpic.ru/big/2012/0519/9e/731f6187ec6ed365017d14ad052bb89e.png' class='lightview' data-lightview-options="skin: 'mac'" data-lightview-group='mixed'&gt;&lt;img src="http://i38.fastpic.ru/big/2012/0519/9e/731f6187ec6ed365017d14ad052bb89e.png" style='max-width: 600px;' alt=""/&gt;&lt;/a&gt;</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/19132/</id>
    <title type="text">Я понимаю, что у профессиональных программистов мои вопросы вызовут улыбку Скорее усталость. Выделяй...</title>
    <published>2012-05-19T18:46:43Z</published>
    <updated>2012-05-19T18:46:43Z</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/19129/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;Я понимаю, что у профессиональных программистов мои вопросы вызовут улыбку [biggrin]&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Скорее усталость. Выделяйте код тегами. Старайтесь сделать свое сообщение привлекательным для ответов.</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
</feed>