Беда с 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<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);
}

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

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

Теги:


Спасибо:


< 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