Гуи клиент на WPF. Для тех, кто не занят.


Гуи клиент на WPF. Для тех, кто не занят.
Atom
30.01.2011


Предлагаю написать что-то типа Sample или SampleSmart, чтобы можно было визуально тыкать и смотреть результаты. + отправлять заявки и ждать по ним сделки. Видеть стаканы. Кто займется?

Теги:


Спасибо:


<< < 2 3 4 5  >
aspirant

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


Mikhail Sukhov Перейти
Все: инструменты, заявки, сделки, тики, поза. Кастомные потоки пока не так интересны. Нужен минимум, чтобы с заявками протестить и убедиться насчет минимального функционала.

Я сейчас вынес это в отдельный метод:
Код
public void StartListeners()
{
    // вот здесь как раз и заполняются метаданные для всех потоков плазы
    // opt_vcb - Справочник торгуемых активов (опционов)
    _plazaStreamManager.AddStream(new PlazaColumnSet(PlazaTableRegistry.OptVcb), TRequestType.RT_COMBINED_DYNAMIC);
            
    // Запускаем _plazaStreamManager, данные из потоков приходят в plazaStreamManager_NewData
    _plazaStreamManager.Start();
}


Вопрос: подключаться ко всем потокам или дать возможность клиенту выбирать, что ему нужно. Для этого я создал перечисление PlazaMarketData. Тогда метод будет выглядеть вот так:
Код
public void StartListeners(PlazaMarketData marketData)
{
    // вот здесь как раз и заполняются метаданные для всех потоков плазы

    if ((marketData & PlazaMarketData.Options) > 0)
    {
        // opt_vcb - Справочник торгуемых активов (опционов)
        _plazaStreamManager.AddStream(new PlazaColumnSet(PlazaTableRegistry.OptVcb), TRequestType.RT_COMBINED_DYNAMIC);
    }
            
    // Запускаем _plazaStreamManager, данные из потоков приходят в plazaStreamManager_NewData
    _plazaStreamManager.Start();
}


Спасибо:

Mikhail Sukhov

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


aspirant Перейти

Вопрос: подключаться ко всем потокам или дать возможность клиенту выбирать, что ему нужно. Для этого я создал перечисление PlazaMarketData. Тогда метод будет выглядеть вот так:
Код
public void StartListeners(PlazaMarketData marketData)
{
    // вот здесь как раз и заполняются метаданные для всех потоков плазы

    if ((marketData & PlazaMarketData.Options) > 0)
    {
        // opt_vcb - Справочник торгуемых активов (опционов)
        _plazaStreamManager.AddStream(new PlazaColumnSet(PlazaTableRegistry.OptVcb), TRequestType.RT_COMBINED_DYNAMIC);
    }
            
    // Запускаем _plazaStreamManager, данные из потоков приходят в plazaStreamManager_NewData
    _plazaStreamManager.Start();
}



Я бы сделал так:
Код
public void StartListeners(params PlazaTable[] tables)
{
    foreach (var table in tables)
_plazaStreamManager.Add(table, TRequestType.RT_COMBINED_DYNAMIC);
            
    // Запускаем _plazaStreamManager, данные из потоков приходят в plazaStreamManager_NewData
    _plazaStreamManager.Start();
}
Спасибо:

aspirant

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


Mikhail Sukhov Перейти
Я бы сделал так:
Код
public void StartListeners(params PlazaTable[] tables)
{
    foreach (var table in tables)
_plazaStreamManager.Add(table, TRequestType.RT_COMBINED_DYNAMIC);
            
    // Запускаем _plazaStreamManager, данные из потоков приходят в plazaStreamManager_NewData
    _plazaStreamManager.Start();
}


Да, так будет удобнее
Спасибо:

aspirant

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


Утром вспомнил, почему решил подключаться к потокам через перечисление PlazaMarketData. Хочу предложить два варианта подключения через PlazaTrader:
  1. Подключение к стандартным стримам, данные которых будут перегоняться в стандартные объекты. Здесь используется метод с моей сигнатурой, чтобы контроллировать, какие потоки запрашиваются с сервера.
  2. Подключение к любым потокам с настраиваемым набором колонок. Здесь используется твоя сигнатура. Данные будут выдаваться клиенту в "сыром формате".
Спасибо:

Mikhail Sukhov

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


aspirant Перейти
Утром вспомнил, почему решил подключаться к потокам через перечисление PlazaMarketData. Хочу предложить два варианта подключения через PlazaTrader:
  1. Подключение к стандартным стримам, данные которых будут перегоняться в стандартные объекты. Здесь используется метод с моей сигнатурой, чтобы контроллировать, какие потоки запрашиваются с сервера.
  2. Подключение к любым потокам с настраиваемым набором колонок. Здесь используется твоя сигнатура. Данные будут выдаваться клиенту в "сыром формате".


Хм, а почему PlazaTable не использовать и для того, и для другого?
Спасибо:

aspirant

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


Mikhail Sukhov Перейти
Хм, а почему PlazaTable не использовать и для того, и для другого?


С помощью PlazaTable я собираюсь описать все таблицы в потоках плазы папки (см. содержимое C:\Program Files (x86)\P2FORTSGate\Scheme ). Мы ведь не собираемся перегонять в стандартные объекты все таблицы? А если использовать только твою сигнатуру, клиент сможет запрашивать данные не только из основных таблиц (opt_vcb и т.д.), но и всякую эзотерику. Кроме того таблицы стаканов - тоже будут описаны при помощи PlazaTable.

Кстати, твой метод правильнее будет объявляться вот так:
Код
public void StartListeners(params PlazaColumnList[] tables)


PlazaTable знает только название таблицы в потоке, название схемы и название самого потока. С помощью PlazaColumnList я буду создавать схемы (ini-файлы). Вчера я хотел это делать с помощью PlazaColumnSet.
Спасибо:

Mikhail Sukhov

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


aspirant Перейти
Кстати, твой метод правильнее будет объявляться вот так:
Код
public void StartListeners(params PlazaColumnList[] tables)



А как же PlazaTable.Columns?
Спасибо:

aspirant

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


Mikhail Sukhov Перейти
А как же PlazaTable.Columns?

Мне кажется правильнее или удобнее будет, если один класс (PlazaTable) отвечает за описание метаданных, а другой (PlazaColumnList) - за создание наборов колоннок/полей для получения данных из потоков. Посмотри: я только что залил обновленный PlazaTableRegistry, а также всех наследников PlazaColumns, отвечающих за опционы.
Спасибо:

Mikhail Sukhov

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


aspirant Перейти
Mikhail Sukhov Перейти
А как же PlazaTable.Columns?

Мне кажется правильнее или удобнее будет, если один класс (PlazaTable) отвечает за описание метаданных, а другой (PlazaColumnList) - за создание наборов колоннок/полей для получения данных из потоков.


Для меня выделенное - синонимы. В чем разница?
Спасибо:

aspirant

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


Mikhail Sukhov Перейти
Для меня выделенное - синонимы. В чем разница?


Сегодня вечером постараюсь ответить. Пока другой вопрос: инструменты на примере опционов - это

opt_vcb - Справочник торгуемых активов

или

opt_sess_contents - Cправочник торгуемых инструментов[confused]



Спасибо:
<< < 2 3 4 5  >

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

loading
clippy