Проблемы со сделками, позициями
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 стало больше логов, особенно в плане заявок и сделок.

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

Теги:


Спасибо:




60 Ответов
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
Ответить


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

hobo

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


Акутально, я все никак не могу добиться повтора своей "проблемы со сделками, позициями".
Спасибо:

Serg

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


Подскажите, а что необходимо искать в логах или в чем собственно проблема?
Спасибо:

Mikhail Sukhov

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


Serg Перейти
Подскажите, а что необходимо искать в логах или в чем собственно проблема?


У вас видимо проблемы нет. Значит вам ее искать не нужно. У других она есть. Нужно понять причину. Как одно из решений для понимания https://stocksharp.ru/posts/m/10790/
Автор топика
Спасибо:

freelancer

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


Пока что-то вроде этого:

SPM: OrderId 4928838387 Volume 3 Balance 0 Pos -3
SPM: OrderId 4928838387 Volume 3 Balance 0 Pos -3
SPM: OrderId 4928838387 Volume 3 Balance 0 Pos -3
SPM: OrderId 4928838387 Volume 3 Balance 0 Pos -3
SPM: OrderId 4928838387 Volume 3 Balance 0 Pos -3
Спасибо:

Mikhail Sukhov

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


freelancer Перейти
Пока что-то вроде этого:

SPM: OrderId 4928838387 Volume 3 Balance 0 Pos -3
SPM: OrderId 4928838387 Volume 3 Balance 0 Pos -3
SPM: OrderId 4928838387 Volume 3 Balance 0 Pos -3
SPM: OrderId 4928838387 Volume 3 Balance 0 Pos -3
SPM: OrderId 4928838387 Volume 3 Balance 0 Pos -3


Итоговая поза правильная получается?
Автор топика
Спасибо:

freelancer

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


Mikhail Sukhov Перейти
freelancer Перейти
Пока что-то вроде этого:

SPM: OrderId 4928838387 Volume 3 Balance 0 Pos -3
SPM: OrderId 4928838387 Volume 3 Balance 0 Pos -3
SPM: OrderId 4928838387 Volume 3 Balance 0 Pos -3
SPM: OrderId 4928838387 Volume 3 Balance 0 Pos -3
SPM: OrderId 4928838387 Volume 3 Balance 0 Pos -3


Итоговая поза правильная получается?

да
Спасибо:

Mikhail Sukhov

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


freelancer Перейти

да


Тогда зачем логи? Интересны логи тогда, когда поза неправильная.
Автор топика
Спасибо:

Alexander

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


Прошло 10 дней со дня просьбы о сборе логов среди тех, у кого наблюдались проблемы...
0 ответов.
Не ждите когда за вас соберут другие.
Спасибо:

hobo

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


Сегодня, после долгих 10 дней, стокшарп услышал ваш "родительский" призыв в теме и сбился таки в подсчете позицииBigGrin
Отправил в личку.
Спасибо:

Mikhail Sukhov

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


hobo Перейти
Сегодня, после долгих 10 дней, стокшарп услышал ваш "родительский" призыв в теме и сбился таки в подсчете позицииBigGrin
Отправил в личку.


Заявки посылаются через одну стратегию или используется дочерние для этого?
Автор топика
Спасибо:

Alexander

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


Попутно вопрос ко всем - кто-нибудь наблюдал проблемы с позициями или иными событиями где-нибудь кроме QuikTrader?
Спасибо:

hobo

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


Mikhail Sukhov Перейти
Заявки посылаются через одну стратегию или используется дочерние для этого?

Все через одну, Александру подробнее ответил.
Спасибо:

Mikhail Sukhov

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


hobo Перейти
Mikhail Sukhov Перейти
Заявки посылаются через одну стратегию или используется дочерние для этого?

Все через одну, Александру подробнее ответил.


Залил на CodePlex файлы 3.2.12 с возможным фиксом (вероятность что это он очень высока).
Автор топика
Спасибо:

freelancer

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


Версия 3.2.11

Сработал стоп.

Лог:
23:17:10.869 | | SPM: OrderId 5098943951 Volume 2 Balance 0 Pos 2
23:17:10.885 | | SPM: OrderId 5098943951 Volume 2 Balance 0 Pos 2

Правило PositionChanged() не выполнилось
Спасибо:

Alexander

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


freelancer Перейти
Версия 3.2.11

Сработал стоп.

Лог:
23:17:10.869 | | SPM: OrderId 5098943951 Volume 2 Balance 0 Pos 2
23:17:10.885 | | SPM: OrderId 5098943951 Volume 2 Balance 0 Pos 2

Правило PositionChanged() не выполнилось


5098943951 - это стоп заявка или порождённая заявка (Derived order)?
Спасибо:
1 2 3  >

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

loading
clippy