Беда с GetMarketDepth


Беда с GetMarketDepth
Atom
6/25/2010


Здравствуйте. такая проблема с GetMarketDepth . есть код

private void button1_Click_1(object sender, EventArgs e)
{
btnStartVolumeMeter.Enabled = false;
edtMarketDepthAfter.Items.Clear();
edtMarketDepthBefore.Items.Clear();
code = edtAssetCode.Text;

trader.NewTrades += trader_NewTrades;
dealsList.Clear();

}

void trader_NewTrades(IEnumerable<Trade> obj)
{
List<DealContainer> list2 = new List<DealContainer>();
if (obj.Count() == 1)
if (obj.First().Security.Code == code)
{
MarketDepth md = trader.GetMarketDepth(sec);

и так далее

проблеиа в том, что md всегда один и тот же - тот что был в момент
первго вызова trader_NewTrades.

запскаю шлюз так.
try
{
btnConnectToQuik.Enabled = false;
if (trader == null)
trader = new QuikTrader(edtPathToQuik.Text);
if (!trader.IsConnected)
trader.Connect();
if (trader.IsConnected)
addToLog("Подключился");
((QuikTrader)trader).StartDde(new[]
{ ((QuikTrader)trader).TradesTable,
((QuikTrader)trader).SecuritiesTable});
sec = trader.Securities.First(security =>
security.Code == edtAssetCode.Text);
((QuikTrader)trader).StartDde(sec);
}

таблицы, стаканы все есть

может быть проблема изза того, что я в обработчике события пытаюсь
получить стакан?

Tags:


Thanks:


1 2  >
Tauler

Avatar
Date: 6/25/2010
Reply


А иногда сткана вообще пустой - как будто ни разу от квика он не
пришел. Это может быть изза того, что ДДЕ забит выводом сделок?

Thanks:

Tauler

Avatar
Date: 6/25/2010
Reply


Нарыл на сайте

9. Сделал стакан MarketDepth потоковых. Это значит, что вызывая метод
MarketDepth.SetQuote можно не задавать индекс глубины. Для этого сам
стакан будет определять, какая это котировка (лучшая или нет), и тем
самым вытеснять старые котировки.

может тут какой то трабл? у меня версия 2.0

Thanks:

Tauler

Avatar
Date: 6/25/2010
Reply


ÓÄÅÌÁÌ ÐÒÏÓÔÏÊ ÔÅÓÔ

private void button1_Click(object sender, EventArgs e)
{
edtMarketDepthAfter.Items.Clear();
edtMarketDepthBefore.Items.Clear();
MarketDepth md1 = trader.GetMarketDepth(sec);
DateTime d1 = DateTime.Now;
Thread.Sleep(4000);

DateTime d2 = DateTime.Now;
MarketDepth md2 = trader.GetMarketDepth(sec);
setListBoxItems(edtMarketDepthBefore,
marketDepthVisualizator(md1, d1));
setListBoxItems(edtMarketDepthAfter,
marketDepthVisualizator(md2, d2));
}

ÓÔÁËÁÎÙ ÏÄÉÎÁËÏ×ÙÅ. âÕÍÁÇÁ - RIU0 - ÌÉË×ÉÄÎÁÑ, ÓÔÁËÁÎ ÚÁ 4 ÓÅËÕÎÄÙ
ÔÏÞÎÏ ÍÅÎÑÌÓÑ.

ÓËÒÉÎ ×ÙÌÏÖÉÌ × ÆÁÊÌÙ ÓÔÁËÁÎÙ.jpg

Thanks:

Mikhail Sukhov

Avatar
Date: 6/25/2010
Reply


1. Объект стакана MarketDepth создается всегда один раз и более не
пересоздается. Quote - создается всегда новая.
2. Конечно, если в момент запуска экспорта по стакану еще и
параллельно тысячами экспортируются все сделки, то вывод будет забит.
3. Потоковость MarketDepth.SetQuote не используется для текущих
ITrader. Это для новых версий.

Thanks:

Tauler

Avatar
Date: 6/25/2010
Reply


1. Объект стакана MarketDepth создается всегда один раз и более не
пересоздается. Quote - создается всегда новая.

поподробнее плиз. почему же у меня сткана всегда один и тот же? и как
это вылечить?
вродеиспользую GetMarketDepth...

Thanks:

Mikhail Sukhov

Avatar
Date: 6/25/2010
Reply


Запускали пример Sample? Стаканы там работают?

Thanks:

Tauler

Avatar
Date: 6/25/2010
Reply


я верю что работают :) щас полезу посмотрю как там сделано.

Thanks:

Tauler

Avatar
Date: 6/25/2010
Reply


Но вы все таки намекните, как взять из стакана текущие котировки в
текущий момент

Thanks:

Tauler

Avatar
Date: 6/25/2010
Reply


Совсем ничего не пойму. как же с MarketDepth то работать? для
получения актуальн остаканая его как то принудительно рефрешить надо?
или он сам рефрешится, по аналогии SecuritiesTable?

Thanks:

Tauler

Avatar
Date: 6/25/2010
Reply


Походу разобрался. сколько бы я не создавал экземпляров MarketDepth,
все они будут показывать текущее состояние стакана, а не его
отпечаток?

Thanks:
1 2  >

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

loading
clippy