Беда с GetMarketDepth
Atom
25.06.2010
Tauler


Здравствуйте. такая проблема с 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 obj) { List list2 = new List(); 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); }

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

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


Теги:


Спасибо:


< 1 2 
Mikhail Sukhov

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


Не надо ничего создавать. Подписывайтесь за событие ITrader.QuotesChanged и пробегайтесь по стакану. Всегда будут новые котировки. Или как в примере. Таймер создавайте, по таймеру бегите по стакану. В упор не вижу, где может быть проблема. =)

Спасибо:

Tauler

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


нет, не прокатит. мне нужен стакан в момент появления сделкиЮ причем сохранять историю вида сделка/времясделки/снимок стакана. Проблемы нет, было неполное понимание работы MarketDepth :)

Спасибо:

Mikhail Sukhov

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


Есл говорить про квик, то лента сделок и стаканы обновляются независимо друг от друга.

Спасибо:

Tauler

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


Я к тому что способ похожий. просто я думал что GetMarketDepth возвращает снимок стакана, а не объект, кторый транслирует котировки

Спасибо:

Mikhail Sukhov

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


Что такое снимок и что значит трансляция?

Спасибо:

Tauler

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


Снимок - это сохраненныое состояние стакана в момент времени. трансляция - это как реализован класс MarketDepth - есть экземпляр, и данные в нем все время меняются.То есть чтобы мне сохранить историю сканаов за 10 секунд с периодом в одну секунду не прокатит делать

list.Add(GetMarketDepth(sec));

а надо будет сохранить данные в какой то класс, уже эти данные добавлят ьв коллекцию

Спасибо:

Mikhail Sukhov

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


Вот так можно копировать состояние стакана

list.Add(new MarketDepth(sec, GetMarketDepth(sec).ToArray()));

Спасибо:

Tauler

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


Спасибо! :) чет и не догадался :)

Спасибо:
< 1 2 

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

loading
clippy