← 返回

Не приходит событие OnNewMyTrades.

День добрый.

Вчера обновил StockSharp до версии 4.1.4 и обнаружил, что перестало приходить событие OnNewMyTrades. До обновления все работало. Делаю так:

  1. В методе OnStarted() стратегии подписываюсь на события:

                this
                    .WhenNewMyTrades()
                    .Do(ProcessNewTrades)
                    .Apply(this);

  1. Метод ProcessNewTrades() определен так:

protected void ProcessNewTrades(IEnumerable<MyTrade> trades)
{
}

  1. Позицию открываю через котирование:

protected void PositionOpen(OrderDirections direction)
{
            var strategy = new BestByPriceQuotingStrategy(direction, Volume);
            strategy.LogLevel = LogLevels.Info;
            ChildStrategies.Add(strategy);
}

До обновления у меня был переопределен метод OnNewMyTrades() - после обновления он также перестал вызываться.

Это я что-то неправильно делаю, или в библиотеке баг?

Еще из мелкого:

  • пропал extension method LastValue() для индикаторов.
  • в окошке StockSharp.Xaml.Monitor() отключили автоматическое изменение ширины колонок под их содержимое. Приходится теперь руками растаскивать. :)

本主题对您有帮助吗?

分享主题

评论 (30)

登录创建账户, 登录或注册以发表评论

Mikhail Sukhov
Mikhail Sukhov

Marco: День добрый.

Вчера обновил StockSharp до версии 4.1.4

Неудачный релиз, там много ошибок. Лучше сразу 4.1.5. Скоро его выложим на бокс.

Marco
Кот Матроскин
Кот Матроскин

Mikhail Sukhov: Лучше сразу 4.1.5. Скоро его выложим на бокс. Скачал с КодеПлекса из Транка последнюю версию - с индикаторами та же самая беда, проблема с LastValue

Mikhail Sukhov
Mikhail Sukhov

Кот Матроскин:

Mikhail Sukhov: Лучше сразу 4.1.5. Скоро его выложим на бокс. Скачал с КодеПлекса из Транка последнюю версию - с индикаторами та же самая беда, проблема с LastValue

Там теперь по другому. Это не беда, а изменился дизайн.

Кот Матроскин
Кот Матроскин

Mikhail Sukhov: Там теперь по другому. Это не беда, а изменился дизайн. Я правильно понял, что поменялась концепция использования индикаторов?

Marco
Marco 作者

