Управление стаканом котировок

Управление стаканом котировок
Atom
3/30/2010
ddd888


Добрый день, Михаил! Как-то заметил, что стакан котировок отображается не совсем правильно - цена почему-то не снижается сверху вниз по всей глубине, а начинается с мимнимальной котировки и повышается сверху вниз по "биду", а в месте где начинается "аск" "переворачивается и снова начинается с самой маленькой котировки "аск" и так повышается до самого низа. Думал отсортировать данные на этапе прихода данных:

this.Trader.ProcessWellKnownDdeData += (name, dict) => // узнаем, что пришедшие данные отвечают за стакан if (name.Contains("stock")) // первичная сортировка по цене IEnumerable _curquotes = (IEnumerable)dict; _curquotes = _curquotes.OrderBy(t => t.Price); ... и т.д.

но это ни к чему не привело. Подскажите, пожалуйста, как правильно отсортировать данные?

Еще здесь был как-то уже вопрос про доступ к отдельным значениям котировок в стакане, но объяснения я так и не нашел. Как же все-такии это можно сделать (получить значение той или иной котировки в стакане для анализа)?


Tags:


Thanks:


<< < 3 4 5 6 7  > >>
Mikhail Sukhov

Avatar
Date: 4/20/2010
Reply


Да.

Thanks:

ddd888

Avatar
Date: 4/21/2010
Reply


Не получается запустить StrategyPositionManager в окне QuotesWindow. Сделал так:

в поле:

private QuikTrader _trader = MainWindow.Instance.Trader;

в конструкторе:

SecurityPositionManager _secmanager = new SecurityPositionManager(this.Security, _trader); this.SecPos.Content = _secmanager.Position.ToString(); _secmanager.PositionChanged += new Action(_secmanager_PositionChanged);

обработчик:

void _secmanager_PositionChanged() { this.SecPos.Content = _secmanager.Position.ToString();

но при любом раскладе _secmanager.Position.ToString(); показывает 0. StrategyPositionManager при этом работает нормально. Что сделано неправильно?

Thanks:

Mikhail Sukhov

Avatar
Date: 4/21/2010
Reply


this.Sync видели в примере? Я описал зачем это нужно в разделе Пользовательский интерфейс (GUI)

Thanks:

ddd888

Avatar
Date: 4/21/2010
Reply


Не ругайтесь, я не программист, а только учусь. :) Пример читал, но видимо не совсем понял как работает this.Sync так скать физически. Если цель его - обновление пользовательского окна, то тогда я добавляю его к обработчику и получаю:

void _secmanager_PositionChanged() { this.Sync(() => ); } Делаю тестовый трейд, но позиция по-прежнему - 0... :(

Thanks:

Mikhail Sukhov

Avatar
Date: 4/21/2010
Reply


А событие PositionChanged срабатывает? GetMyTrades(_secmanager.Security) что возвращает (скажем, если вызывать из ITrader.NewMyTrades)?

Thanks:

ddd888

Avatar
Date: 4/21/2010
Reply


Похоже, что не вызывается почему-то. А GetMyTrades вызывает исключение "в экземпляре объекта не задана ссылка на объект", хотя _secmanager создается при открытии окна.

Thanks:

Mikhail Sukhov

Avatar
Date: 4/21/2010
Reply


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

Thanks:

ddd888

Avatar
Date: 4/21/2010
Reply


Смотрю. При остановке программы в месте подписки на событие экземпляр _secmanager = null. Как это может быть, не те аргументы при создании SecurityPositionManager? Может, не тот шлюз? У меня шлюз тот же, что и в начале программы Sample, т.е. MainWindow.Instance.Trader.

Thanks:

ddd888

Avatar
Date: 4/22/2010
Reply


Заметил, что в топике по аналогичному вопросу [url=http://groups.google.ru/]http://groups.google.ru/[/url]

group/stocksharp/browse_thread/thread/7334ab4cd0ed9bd9) уже задавлся этот вопрос. Но Ваш ответ там касался добавления заявки в стретагию (Strategy.AddOrder.), а вопрос был про SecurityPnLManager. Тогда такой вопрос - чем работа SecurityPnLManager отличается от StrategyPnLManager? Как я понимаю в случае с SecurityPositionManager и StrategyPositionManager ситуация аналогичная?

Thanks:

ddd888

Avatar
Date: 4/22/2010
Reply


Все перепроверил еще раз: при создании экземпляра SecurityPositionManager его свойство Security остается = null, хотя в параметрах идет явная ссылка на экземпляр типа Security. Может, баг в конструкторе SecurityPositionManager?

Thanks:
<< < 3 4 5 6 7  > >>

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

loading
clippy