Вопросы новичка
Atom Ответить
20.12.2010


У меня пара вопросов новичка:

1) Есть ли у Плазы некое тестовое подключение, чтобы можно было разбираться, какие данные идут в потоке. Или доступ предоставляется только клиентам, платящим абонентскую плату?

2) Как решается, кто что будет делать в этом проекте? Вы, Михаил, "назначаете" или каждый просто говорит, кто что будет делать?

Теги:


Спасибо:




7 Ответов
Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 20.12.2010
Ответить


aspirant
У меня пара вопросов новичка:

1) Есть ли у Плазы некое тестовое подключение, чтобы можно было разбираться, какие данные идут в потоке. Или доступ предоставляется только клиентам, платящим абонентскую плату?

2) Как решается, кто что будет делать в этом проекте? Вы, Михаил, "назначаете" или каждый просто говорит, кто что будет делать?


1. Получал очень давно (но работает). Вроде бы сейчас через емейл на help@rts.ru
2. Вначале создаем список того, что нужно делать. Можно его сгруппировать по первично и вторично необходимому критерию. Затем высказываемся кто-что хочет делать. Ближе к концу недели напишу свой список (я уже в комментариях в коде прописал). Пишите и свои.
Спасибо:

skuvv

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


Цитата:
Дополнительно, замените в студии пробелы на табы. Навигация по коду стрелками усложняется.

Сделал разъединение PlazaDerivativeColumns на PlazaFutureColumns и PlazaOptionColumns. PlazaDerivativeColumns теперь абстрактный, и статические поля убраны. Тоесть, вместо написания myTable.Columns.Add(PlazaDerivativeColumns.ClientCode) теперь будет myTable.Columns.Add(PlazaColumns.Futures.ClientCode).

Вопрос. А почему классы в проектный файл csproj не добавляете?

Что-то я не совсем понимаю про абстрактные классы.
И что дает в классе
Код
internal PlazaPartColumns()
            : base(PlazaTableTypes.Position)
        {
        }
Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 16.01.2011
Ответить


skuvv Перейти
Что-то я не совсем понимаю про абстрактные классы.
И что дает в классе
Код
internal PlazaPartColumns()
            : base(PlazaTableTypes.Position)
        {
        }


Абстрактный класс в данном случае сделан для того, чтобы не было возможности создавать его экземпляр. По сути - это базовый класс. Но базовый класс PlazaColumns содержит три поля, которые присутствуют во всех таблицах. Единственное НО, по сути это каждое поле принадлежит своей таблице и не больше. Вот чтобы указать принадлежность этой таблицы, в базовый класс и передается информация о таблице от дочернего класса PlazaPartColumns (который как раз знает, какую именно таблицу он описывает, в отличие от базового).

Для чего нужен тип таблицы. Для того, чтобы предотвращать в пользовательском коде такие вещи:

plazaTrader.SecuritiesTable.Columns.Add(PlazaColumns.OrdersColumns.Direction)

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

skuvv

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


Возник такой вопрос:
Есть 4 потока: основной + потоки T1,T2,T3
допустим в Т1 получаем торговые данные, задача создать ивент на который можно подписаться в потоках T2,T3...
В Т2 подписываюсь на ивент, потом
Попробовал просто через ивенты - метод обрабатывается в Т1
Если так:
Код

в Т1:
ThreadPool.QueueUserWorkItem(new WaitCallback(WorkerMethod), (object)var);
в WorkerMethod сделать просто Invoke(new SimpleMessage(Method1), obj);
то ивент попадает в основной поток


Если сделать так:
Код

в Т1:
ThreadPool.QueueUserWorkItem(new WaitCallback(WorkerMethod), (object)var);
в WorkerMethod:
objectWithEvents.RaiseEvent(); //класс с ивентом
то ивент попадает в какой то левый поток(не созданный мной)
класс с ивентом:
public class ClassWithEvents
{
public event SimpleMessage subscribers;
public void RaiseEvent()
{
if (subscribers != null) subscribers("Message for subscriber");
}
}

Confused
Спасибо:

lkor

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


мож я чего не понимаю, но при рассмотрении BaseTrader, от которого унаследован PlazaTrader наткнулся на такую вещь

public virtual void CancelOrder
public virtual void CancelOrders
public virtual void ReRegisterOrder
public void RegisterOrder

соответественно ReSharper при определении метода RegisterOrder выдаёт предупреждение что объявляю такой метод, я скрываю исходый и так далее.

мне казжется что эти методы служат для управления заявками и собственно должны все переопределяться.
собственно вопрос - из каких соображений RegisterOrder не объявлен виртуальным?
Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 30.01.2011
Ответить


lkor Перейти

собственно вопрос - из каких соображений RegisterOrder не объявлен виртуальным?


Ошибка дизайна BaseTrader. А вообще переопределять нужно OnRegisterOrder OnCancelOrder
Спасибо:

lkor

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


Mikhail Sukhov Перейти
lkor Перейти

собственно вопрос - из каких соображений RegisterOrder не объявлен виртуальным?


Ошибка дизайна BaseTrader. А вообще переопределять нужно OnRegisterOrder OnCancelOrder


Ясно. Исправлю.
Спасибо:


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

loading
clippy