Скачал версию 4.1.5 с Codeplex - сообщения OnNewMyTrades по-прежнему не приходят. :(

Mikhail Sukhov
Mikhail Sukhov

Marco: Скачал версию 4.1.5 с Codeplex - сообщения OnNewMyTrades по-прежнему не приходят. :(

Видимо какие-то другие ошибки.

Marco
Marco 作者

Mikhail Sukhov: Видимо какие-то другие ошибки.

Михаил, Вы имеете в виду ошибки в моем коде или в библиотеке? Я уверен, что это ошибка в StockSharp, т.к.:

  • До обновления библиотеки с версии 4.1.3 до 4.1.4-4.1.5 все работало отлично.
  • Переопределенный метод OnNewMyTrade() моей стратегии не вызывается вообще.

Я размещаю заявки через котирование, возможно, проблема в этом?

Mikhail Sukhov
Mikhail Sukhov

Marco: Я размещаю заявки через котирование, возможно, проблема в этом?

По подробнее схему работы. На обработчики ошибок подписывались?

Marco
Marco 作者

Mikhail Sukhov: По подробнее схему работы. На обработчики ошибок подписывались?

Схема работы в принципе описана в первом сообщении. Работаю через SmartCOM. Нужны ли еще какие-либо подробности? Сейчас я перекрыл метод OnNewMyTrades - он тоже не вызывается (в версии 4.1.3 - вызывался):


        protected override void OnNewMyTrades(IEnumerable<MyTrade> trades)
        {
            base.OnNewMyTrades(trades);
// my code here
         }

Повесил обработчики на Strategy.Error, Strategy.OrderCancelFailed, Strategy.OrderRegisterFailed в родительской стратегии - они не вызываются, ошибок в логе нет, исключений в процессе работы тоже не возникает.

esper
esper

Пробовали Strategy.WaitAllTrades в true поставить?

Marco
Marco 作者

esper: Пробовали Strategy.WaitAllTrades в true поставить?

Попробовал, не помогло. Выставлял одновременно и для основной стратегии, и для стратегии, через которую осуществляется котирование.

P.S.: Причем стратегия сделки видит, размер позиции при исполнении заявки изменяется.

Marco
Marco 作者

Спасибо, попробую. В предыдущих версиях библиотеки этого свойства не было.

esper
esper

Если для котирования выставить WaitAllTrades и смотреть NewMyTrades именно для стратегии котирования, сделки придут? Еще может помочь разобраться лог стартегий (корневой и котирования), где в обработчиках будет выводиться информация о сделках и заявках.

Marco
Marco 作者

Ok, попробую. Заметил, что иногда метод вызывается. 🤨

esper
esper

Если в кратце, то стратегия останавливается при наборе нужной позиции, позиция по умолчанию учитывается по балансу заявок. Когда стратегия останавливается, она удаляется из дочерних и отписывается от получения данных. Т.к. сделки могут придти уже после, то они никуда не попадут. Эта ситуация уже описывалась на форуме.

Marco
Marco 作者

Судя по логам, проблема возникает при одновременном запуске нескольких дочерних стратегий на котирование. У меня основная стратегия переворачивает позицию, размещая две отдельные заявки через котирование. Обе стратегии отрабатывают без ошибок, я вижу изменение позиции. Однако, OnNewMyTrades вызывается только для последней дочерней стратегии. WaitAllTrades для всех стратегий установлен в true. Кусок лога:


2012.10.01 22:56:58.330|       |SSSS_RIZ2@RTS_BPXXXXX-RF-01|Candle: 01.10.2012 22:56:00, 150040, 150050, 149940, 149950, 1290
2012.10.01 22:56:58.330|       |SSSS_RIZ2@RTS_BPXXXXX-RF-01|Signals: Buy=True, Sell=False, Short=False, Cover=True
2012.10.01 22:56:58.330|       |SSSS_RIZ2@RTS_BPXXXXX-RF-01|CLOSE POSITION: закрываем короткую позицию.
2012.10.01 22:56:58.499|       |BBPQS_RIZ2@RTS_BPXXXXX-RF-01|Стратегия запущена. [0,1]
2012.10.01 22:56:58.499|       |BBPQS_RIZ2@RTS_BPXXXXX-RF-01|Котирование на Buy объема 1.
2012.10.01 22:56:58.499|       |BBPQS_RIZ2@RTS_BPXXXXX-RF-01|Приостановка правил. _rulesSuspendCount 1.
2012.10.01 22:56:58.499|       |BBPQS_RIZ2@RTS_BPXXXXX-RF-01|Возобновление правил. _rulesSuspendCount 0.
2012.10.01 22:56:58.499|       |BBPQS_RIZ2@RTS_BPXXXXX-RF-01|Цена текущей NULL и лучшей 149930.
2012.10.01 22:56:58.499|       |BBPQS_RIZ2@RTS_BPXXXXX-RF-01|Лучший бид 149930 и лучший аск 149940.
2012.10.01 22:56:58.499|       |BBPQS_RIZ2@RTS_BPXXXXX-RF-01|Регистрация новой заявки на Buy с ценой 149930 и объемом 1.
2012.10.01 22:56:58.499|       |BBPQS_RIZ2@RTS_BPXXXXX-RF-01|Правило 'Регистрация заявки  68925592/0 (0x3492AF1)'. Подписалось на события.
2012.10.01 22:56:58.499|       |BBPQS_RIZ2@RTS_BPXXXXX-RF-01|Правило 'Ошибка регистрации заявки  68925592/0 (0x2E9B601)'. Подписалось на события.
2012.10.01 22:56:58.499|       |BBPQS_RIZ2@RTS_BPXXXXX-RF-01|Правило 'Полное исполнение  68925592/0 (0x340465A)'. Подписалось на события.
2012.10.01 22:56:58.499|       |Отмена заявки  OR Полное исполнение  OR Ошибка регистрации заявки |Правило 'Полное исполнение  68925592/0 (0x3C0D34D)'. Подписалось на события.
2012.10.01 22:56:58.499|       |Отмена заявки  OR Полное исполнение  OR Ошибка регистрации заявки |Правило 'Отмена заявки  68925592/0 (0x20975E0)'. Подписалось на события.
2012.10.01 22:56:58.499|       |Отмена заявки  OR Полное исполнение  OR Ошибка регистрации заявки |Правило 'Ошибка регистрации заявки  68925592/0 (0x149FB29)'. Подписалось на события.
2012.10.01 22:56:58.500|       |BBPQS_RIZ2@RTS_BPXXXXX-RF-01|Заявка 68925592 на Buy отправлена с ценой 149930 объемом 1.
2012.10.01 22:56:58.500|       |SSSS_RIZ2@RTS_BPXXXXX-RF-01|OPEN POSITION LONG: переворачиваемся в длинную позицию.
2012.10.01 22:56:58.612|Warning|BBPQS_RIZ2@RTS_BPXXXXX-RF-01|Заявка 68925592 в процессе регистрации.
2012.10.01 22:56:58.652|       |BBPQS_RIZ2@RTS_BPXXXXX-RF-01|Заявка 68925592 принята биржей.
2012.10.01 22:56:58.652|       |BBPQS_RIZ2@RTS_BPXXXXX-RF-01|Сброс счетчика ошибок регистрации с 0 до нуля.
2012.10.01 22:56:58.653|       |BBPQS_RIZ2@RTS_BPXXXXX-RF-01|Правило 'Регистрация заявки  68925592/9055325545 (0x3492AF1)'. Удаляется.
2012.10.01 22:56:58.653|       |BBPQS_RIZ2@RTS_BPXXXXX-RF-01|Правило 'Регистрация заявки  68925592/9055325545 (0x3492AF1)'. Освободило ресурсы.
2012.10.01 22:56:58.653|       |BBPQS_RIZ2@RTS_BPXXXXX-RF-01|Правило 'Ошибка регистрации заявки  68925592/9055325545 (0x2E9B601)'. Удаляется.
2012.10.01 22:56:58.653|       |BBPQS_RIZ2@RTS_BPXXXXX-RF-01|Правило 'Ошибка регистрации заявки  68925592/9055325545 (0x2E9B601)'. Освободило ресурсы.
2012.10.01 22:56:58.653|       |BBPQS_RIZ2@RTS_BPXXXXX-RF-01|Правило 'Ошибка регистрации заявки  68925592/9055325545 (0x2E9B601)'. Удалено.
2012.10.01 22:56:58.653|       |BBPQS_RIZ2@RTS_BPXXXXX-RF-01|Правило 'Регистрация заявки  68925592/9055325545 (0x3492AF1)'. Удаление.
2012.10.01 22:56:58.653|       |BBPQS_RIZ2@RTS_BPXXXXX-RF-01|Правило 'Ошибка регистрации заявки  68925592/9055325545 (0x2E9B601)'. Удаление.
2012.10.01 22:56:58.700|       |BBPQS_RIZ2@RTS_BPXXXXX-RF-01|Стратегия запущена. [0,2]
2012.10.01 22:56:58.700|       |BBPQS_RIZ2@RTS_BPXXXXX-RF-01|Котирование на Buy объема 1.
2012.10.01 22:56:58.700|       |BBPQS_RIZ2@RTS_BPXXXXX-RF-01|Приостановка правил. _rulesSuspendCount 1.
2012.10.01 22:56:58.701|       |BBPQS_RIZ2@RTS_BPXXXXX-RF-01|Возобновление правил. _rulesSuspendCount 0.
2012.10.01 22:56:58.701|       |BBPQS_RIZ2@RTS_BPXXXXX-RF-01|Цена текущей NULL и лучшей 149930.
2012.10.01 22:56:58.701|       |BBPQS_RIZ2@RTS_BPXXXXX-RF-01|Лучший бид 149930 и лучший аск 149940.
2012.10.01 22:56:58.701|       |BBPQS_RIZ2@RTS_BPXXXXX-RF-01|Регистрация новой заявки на Buy с ценой 149930 и объемом 1.
2012.10.01 22:56:58.701|       |BBPQS_RIZ2@RTS_BPXXXXX-RF-01|Правило 'Регистрация заявки  68925593/0 (0x2FDD00C)'. Подписалось на события.
2012.10.01 22:56:58.701|       |BBPQS_RIZ2@RTS_BPXXXXX-RF-01|Правило 'Ошибка регистрации заявки  68925593/0 (0x3525D68)'. Подписалось на события.
2012.10.01 22:56:58.701|       |BBPQS_RIZ2@RTS_BPXXXXX-RF-01|Правило 'Полное исполнение  68925593/0 (0x3A2796A)'. Подписалось на события.
2012.10.01 22:56:58.702|       |Полное исполнение  OR Все сделки заявки |Правило 'Полное исполнение  68925593/0 (0x37C361E)'. Подписалось на события.
2012.10.01 22:56:58.702|       |Полное исполнение  OR Все сделки заявки |Правило 'Все сделки заявки  68925593/0 (0x22ED07B)'. Подписалось на события.
2012.10.01 22:56:58.702|       |Отмена заявки  OR Полное исполнение  OR Все сделки заявки  OR Ошибка регистрации заявки |Правило 'Отмена заявки  68925593/0 (0x280CA52)'. Подписалось на события.
2012.10.01 22:56:58.702|       |Отмена заявки  OR Полное исполнение  OR Все сделки заявки  OR Ошибка регистрации заявки |Правило 'Ошибка регистрации заявки  68925593/0 (0x2C656B5)'. Подписалось на события.
2012.10.01 22:56:58.702|       |BBPQS_RIZ2@RTS_BPXXXXX-RF-01|Заявка 68925593 на Buy отправлена с ценой 149930 объемом 1.
2012.10.01 22:56:58.738|Warning|BBPQS_RIZ2@RTS_BPXXXXX-RF-01|Заявка 68925593 в процессе регистрации.
2012.10.01 22:56:58.803|Warning|BBPQS_RIZ2@RTS_BPXXXXX-RF-01|Заявка 68925593 в процессе регистрации.
2012.10.01 22:56:58.841|       |BBPQS_RIZ2@RTS_BPXXXXX-RF-01|Заявка 68925593 принята биржей.
2012.10.01 22:56:58.841|       |BBPQS_RIZ2@RTS_BPXXXXX-RF-01|Сброс счетчика ошибок регистрации с 0 до нуля.
2012.10.01 22:56:58.841|       |BBPQS_RIZ2@RTS_BPXXXXX-RF-01|Правило 'Регистрация заявки  68925593/9055325562 (0x2FDD00C)'. Удаляется.
2012.10.01 22:56:58.841|       |BBPQS_RIZ2@RTS_BPXXXXX-RF-01|Правило 'Регистрация заявки  68925593/9055325562 (0x2FDD00C)'. Освободило ресурсы.
2012.10.01 22:56:58.841|       |BBPQS_RIZ2@RTS_BPXXXXX-RF-01|Правило 'Ошибка регистрации заявки  68925593/9055325562 (0x3525D68)'. Удаляется.
2012.10.01 22:56:58.841|       |BBPQS_RIZ2@RTS_BPXXXXX-RF-01|Правило 'Ошибка регистрации заявки  68925593/9055325562 (0x3525D68)'. Освободило ресурсы.
2012.10.01 22:56:58.842|       |BBPQS_RIZ2@RTS_BPXXXXX-RF-01|Правило 'Ошибка регистрации заявки  68925593/9055325562 (0x3525D68)'. Удалено.
2012.10.01 22:56:58.842|       |BBPQS_RIZ2@RTS_BPXXXXX-RF-01|Правило 'Регистрация заявки  68925593/9055325562 (0x2FDD00C)'. Удаление.
2012.10.01 22:56:58.842|       |BBPQS_RIZ2@RTS_BPXXXXX-RF-01|Правило 'Ошибка регистрации заявки  68925593/9055325562 (0x3525D68)'. Удаление.

!!!!!!!!!!!!!!! Изменился размер позиции после первой сделки. OnNewMyTrades не вызывается 
2012.10.01 22:56:59.154|       |SSSS_RIZ2@RTS_BPXXXXX-RF-01|Новая позиция 0.
!!!!!!!!!!!!!!!

2012.10.01 22:56:59.154|       |BBPQS_RIZ2@RTS_BPXXXXX-RF-01|Новая позиция 1.
2012.10.01 22:56:59.154|       |BBPQS_RIZ2@RTS_BPXXXXX-RF-01|Позиция изменилась на 1. Оставшийся объем 0.
2012.10.01 22:56:59.154|       |BBPQS_RIZ2@RTS_BPXXXXX-RF-01|Заканчиваем котирование.
2012.10.01 22:56:59.155|       |BBPQS_RIZ2@RTS_BPXXXXX-RF-01|Стратегия останавливается. [0,2]
2012.10.01 22:56:59.155|       |Изменение стакана инструмента RIZ2@RTS|Правило 'Изменение стакана инструмента RIZ2@RTS (0xE6A592)'. Приостановлено.
2012.10.01 22:56:59.155|       |BBPQS_RIZ2@RTS_BPXXXXX-RF-01|Правило 'BBPQS_RIZ2@RTS_BPXXXXX-RF-01 - останавливается (0x65486A)'. Удаляется.
2012.10.01 22:56:59.155|       |BBPQS_RIZ2@RTS_BPXXXXX-RF-01|Правило 'BBPQS_RIZ2@RTS_BPXXXXX-RF-01 - останавливается (0x65486A)'. Освободило ресурсы.
2012.10.01 22:56:59.155|       |BBPQS_RIZ2@RTS_BPXXXXX-RF-01|Правило 'BBPQS_RIZ2@RTS_BPXXXXX-RF-01 - останавливается (0x65486A)'. Удаление.
2012.10.01 22:56:59.155|       |BBPQS_RIZ2@RTS_BPXXXXX-RF-01|Ожидание снятия всех активных заявок.
2012.10.01 22:56:59.155|       |BBPQS_RIZ2@RTS_BPXXXXX-RF-01|Правило 'Изменение стакана инструмента RIZ2@RTS (0xE6A592)'. Удаляется.
2012.10.01 22:56:59.155|       |Изменение стакана инструмента RIZ2@RTS|Правило 'Изменение стакана инструмента RIZ2@RTS (0xE6A592)'. Освободило ресурсы.
2012.10.01 22:56:59.155|       |BBPQS_RIZ2@RTS_BPXXXXX-RF-01|Правило 'Изменение стакана инструмента RIZ2@RTS (0xE6A592)'. Освободило ресурсы.
2012.10.01 22:56:59.155|       |BBPQS_RIZ2@RTS_BPXXXXX-RF-01|Правило 'Изменение стакана инструмента RIZ2@RTS (0xE6A592)'. Удалено.
2012.10.01 22:56:59.155|       |BBPQS_RIZ2@RTS_BPXXXXX-RF-01|Правило 'Полное исполнение  68925592/9055325545 (0x340465A)'. Удаляется.
2012.10.01 22:56:59.155|       |BBPQS_RIZ2@RTS_BPXXXXX-RF-01|Правило 'Полное исполнение  68925592/9055325545 (0x340465A)'. Освободило ресурсы.
2012.10.01 22:56:59.155|       |BBPQS_RIZ2@RTS_BPXXXXX-RF-01|Правило 'Полное исполнение  68925592/9055325545 (0x340465A)'. Удалено.
2012.10.01 22:56:59.155|       |BBPQS_RIZ2@RTS_BPXXXXX-RF-01|Правило 'Отмена заявки  68925592/9055325545 (0x20975E0) OR Полное исполнение  68925592/9055325545 (0x3C0D34D) OR Ошибка регистрации заявки  68925592/9055325545 (0x149FB29)'. Удаляется.
2012.10.01 22:56:59.155|       |Отмена заявки  OR Полное исполнение  OR Ошибка регистрации заявки |Правило 'Отмена заявки  68925592/9055325545 (0x20975E0)'. Освободило ресурсы.
2012.10.01 22:56:59.156|       |Отмена заявки  OR Полное исполнение  OR Ошибка регистрации заявки |Правило 'Полное исполнение  68925592/9055325545 (0x3C0D34D)'. Освободило ресурсы.
2012.10.01 22:56:59.156|       |Отмена заявки  OR Полное исполнение  OR Ошибка регистрации заявки |Правило 'Ошибка регистрации заявки  68925592/9055325545 (0x149FB29)'. Освободило ресурсы.
2012.10.01 22:56:59.156|       |BBPQS_RIZ2@RTS_BPXXXXX-RF-01|Правило 'Отмена заявки  68925592/9055325545 (0x20975E0) OR Полное исполнение  68925592/9055325545 (0x3C0D34D) OR Ошибка регистрации заявки  68925592/9055325545 (0x149FB29)'. Освободило ресурсы.
2012.10.01 22:56:59.156|       |BBPQS_RIZ2@RTS_BPXXXXX-RF-01|Правило 'Отмена заявки  68925592/9055325545 (0x20975E0) OR Полное исполнение  68925592/9055325545 (0x3C0D34D) OR Ошибка регистрации заявки  68925592/9055325545 (0x149FB29)'. Удалено.
2012.10.01 22:56:59.156|       |BBPQS_RIZ2@RTS_BPXXXXX-RF-01|Правило 'Изменение позиции (0x1D5AD11)'. Удаляется.
2012.10.01 22:56:59.156|       |BBPQS_RIZ2@RTS_BPXXXXX-RF-01|Правило 'Изменение позиции (0x1D5AD11)'. Освободило ресурсы.
2012.10.01 22:56:59.156|       |BBPQS_RIZ2@RTS_BPXXXXX-RF-01|Правило 'Изменение позиции (0x1D5AD11)'. Удаление.
2012.10.01 22:56:59.156|       |BBPQS_RIZ2@RTS_BPXXXXX-RF-01|Стратегия остановлена. [0,2]
2012.10.01 22:56:59.156|       |SSSS_RIZ2@RTS_BPXXXXX-RF-01|Правило 'BBPQS_RIZ2@RTS_BPXXXXX-RF-01 - остановлена (ChildStrategyList.OnChildProcessStateChanged) (0x2B85180)'. Удаляется.
2012.10.01 22:56:59.156|       |SSSS_RIZ2@RTS_BPXXXXX-RF-01|Правило 'BBPQS_RIZ2@RTS_BPXXXXX-RF-01 - остановлена (ChildStrategyList.OnChildProcessStateChanged) (0x2B85180)'. Освободило ресурсы.
2012.10.01 22:56:59.156|       |SSSS_RIZ2@RTS_BPXXXXX-RF-01|Правило 'BBPQS_RIZ2@RTS_BPXXXXX-RF-01 - остановлена (ChildStrategyList.OnChildProcessStateChanged) (0x2B85180)'. Удаление.

!!!!!!!!!!!!!!!!! Изменился размер позиции после второй сделки
2012.10.01 22:56:59.260|       |SSSS_RIZ2@RTS_BPXXXXX-RF-01|Новая позиция 1.
2012.10.01 22:56:59.261|       |BBPQS_RIZ2@RTS_BPXXXXX-RF-01|Новая позиция 1.
!!!!!!!!!!!!!!!!!

2012.10.01 22:56:59.261|       |BBPQS_RIZ2@RTS_BPXXXXX-RF-01|Позиция изменилась на 1. Оставшийся объем 0.
2012.10.01 22:56:59.261|       |BBPQS_RIZ2@RTS_BPXXXXX-RF-01|Заканчиваем котирование.
2012.10.01 22:56:59.261|       |BBPQS_RIZ2@RTS_BPXXXXX-RF-01|Стратегия останавливается. [0,1]
2012.10.01 22:56:59.261|       |Изменение стакана инструмента RIZ2@RTS|Правило 'Изменение стакана инструмента RIZ2@RTS (0x94F9AF)'. Приостановлено.
2012.10.01 22:56:59.261|       |BBPQS_RIZ2@RTS_BPXXXXX-RF-01|Правило 'BBPQS_RIZ2@RTS_BPXXXXX-RF-01 - останавливается (0x37DF1C8)'. Удаляется.
2012.10.01 22:56:59.261|       |BBPQS_RIZ2@RTS_BPXXXXX-RF-01|Правило 'BBPQS_RIZ2@RTS_BPXXXXX-RF-01 - останавливается (0x37DF1C8)'. Освободило ресурсы.
2012.10.01 22:56:59.261|       |BBPQS_RIZ2@RTS_BPXXXXX-RF-01|Правило 'BBPQS_RIZ2@RTS_BPXXXXX-RF-01 - останавливается (0x37DF1C8)'. Удаление.
2012.10.01 22:56:59.261|       |BBPQS_RIZ2@RTS_BPXXXXX-RF-01|Ожидание снятия всех активных заявок.
2012.10.01 22:56:59.261|       |BBPQS_RIZ2@RTS_BPXXXXX-RF-01|Правило 'Изменение стакана инструмента RIZ2@RTS (0x94F9AF)'. Удаляется.
2012.10.01 22:56:59.261|       |Изменение стакана инструмента RIZ2@RTS|Правило 'Изменение стакана инструмента RIZ2@RTS (0x94F9AF)'. Освободило ресурсы.
2012.10.01 22:56:59.261|       |BBPQS_RIZ2@RTS_BPXXXXX-RF-01|Правило 'Изменение стакана инструмента RIZ2@RTS (0x94F9AF)'. Освободило ресурсы.
2012.10.01 22:56:59.261|       |BBPQS_RIZ2@RTS_BPXXXXX-RF-01|Правило 'Изменение стакана инструмента RIZ2@RTS (0x94F9AF)'. Удалено.
2012.10.01 22:56:59.262|       |BBPQS_RIZ2@RTS_BPXXXXX-RF-01|Правило 'Полное исполнение  68925593/9055325562 (0x3A2796A)'. Удаляется.
2012.10.01 22:56:59.262|       |BBPQS_RIZ2@RTS_BPXXXXX-RF-01|Правило 'Полное исполнение  68925593/9055325562 (0x3A2796A)'. Освободило ресурсы.
2012.10.01 22:56:59.262|       |BBPQS_RIZ2@RTS_BPXXXXX-RF-01|Правило 'Полное исполнение  68925593/9055325562 (0x3A2796A)'. Удалено.
2012.10.01 22:56:59.262|       |BBPQS_RIZ2@RTS_BPXXXXX-RF-01|Правило 'Изменение позиции (0x3E61678)'. Удаляется.
2012.10.01 22:56:59.262|       |BBPQS_RIZ2@RTS_BPXXXXX-RF-01|Правило 'Изменение позиции (0x3E61678)'. Освободило ресурсы.
2012.10.01 22:56:59.262|       |BBPQS_RIZ2@RTS_BPXXXXX-RF-01|Правило 'Изменение позиции (0x3E61678)'. Удаление.

!!!!!!!!!!!!!!!!! Вызвалось OnNewMyTrades для второй дочерней стратегии !!!!!!!!!!!!!!!!!!!!
2012.10.01 22:56:59.262|       |SSSS_RIZ2@RTS_BPXXXXX-RF-01|Opened LONG Position. Price=149930
2012.10.01 22:56:59.265|       |SSSS_RIZ2@RTS_BPXXXXX-RF-01|Новая Buy сделка 638951731 по цене 149930 на 1 заявки 68925593.
2012.10.01 22:56:59.265|       |BBPQS_RIZ2@RTS_BPXXXXX-RF-01|Новая Buy сделка 638951731 по цене 149930 на 1 заявки 68925593.
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

2012.10.01 22:56:59.265|       |BBPQS_RIZ2@RTS_BPXXXXX-RF-01|Заявка 68925593 больше не активна.
2012.10.01 22:56:59.265|       |BBPQS_RIZ2@RTS_BPXXXXX-RF-01|Правило 'Отмена заявки  68925593/9055325562 (0x280CA52) OR Полное исполнение  68925593/9055325562 (0x37C361E) OR Все сделки заявки  68925593/9055325562 (0x22ED07B) OR Ошибка регистрации заявки  68925593/9055325562 (0x2C656B5)'. Удаляется.
2012.10.01 22:56:59.265|       |Отмена заявки  OR Полное исполнение  OR Все сделки заявки  OR Ошибка регистрации заявки |Правило 'Отмена заявки  68925593/9055325562 (0x280CA52)'. Освободило ресурсы.
2012.10.01 22:56:59.265|       |Полное исполнение  OR Все сделки заявки |Правило 'Полное исполнение  68925593/9055325562 (0x37C361E)'. Освободило ресурсы.
2012.10.01 22:56:59.266|       |Полное исполнение  OR Все сделки заявки |Правило 'Все сделки заявки  68925593/9055325562 (0x22ED07B)'. Освободило ресурсы.
2012.10.01 22:56:59.266|       |Отмена заявки  OR Полное исполнение  OR Все сделки заявки  OR Ошибка регистрации заявки |Правило 'Полное исполнение  68925593/9055325562 (0x37C361E) OR Все сделки заявки  68925593/9055325562 (0x22ED07B)'. Освободило ресурсы.
2012.10.01 22:56:59.266|       |Отмена заявки  OR Полное исполнение  OR Все сделки заявки  OR Ошибка регистрации заявки |Правило 'Ошибка регистрации заявки  68925593/9055325562 (0x2C656B5)'. Освободило ресурсы.
2012.10.01 22:56:59.266|       |BBPQS_RIZ2@RTS_BPXXXXX-RF-01|Правило 'Отмена заявки  68925593/9055325562 (0x280CA52) OR Полное исполнение  68925593/9055325562 (0x37C361E) OR Все сделки заявки  68925593/9055325562 (0x22ED07B) OR Ошибка регистрации заявки  68925593/9055325562 (0x2C656B5)'. Освободило ресурсы.
2012.10.01 22:56:59.266|       |BBPQS_RIZ2@RTS_BPXXXXX-RF-01|Правило 'Отмена заявки  68925593/9055325562 (0x280CA52) OR Полное исполнение  68925593/9055325562 (0x37C361E) OR Все сделки заявки  68925593/9055325562 (0x22ED07B) OR Ошибка регистрации заявки  68925593/9055325562 (0x2C656B5)'. Удаление.
2012.10.01 22:56:59.266|       |BBPQS_RIZ2@RTS_BPXXXXX-RF-01|Стратегия остановлена. [0,1]
2012.10.01 22:56:59.266|       |SSSS_RIZ2@RTS_BPXXXXX-RF-01|Правило 'BBPQS_RIZ2@RTS_BPXXXXX-RF-01 - остановлена (ChildStrategyList.OnChildProcessStateChanged) (0x2F42516)'. Удаляется.
2012.10.01 22:56:59.266|       |SSSS_RIZ2@RTS_BPXXXXX-RF-01|Правило 'BBPQS_RIZ2@RTS_BPXXXXX-RF-01 - остановлена (ChildStrategyList.OnChildProcessStateChanged) (0x2F42516)'. Освободило ресурсы.
2012.10.01 22:56:59.266|       |SSSS_RIZ2@RTS_BPXXXXX-RF-01|Правило 'BBPQS_RIZ2@RTS_BPXXXXX-RF-01 - остановлена (ChildStrategyList.OnChildProcessStateChanged) (0x2F42516)'. Удаление.
2012.10.01 22:57:58.508|       |SSSS_RIZ2@RTS_BPXXXXX-RF-01|Candle: 01.10.2012 22:57:00, 149940, 150000, 149920, 149970, 513

Что касается учета позиции по балансу заявок - а что делать в том случае, если позиция переносится через ночь? Статью в документации на эту тему я читал. Как я понял, предлагается загружать имеющиеся заявки из терминала, и определять, какие из них принадлежать текущей стратегии. Но при переносе позиции на следующий день мне например вчерашние заявки уже недоступны. Сейчас я при изменении состояния стратегии тупо сбрасываю его в файл вместе с размером позиции и параметрами, необходимыми для восстановления работы при перезапуске робота. При загрузке размер позиции считывается из этого файла. Допустим ли такой подход?

Marco
Marco 作者

P.S.: Посмотрел еще сегодня утром - событие не приходит, если позиция закрывается. По сделкам, открывающим позицию, событие приходит.

esper
esper

По логу не понятно, где была первая стратегия, где вторая. Имена у них одинаковые.

esper
esper

Можете сделать проект с минимальным кодом, который воспроизводит эту проблему?

Marco
Marco 作者

Отправил проект в личку.

Marco
Marco 作者

P.S.: Да, действительно выставление Strategy.WaitAllTrades в true проблему решило. Спасибо за помощь! :)

Eskra
Eskra

У меня другая проблема сборка 19868

В методе OnStarted() стратегии подписываюсь на события: WhenNewMyTrades().Do<IEnumerable<MyTrade>>(Overlap).Apply(this);

Overlap у меня вызывается несколько раз на каждую сделку

esper
esper

Логи?

Eskra
Eskra

Я под дебагом это выяснил... если до конца сессии успею, попробую сделать логи

Eskra
Eskra

У меня внутри процедуры стоит свой счетчик, так вот он не совпадает с позицией, те по логам и по эксель отчету количество сделок все правильно, а счетчик не сходится. Причем иногда приходит все правильно, а иногда 2 раза, иногда 7... Торгую через плазу

esper
esper

Значит счетчик считает что-то не то.

Eskra
Eskra

2012.10.10 21:33:39.272| |PHS_RIZ2@RTS |Номер трейда 644087326: 73879377/9145599581 Покупка Цена=146930 Объем=10 Сост=Active Бал=10 2012.10.10 21:33:41.267| |PHS_RIZ2@RTS |Номер трейда 644087326: 73879377/9145599581 Покупка Цена=146930 Объем=10 Сост=Active Бал=10 2012.10.10 21:33:41.267| |PS_RIZ2@RTS |Новая Buy сделка 644087326 по цене 146540 на 1 заявки 73879377. 2012.10.10 21:33:41.267| |PS_RIZ2@RTS |Заменяемая заявка: 73879377/9145599581 Покупка Цена=146930 Объем=10 Сост=Active Бал=10 2012.10.10 21:33:41.267| |PS_RIZ2@RTS |Перемещаем заявку, новая заявка: 0/0 Покупка Цена=146900 Объем=10 Сост=None Бал=0 2012.10.10 21:33:43.168| |PHS_RIZ2@RTS |Номер трейда 644087327: 73879377/9145599581 Покупка Цена=146930 Объем=10 Сост=Active Бал=10 2012.10.10 21:33:43.839| |PHS_RIZ2@RTS |Номер трейда 644087327: 73879377/9145599581 Покупка Цена=146930 Объем=10 Сост=Active Бал=10 2012.10.10 21:33:43.839| |PS_RIZ2@RTS |Новая Buy сделка 644087327 по цене 146540 на 1 заявки 73879377. 2012.10.10 21:33:44.244| |PHS_RIZ2@RTS |Номер трейда 644087328: 73879377/9145599581 Покупка Цена=146930 Объем=10 Сост=Active Бал=10 2012.10.10 21:33:44.415| |PHS_RIZ2@RTS |Номер трейда 644087328: 73879377/9145599581 Покупка Цена=146930 Объем=10 Сост=Active Бал=10 2012.10.10 21:33:44.415| |PS_RIZ2@RTS |Новая Buy сделка 644087328 по цене 146540 на 1 заявки 73879377. 2012.10.10 21:33:44.587| |PHS_RIZ2@RTS |Номер трейда 644087329: 73879377/9145599581 Покупка Цена=146930 Объем=10 Сост=Active Бал=10 2012.10.10 21:33:44.743| |PHS_RIZ2@RTS |Номер трейда 644087329: 73879377/9145599581 Покупка Цена=146930 Объем=10 Сост=Active Бал=10 2012.10.10 21:33:44.743| |PS_RIZ2@RTS |Новая Buy сделка 644087329 по цене 146540 на 1 заявки 73879377. 2012.10.10 21:33:44.883| |PHS_RIZ2@RTS |Номер трейда 644087330: 73879377/9145599581 Покупка Цена=146930 Объем=10 Сост=Active Бал=10 2012.10.10 21:33:45.039| |PHS_RIZ2@RTS |Номер трейда 644087330: 73879377/9145599581 Покупка Цена=146930 Объем=10 Сост=Active Бал=10 2012.10.10 21:33:45.039| |PS_RIZ2@RTS |Новая Buy сделка 644087330 по цене 146550 на 1 заявки 73879377. 2012.10.10 21:33:45.179| |PHS_RIZ2@RTS |Номер трейда 644087331: 73879377/9145599581 Покупка Цена=146930 Объем=10 Сост=Active Бал=10 2012.10.10 21:33:45.335| |PHS_RIZ2@RTS |Номер трейда 644087331: 73879377/9145599581 Покупка Цена=146930 Объем=10 Сост=Active Бал=10 2012.10.10 21:33:45.335| |PS_RIZ2@RTS |Новая Buy сделка 644087331 по цене 146550 на 1 заявки 73879377. 2012.10.10 21:33:45.460| |PHS_RIZ2@RTS |Номер трейда 644087332: 73879377/9145599581 Покупка Цена=146930 Объем=10 Сост=Active Бал=10 2012.10.10 21:33:47.548| |PHS_RIZ2@RTS |Номер трейда644087332: 73879377/9145599581 Покупка Цена=146930 Объем=10 Сост=Active Бал=10 2012.10.10 21:33:47.548| |PS_RIZ2@RTS |Новая Buy сделка 644087332 по цене 146550 на 4 заявки 73879377. 2012.10.10 21:33:47.548| |PS_RIZ2@RTS |Новая позиция: 0700N60-RIZ2@RTS=11. 2012.10.10 21:33:47.548| |PS_RIZ2@RTS |Новая позиция: 0700N60-RIZ2@RTS=12. 2012.10.10 21:33:47.548| |PS_RIZ2@RTS |Новая позиция: 0700N60-RIZ2@RTS=13. 2012.10.10 21:33:47.548| |PS_RIZ2@RTS |Новая позиция: 0700N60-RIZ2@RTS=14. 2012.10.10 21:33:47.564| |PS_RIZ2@RTS |Новая позиция: 0700N60-RIZ2@RTS=15. 2012.10.10 21:33:47.564| |PS_RIZ2@RTS |Новая позиция: 0700N60-RIZ2@RTS=16. 2012.10.10 21:33:47.564| |PS_RIZ2@RTS |Новая позиция: 0700N60-RIZ2@RTS=20.

Eskra
Eskra

У меня все нормально работает на 4.1 уже полгода, сегодня решил посмотреть 4.1.5.

Время между приходом повторных трейдов вначале лога большое тк под дебагом делал, там брейкпоинты стояли - во второй половине лога реальное

esper
esper

Что есть PS, PHS? Правило точно один раз создается?

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

Eskra
Eskra

Пока вопрос снят, похоже это ДО 4.1.5 было немного неправильно организовано и у меня под это было построено.