Проблемы со стаканом
Atom
07.04.2013
Asantasan


Здравствуйте. Не могу понять, как получать bestask, bestbid и т.д. от квика. Работать с документацией в должной мере еще не могу. Использую вот такой код:

private void button4_Click(object sender, RoutedEventArgs e)
        {
            var md = _trader.GetMarketDepth((Security)Securitites.SelectedItem);
              textBox2.Text=Convert.ToString(md.GetBestQuote(OrderDirections.Buy).Price);      
        
        }

Но выскакивает сообщение, что необходимо "зарезервированное слово new". Как вы понимаете, " new" результатов не дало. Подскажите пожалуйста.


Теги:


Спасибо:


VassilSanych

Фотография
Дата: 07.04.2013
Ответить


Asantasan: выскакивает сообщение, что необходимо "зарезервированное слово new". Как вы понимаете, " new" результатов не дало. Подскажите пожалуйста. вот

Спасибо:

Asantasan

Фотография
Дата: 07.04.2013
Ответить


Программа подклчается к квику, включается экспорт по dde, экспорт инструментов и портфелей, генерируется стакан. Но лучший бид по прежнему не выводится в textBox.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using StockSharp.Quik;
using Ecng.Xaml;
using StockSharp.BusinessEntities;
using StockSharp.Algo;
using Ecng.Common;
using Ecng.ComponentModel;
using System.Configuration;


namespace WpfApplication1
{
    /// <summary>
    /// Логика взаимодействия для MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }
        private QuikTrader _trader;
        private Security _lkoh;
        private MarketDepth _depth;
        const string secCode = "LKOH";
        public IEnumerable<Security> securities;
       public void ProcessMarketDepths(MarketDepth marketDepth)
        {
            //textBox1.Text=Convert.ToString(marketDepth.BestAsk);
        }
        private void button1_Click(object sender, RoutedEventArgs e)
       {
           //Security _lkoh = new Security();
         //  MarketDepth _depth = new MarketDepth(_lkoh);
            _trader = new QuikTrader(QuikTerminal.GetDefaultPath());
           /* _trader.NewSecurities +=securities => this.GuiAsync(() =>
            {
                Securitites.ItemsSource = _trader.Securities;
              //  _lkoh = securities.FirstOrDefault(sec => sec.Code == secCode);  
            //    _trader.RegisterMarketDepth(_lkoh);
               
    });*/

 
            _trader.NewPortfolios += portfolios => this.GuiAsync(() =>
            {

                Portfolios.ItemsSource = _trader.Portfolios;
            });


          
                  //  _trader.Connected += () => _trader.StartExport();
                //    _trader.Connect();

                   //_trader.MarketDepthsChanged += depths =>
                   // {
                   //     if (_depth == null && _lkoh != null)
                   //     {
                   //         _depth = depths.FirstOrDefault(d => d.Security == _lkoh);

                   //         if (_depth != null)
                   //         {
                   //            MessageBox.Show("Стакан Лукойла появился.","Dct xbnrfy");

                                
                   //         }
                   //     }
                  //  };
       
        
        }

        private void button2_Click(object sender, RoutedEventArgs e)
        {
 Security _lkoh = new Security();
           MarketDepth _depth = new MarketDepth(_lkoh);
         //  _trader.Connected += () => _trader.StartExport();
           _trader.Connect();
          // _trader = new QuikTrader(QuikTerminal.GetDefaultPath());
           _trader.NewSecurities += securities => this.GuiAsync(() =>
           {
               Securitites.ItemsSource = _trader.Securities;
                _lkoh = securities.FirstOrDefault(sec => sec.Code == secCode);  
                  _trader.RegisterMarketDepth(_lkoh);

           });
           _trader.StartExport(new[]{ _trader.SecuritiesTable, _trader.MyTradesTable, _trader.EquityPositionsTable,
_trader.EquityPortfoliosTable, _trader.OrdersTable });

           _trader.MarketDepthsChanged += depths =>
                      {
                          if (_depth == null && _lkoh != null)
                          {
                              _depth = depths.FirstOrDefault(d => d.Security == _lkoh);

                              if (_depth != null)
                              {
                                  MessageBox.Show("Стакан Лукойла появился.", "Dct xbnrfy");

                                  textBox1.Text = Convert.ToString(_lkoh.BestAsk.Price);
                              }
                             
                          
                          }
                      };
         
        }
            }
        }

  
       
        
        }

Код частично взят из примера. Но пример консольный и прекрасно работает. А мой нет.

Спасибо:


Добавить файлы через драг-н-дроп, , или вставить из буфера обмена.

loading
clippy