Стакан. Вопросы новичка.

Стакан. Вопросы новичка.
Atom
4/20/2012
nuan


Извиняюсь сразу за глупые вопросы, но как и у многих начинающих, они возникают, а спросить не у кого.

в примере Sample , создаю новую форму, далее в ней код:
Code
namespace Sample
{
	using System;
	using System.Collections.ObjectModel;
	using System.Linq;
	using System.Threading;
	using System.Windows;
	using System.Windows.Controls;

	using Ecng.Collections;
	using Ecng.Common;
	using Ecng.Xaml;

	using StockSharp.BusinessEntities;
	using StockSharp.Quik;
	using StockSharp.Algo;
	
	public partial class bot : Window
	{
		
		private static Security _lkoh;
		private static MarketDepth _depth;
		public bot()
		{
			
			
			InitializeComponent();
			_lkoh.Code="LKOH";
			MainWindow.Instance.Trader.RegisterQuotes(_lkoh);
			_depth=MainWindow.Instance.Trader.GetMarketDepth(_lkoh);
			st.Content=_depth.Asks[0].Price.ToString();
		}
		public ObservableCollection<Security> Securities { get; private set; }
	}
}

Соответственно после вызова окна ругается. Почему, понять не могу.

Tags:


Thanks:


1 2 3  >
Кот Матроскин

Avatar
Date: 4/20/2012
Reply


Что это есть такое:
Code
_lkoh.Code="LKOH";

Ты бумагу ни получил с биржи, ни создал (как в эмуляции)
Пытаясь просто присвоить ей код Лукойла, ты ничего не добьешься
Thanks:

nuan

Avatar
Date: 4/20/2012
Reply


Подскажите как нужно!
Thanks:

Alexander

Avatar
Date: 4/20/2012
Reply


nuan
Подскажите как нужно!


Смотрите примеры что идут в архиве
Thanks:

nuan

Avatar
Date: 4/20/2012
Reply


Code



namespace Sample
{
	using System;
	using System.Collections.ObjectModel;
	using System.Linq;
	using System.Threading;
	using System.Windows;
	using System.Windows.Controls;

	using Ecng.Collections;
	using Ecng.Common;
	using Ecng.Xaml;

	using StockSharp.BusinessEntities;
	using StockSharp.Quik;
	using StockSharp.Algo;
	
	public partial class bot : Window
	{
		
		private static Security _lkoh;
		private static MarketDepth _depth;
		public bot()
		{
			
			
			InitializeComponent();
			const string secCode = "LKOH";
			
			MainWindow.Instance.Trader.NewSecurities += securities =>
						{
							if (_lkoh == null)
							{
								// находим Лукойл и присваиваем ее переменной lkoh
								_lkoh = securities.FirstOrDefault(sec => sec.Code == secCode);

								if (_lkoh != null)
								{
									//Console.WriteLine("Инструмент Лукойл появился.");

									// запускаем экспорт стакана
									MainWindow.Instance.Trader.RegisterQuotes(_lkoh);
									/*
									if (_portfolio != null && _depth != null)
										waitHandle.Set();*/
								}
							}
						};
			_depth=MainWindow.Instance.Trader.GetMarketDepth(_lkoh);
			st.Content=_depth.Asks[0].Price.ToString();
		}
		public ObservableCollection<Security> Securities { get; private set; }
	}
}

Делаю как в примере.
Просто не совсем понимаю принцип получения стакана.
Был бы подробный алгоритм.
В документации все описано довольно скудно.
Был бы простой пример.
Thanks:

OvcharenkoVI

Avatar
Date: 4/20/2012
Reply


А почему инструмент получается не в MainWindow?

Напиши скайп, вечерком скину свою программку работающую, напишу комментарии
Thanks:

Творог

Avatar
Date: 4/20/2012
Reply


А как получить цену и объём определённой очереди? Например цену 3-го бида в стакане.
Thanks:

Творог

Avatar
Date: 4/20/2012
Reply


Насколько я понимаю, нужно создать коллекцию и затем по индексу ретривить цену и объём заявок в стакане. В QPILE так, а в ООП также делается?
Thanks:

Кот Матроскин

Avatar
Date: 4/21/2012
Reply


Под шумок и я задам вопросик для маленьких [blush]. Что может означать двойной знак вопроса ?? в строке:
Code
var result = value as IIndicatorValue ?? input.SetValue(value);
Thanks:

BigBen

Avatar
Date: 4/21/2012
Reply


Кот Матроскин
Под шумок и я задам вопросик для маленьких [blush]. Что может означать двойной знак вопроса ?? в строке:
Code
var result = value as IIndicatorValue ?? input.SetValue(value);


В книгах, например, пишут об этом так:
"Попытка преобразовать обнуляемый объект в его базовый тип путем приведения типов обычно приводит к генерированию исключения System.InvalidOperationException, если обнуляемый объект содержит пустое значение.
Это может произойти, например, в том случае, если значение обнуляемого объекта присваивается переменной его базового типа с помощью приведения типов. Появления данного исключения можно избежать, если воспользоваться оператором ??, называемым нулеобъединяющим оператором. Этот оператор позволяет указать значение, которое будет использоваться по умолчанию, если обнуляемый объект содержит пустое значение. Он также исключает потребность в приведении типов.
Ниже приведена общая форма оператора ??.

обнуляемый_объект ?? значение_по_умолчанию

Если обнуляемый_объект содержит конкретное значение, то результатом операции ?? будет именно это значение. В противном случае результатом операции ?? окажется значение_по_умолчанию."

Читайте литературу!
Thanks: Кот Матроскин

Кот Матроскин

Avatar
Date: 4/21/2012
Reply


Да я прежде чем написать вопрос вчера две книги просмотрел + MDSN + Yandex - кругом ни слова про "??" ((((
Не подскажешь первоисточник))?
За ответ большое спасибо
Thanks:
1 2 3  >

Attach files by dragging & dropping, , or pasting from the clipboard.

loading
clippy