Проблемы со сделками, позициями
Atom
11.08.2011


Судя по всему у некоторых участников на 3.2.xxx появился сабж. Давайте сделаем следующее для поиска причины:

1. Подпишемся на QuikTrader.ProcessDataError, QuikTrader.PreProcessDdeData, QuikTrader.NewOrders, QuikTrader.OrdersChanged, QuikTrader.OrdersFailed, QuikTrader.NewMyTrades, Strategy.NewOrder, Strategy.OrderChanged, Strategy.NewMyTrades.
2. Из этих событий сделайте логирование.
3. У стратегии сделайте логирование. В 3.2.6 стало больше логов, особенно в плане заявок и сделок.

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

Теги:


Спасибо:


1 2 3  > >>
President

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


для удобства логгирования пожелание переопределить ToString у Order, Trade и MyTrade - чтобы они выводили всю полезную для отладки информацию - а то самому приходится методом тыка выбирать что выводить Id, TransactionId, направление, цену, инструмент - и везде это пишеь а потом когда нужное событие возникло оказывается что забыл вывести еще чтото важное ;)
Спасибо:

Mikhail Sukhov

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


President Перейти
для удобства логгирования пожелание переопределить ToString у Order, Trade и MyTrade - чтобы они выводили всю полезную для отладки информацию - а то самому приходится методом тыка выбирать что выводить Id, TransactionId, направление, цену, инструмент - и везде это пишеь а потом когда нужное событие возникло оказывается что забыл вывести еще чтото важное ;)


ToString сейчас используется для удобного чтения в Debug (например, для портфелей и инструментов). Хотелось бы и для Order + MyTrade это оставить на будущее.
Спасибо:

vader

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


Какую именно информацию выводить?
Спасибо:

President

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


присоединяюсь к вопросу vader. пока решил выводить id, transactionid, security code, direction, volume, price, time для трейдов и Exception там где он приходит. было бы проще: получил параметр в евент и его и вывожу (он сам умеет выводить через ToString все что нужно для отладки. а если там коллекция то и она както вывелась)

также FYI
QuikTrader.PreProcessDdeData событие отсутствует
Спасибо:

Mikhail Sukhov

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


vader Перейти
Какую именно информацию выводить?


А вот не знаю. Пришлите, посмотрим, хватает ли.
Спасибо:

hobo

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


Отправил Вам, Михаил, в личку.
Спасибо:

Mikhail Sukhov

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


hobo Перейти
Отправил Вам, Михаил, в личку.


Да, получил, спасибо. Будем разбираться.
Спасибо:

Mikhail Sukhov

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


Кое-что удалось накопать. Была одна ошибка. Приводила ли она ко всем проблемам найденным пока сложно сказать. В 3.2.11 будет доступен фикс.
Спасибо:

Mikhail Sukhov

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


Mikhail Sukhov Перейти
Кое-что удалось накопать. Была одна ошибка. Приводила ли она ко всем проблемам найденным пока сложно сказать. В 3.2.11 будет доступен фикс.


Ложная победа. Фикс не поменял ничего, так как он был ошибочным.

Просьба ко всем протестировать с таким PositionManager-ом (устанавливать его через Strategy.PositionManager):

Код
class TraceStrategyPositionManager : StrategyPositionManager
    {
        public TraceStrategyPositionManager(Strategy strategy, bool byOrders)
            : base(strategy, byOrders)
        {
        }
 
        protected override void OnOrderChanged(Order order)
        {
            Trace.WriteLine("SPM: OrderId {0} Volume {1} Balance {2} Pos {3}".Put(order.Id, order.Volume, order.Balance, order.GetPosition()));
            base.OnOrderChanged(order);
        }
    }
Спасибо:

Alexander

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


Уже никому не актуально? Проблема сама собой разрешилась?
Спасибо:
1 2 3  > >>

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

loading
clippy