← Zurück

Вопрос про бесконечное перевыставление заявки

|Приостановка правил. _rulesSuspendCount 1. 2013/12/18 16:50:35.000| |SBS_RIH4@FORTS_test account1|Регистрация новой Limit (0x2A1B2DE) заявки на Sell с ценой 141800.000000000 и объемом 1. 2013/12/18 16:50:35.000| |HistoryEmulationConnector|RegisterOrder: 0/0 Продажа Цена=141800.000000000 Объем=1 Сост=None Бал=0 2013/12/18 16:50:35.000| |HistoryEmulationConnector|New order: 13712394/0 Продажа Цена=141800.000000000 Объем=1 Сост=Pending Бал=1 2013/12/18 16:50:35.000| |SBS_RIH4@FORTS_test account1|Возобновление правил. _rulesSuspendCount 0. 2014/01/19 03:50:07.448| |#=qXLcyz4GZfjcuGFPYxXhmRaXexDK4lQNQbPTx$SCysd0=|Заявка 13712394 зарегистрирована. 2014/01/19 03:50:07.448| |#=qXLcyz4GZfjcuGFPYxXhmRaXexDK4lQNQbPTx$SCysd0=|Заявка 13712394. Исполнение объема 1 по цене 141960.000000000. 2014/01/19 03:50:07.448| |#=qXLcyz4GZfjcuGFPYxXhmRaXexDK4lQNQbPTx$SCysd0=|Заявка 13712394 полностью исполнена. 2014/01/19 03:50:07.448| |#=qXLcyz4GZfjcuGFPYxXhmRaXexDK4lQNQbPTx$SCysd0=|Сделка 73 заявки 13712394 P=13712394 V=141960.000000000. 2013/12/18 16:50:35.000| |HistoryEmulationConnector|Order changed: 13712394/74 Продажа Цена=141800.000000000 Объем=1 Сост=Done Бал=0 2013/12/18 16:50:35.000| |SBS_RIH4@FORTS_test account1|Новая позиция: test account1-RIH4@FORTS=-1. 2013/12/18 16:50:35.000| |SBS_RIH4@FORTS_test account1|Заявка 13712394 больше не активна. 2013/12/18 16:50:35.000| |SBS_RIH4@FORTS_test account1|Новая Sell сделка 73 по цене 141960.000000000 на 1 заявки 13712394. 2013/12/18 16:50:35.000| |SLS_RIH4@FORTS_test account1|Стратегия запущена. [0,1]. Позиция при старте 0. 2013/12/18 16:50:35.000| |SLS_RIH4@FORTS_test account1|Защита сделки 73 заявки 13712394. 2013/12/18 16:50:35.000| |SLS_RIH4@FORTS_test account1|Котирование на Buy объема 1. 2013/12/18 16:50:35.000| |SLS_RIH4@FORTS_test account1|Приостановка правил. _rulesSuspendCount 1. 2013/12/18 16:50:35.000| |SLS_RIH4@FORTS_test account1|Возобновление правил. _rulesSuspendCount 0. 2013/12/18 16:50:39.000| |SLS_RIH4@FORTS_test account1|Защита активирована. 2013/12/18 16:50:39.000| |SLS_RIH4@FORTS_test account1|Цена текущей NULL и лучшей 169990. 2013/12/18 16:50:39.000| |SLS_RIH4@FORTS_test account1|Лучший бид 142010.000000000 и лучший аск 142030.000000000. 2013/12/18 16:50:39.000| |SLS_RIH4@FORTS_test account1|Регистрация новой Limit (0x28C893F) заявки на Buy с ценой 169990 и объемом 1. SLS 73 2013/12/18 16:50:39.000| |HistoryEmulationConnector|RegisterOrder: 0/0 Покупка Цена=169990 Объем=1 Сост=None Бал=0 2013/12/18 16:50:39.000| |HistoryEmulationConnector|New order: 13712395/0 Покупка Цена=169990 Объем=1 Сост=Pending Бал=1 2013/12/18 16:50:39.000|Warning|SLS_RIH4@FORTS_test account1|Заявка 13712395 в процессе регистрации. 2013/12/18 16:50:39.000|Warning|SLS_RIH4@FORTS_test account1|Заявка 13712395 в процессе регистрации. 2013/12/18 16:50:39.000|Warning|SLS_RIH4@FORTS_test account1|Заявка 13712395 в процессе регистрации. 2013/12/18 16:50:39.000|Warning|SLS_RIH4@FORTS_test account1|Заявка 13712395 в процессе регистрации. 2013/12/18 16:50:39.000|Warning|SLS_RIH4@FORTS_test account1|Заявка 13712395 в процессе регистрации. 2013/12/18 16:50:39.000|Warning|SLS_RIH4@FORTS_test account1|Заявка 13712395 в процессе регистрации. 2013/12/18 16:50:39.000|Warning|SLS_RIH4@FORTS_test account1|Заявка 13712395 в процессе регистрации. 2013/12/18 16:50:39.000|Warning|SLS_RIH4@FORTS_test account1|Заявка 13712395 в процессе регистрации.

Собственно, локализовал одну из проблем.

Код активации стоп-лоса (трейлинг-стопа) такой (в курилке писал уже):


        private void OnNewOrderTrades(IEnumerable<MyTrade> myTrades)
        {
            var protectiveStrategies = myTrades.Select(t =>
            {
                var newStrategyFromTrade = new StopLossStrategy(t, new Unit(TraderHelper.ShrinkPrice(t.Trade.Security, stopLossParameter * (decimal)currentParams.candleSize))) { IsTrailing = true, UseQuoting = false, PriceOffset = (decimal)currentParams.candleSize*3, DisposeOnStop = true, ProtectiveVolume = t.Trade.Volume, MaxRegisterFailCount = 5, };

                return newStrategyFromTrade;
            });

            foreach(var s in protectiveStrategies)
                ChildStrategies.Add(s);

            base.OnNewMyTrades(myTrades);
        }

Вхожу в рынок и формирую правило на активацию стопа следующим образом:


                            CancelActiveOrders();

                            SuspendRules();

                            if (Position != 0)
                            {
                                var orderDirection = Position < 0 ? OrderDirections.Buy : OrderDirections.Sell;
                                var orderPrice = Position < 0 ? Security.BestAsk.Price + Security.MinStepSize * pricePieces : Security.BestBid.Price - Security.MinStepSize * pricePieces;

                                var newOrder = this.CreateOrder(orderDirection, orderPrice, Math.Abs(Position));

                                RegisterOrder(newOrder);
                            }
                            

                            var newOrderDirection = isNewEntranceSignalUp == true ? OrderDirections.Buy : OrderDirections.Sell;
                            var newOrderPrice = isNewEntranceSignalUp == true ? Security.BestAsk.Price + Security.MinStepSize * pricePieces : Security.BestBid.Price - Security.MinStepSize * pricePieces;  

                            var newPositionToOpen = this.CreateOrder(newOrderDirection, newOrderPrice, 1);
                            newPositionToOpen.WhenMatched().Do(() => newPositionToOpen.WhenNewTrades().Do(OnNewOrderTrades).Apply(this)).Apply(this);

                            RegisterOrder(newPositionToOpen);
                            
                            ResumeRules();

Где у меня гармонь? Или это проблемы в библиотеке (что менее вероятно)?

Спасибо.

War dieses Thema hilfreich?

Thema teilen

Kommentare (16)

Anmelden oder Konto erstellen, Melden Sie sich an oder registrieren Sie sich, um einen Kommentar zu hinterlassen

Rebelion
Rebelion Autor

Помогите, плз... :-(

Mikhail Sukhov
Mikhail Sukhov

Rebelion: Помогите, плз... :-(

А как воспроизвести?

Rebelion
Rebelion Autor

Михаил Сухов:

Rebelion: Помогите, плз... :-(

А как воспроизвести?

Михаил, могу выслать свой проект полностью для того, чтобы могли на своей машине воспроизвести багу. Но есть беда - требуется ядро R (x64 установленное) и R.NET с нугета. Если дадите адресок - вышлю. Либо могу код стратегии прислать без индикаторов и проверок условий (там используются обращения к R), туда можно любые будет запихнуть условия и попробовать потестить. Или же скажите мне, как сгенерировать нужные логи - я сделаю всё, что скажете. Просто мне нуна 4.2.x библиотека (пошустрее всё же на реальной торговле, имхо). На 4.1.19.1 всё пашет, но ощущение, что стопы не отрабатывают - поэтому я и решил спросить, что в коде моих стопов может быть неправильно написано. Заодно и привёл пример бесконечного перевыставления трейлинг-стопа, который удалось локализовать быстро (лог разрастается сумасшедшим образом).

Mikhail Sukhov
Mikhail Sukhov

Нужен код, воспроизводящий проблему. Чем он меньше, тем лучше. Лучше на SampleHistoryTesting

Rebelion
Rebelion Autor

Михаил Сухов: Нужен код, воспроизводящий проблему. Чем он меньше, тем лучше. Лучше на SampleHistoryTesting

Ок,я сегодня сделаю свой код на Рихе4 без R и прочих прибамбасов, переделаю пример. И если ошибка на этом коде воспроизведётся - пришлю. Спасибо.

Rebelion
Rebelion Autor

Михаил Сухов: Нужен код, воспроизводящий проблему. Чем он меньше, тем лучше. Лучше на SampleHistoryTesting

Воспроизвёл. Пример приложен. Release.

Andrii
Andrii

Михаил Сухов: Нужен код, воспроизводящий проблему. Чем он меньше, тем лучше. Лучше на SampleHistoryTesting

SampleEmulationTesting воспроизводится на ура, 5/6 будет зацикливания

Mikhail Sukhov
Mikhail Sukhov

Andrii: SampleEmulationTesting воспроизводится на ура, 5/6 будет зацикливания

Ошибка автора топика мы исправили в последней версии.

Andrii
Andrii

Михаил Сухов:

Andrii: SampleEmulationTesting воспроизводится на ура, 5/6 будет зацикливания

Ошибка автора топика мы исправили в последней версии. в последней версии 4.2.2.4 из примера лог:

2014/01/24 11:49:01.821|       |#=qJ2eU$gwhGiovn4S9yfhHLi9xu7QckDfZeXYEYr2aqAE=|Заявка 42528160 снята.
2014/01/24 11:49:01.821|       |#=qJ2eU$gwhGiovn4S9yfhHLi9xu7QckDfZeXYEYr2aqAE=|Заявка 42528163 зарегистрирована.
2009/06/15 23:35:00.000|Warning|MQS_RIU9@FORTS_test account|Перерегистрация не была выполнена. Ожидание исполнения заявки 42518483.
2009/06/15 23:35:00.000|Warning|MQS_RIU9@FORTS_test account|Заявка 42528160 в процессе перерегистрации на заявку 42528163.
2009/06/15 21:35:00.000|       |HistoryEmulationConnector|Order changed: 42528160/10108 Продажа Цена=3590 Объем=1 Сост=Done Бал=1 
2009/06/15 23:35:00.000|       |MQS_RIU9@FORTS_test account|Заявка 42528160 больше не активна.
2009/06/15 21:35:00.000|       |HistoryEmulationConnector|Order changed: 42528163/10111 Продажа Цена=1470 Объем=1 Сост=Active Бал=1 
2009/06/15 23:35:00.000|       |MQS_RIU9@FORTS_test account|Заявка 42528160 перерегистрирована на заявку 42528163.
2009/06/15 23:35:00.000|       |MQS_RIU9@FORTS_test account|Сброс счетчика ошибок регистрации с 0 до нуля.
2009/06/15 23:35:00.000|       |MQS_RIU9@FORTS_test account|Цена текущей 1470 и лучшей 3590.
2009/06/15 23:35:00.000|       |MQS_RIU9@FORTS_test account|Лучший бид 1390 и лучший аск 3590.
2009/06/15 23:35:00.000|       |MQS_RIU9@FORTS_test account|Котирование заявки 42528163 на Sell с ценой 1470 объемом 1.
2009/06/15 23:35:00.000|       |MQS_RIU9@FORTS_test account|Перерегистрация заявки 42528163 с ценой 1470 на цену 3590. 
2009/06/15 23:35:00.000|       |MQS_RIU9@FORTS_test account|Перерегистрация проскальзывания заявки 42528163 (0x2AC6DA4) на заявку (0x26842F8).
2009/06/15 23:35:00.000|       |SS_RIU9@FORTS_test account|Перерегистрация проскальзывания заявки 42528163 (0x2AC6DA4) на заявку (0x26842F8).
2009/06/15 21:35:00.000|       |HistoryEmulationConnector|New order: 42528164/0 Продажа Цена=3590 Объем=0 Сост=Pending Бал=0 
2009/06/15 23:35:00.000|       |MQS_RIU9@FORTS_test account|Перекотирование зарегистрировано для заявки 42528164 на Sell с ценой 3590.
2009/06/15 23:35:00.000|Warning|MQS_RIU9@FORTS_test account|Перерегистрация не была выполнена. Ожидание исполнения заявки 42518483.
2009/06/15 23:35:00.000|Warning|MQS_RIU9@FORTS_test account|Заявка 42528163 в процессе перерегистрации на заявку 42528164.
2009/06/15 23:35:00.000|       |MQS_RIU9@FORTS_test account|Цена текущей 3590 и лучшей 1470.
2009/06/15 23:35:00.000|       |MQS_RIU9@FORTS_test account|Лучший бид 1390 и лучший аск 3590.
2009/06/15 23:35:00.000|       |MQS_RIU9@FORTS_test account|Котирование заявки 42528162 на Sell с ценой 3590 объемом 1.
2009/06/15 23:35:00.000|       |MQS_RIU9@FORTS_test account|Перерегистрация заявки 42528162 с ценой 3590 на цену 1470. 
2009/06/15 23:35:00.000|       |MQS_RIU9@FORTS_test account|Перерегистрация проскальзывания заявки 42528162 (0xB9EDAC) на заявку (0x300B2C3).
2009/06/15 23:35:00.000|       |SS_RIU9@FORTS_test account|Перерегистрация проскальзывания заявки 42528162 (0xB9EDAC) на заявку (0x300B2C3).
2009/06/15 21:35:00.000|       |HistoryEmulationConnector|New order: 42528165/0 Продажа Цена=1470 Объем=0 Сост=Pending Бал=0 
2009/06/15 23:35:00.000|       |MQS_RIU9@FORTS_test account|Перекотирование зарегистрировано для заявки 42528165 на Sell с ценой 1470.

...

2014/01/24 11:50:20.865|       |#=qJ2eU$gwhGiovn4S9yfhHLi9xu7QckDfZeXYEYr2aqAE=|Заявка 42562694 снята.
2014/01/24 11:50:20.865|       |#=qJ2eU$gwhGiovn4S9yfhHLi9xu7QckDfZeXYEYr2aqAE=|Заявка 42562697 зарегистрирована.
2009/06/15 23:35:00.000|Warning|MQS_RIU9@FORTS_test account|Перерегистрация не была выполнена. Ожидание исполнения заявки 42518483.
2009/06/15 23:35:00.000|Warning|MQS_RIU9@FORTS_test account|Заявка 42562694 в процессе перерегистрации на заявку 42562697.
2009/06/15 21:35:00.000|       |HistoryEmulationConnector|Order changed: 42562694/44642 Продажа Цена=3590 Объем=1 Сост=Done Бал=1 
2009/06/15 23:35:00.000|       |MQS_RIU9@FORTS_test account|Заявка 42562694 больше не активна.
2009/06/15 21:35:00.000|       |HistoryEmulationConnector|Order changed: 42562697/44645 Продажа Цена=1470 Объем=1 Сост=Active Бал=1 
2009/06/15 23:35:00.000|       |MQS_RIU9@FORTS_test account|Заявка 42562694 перерегистрирована на заявку 42562697.
2009/06/15 23:35:00.000|       |MQS_RIU9@FORTS_test account|Сброс счетчика ошибок регистрации с 0 до нуля.
2009/06/15 23:35:00.000|       |MQS_RIU9@FORTS_test account|Цена текущей 1470 и лучшей 3590.
2009/06/15 23:35:00.000|       |MQS_RIU9@FORTS_test account|Лучший бид 1390 и лучший аск 3590.
2009/06/15 23:35:00.000|       |MQS_RIU9@FORTS_test account|Котирование заявки 42562697 на Sell с ценой 1470 объемом 1.
2009/06/15 23:35:00.000|       |MQS_RIU9@FORTS_test account|Перерегистрация заявки 42562697 с ценой 1470 на цену 3590. 
2009/06/15 23:35:00.000|       |MQS_RIU9@FORTS_test account|Перерегистрация проскальзывания заявки 42562697 (0x152FD4E) на заявку (0x3EFB6A5).
2009/06/15 23:35:00.000|       |SS_RIU9@FORTS_test account|Перерегистрация проскальзывания заявки 42562697 (0x152FD4E) на заявку (0x3EFB6A5).
2009/06/15 21:35:00.000|       |HistoryEmulationConnector|New order: 42562698/0 Продажа Цена=3590 Объем=0 Сост=Pending Бал=0 
2009/06/15 23:35:00.000|       |MQS_RIU9@FORTS_test account|Перекотирование зарегистрировано для заявки 42562698 на Sell с ценой 3590.
2009/06/15 23:35:00.000|Warning|MQS_RIU9@FORTS_test account|Перерегистрация не была выполнена. Ожидание исполнения заявки 42518483.
2009/06/15 23:35:00.000|       |MQS_RIU9@FORTS_test account|Цена текущей 3590 и лучшей 1470.
2009/06/15 23:35:00.000|       |MQS_RIU9@FORTS_test account|Лучший бид 1390 и лучший аск 3590.
2009/06/15 23:35:00.000|       |MQS_RIU9@FORTS_test account|Котирование заявки 42562696 на Sell с ценой 3590 объемом 1.
2009/06/15 23:35:00.000|       |MQS_RIU9@FORTS_test account|Перерегистрация заявки 42562696 с ценой 3590 на цену 1470. 
2009/06/15 23:35:00.000|       |MQS_RIU9@FORTS_test account|Перерегистрация проскальзывания заявки 42562696 (0xE169C1) на заявку (0x22DF488).
2009/06/15 23:35:00.000|       |SS_RIU9@FORTS_test account|Перерегистрация проскальзывания заявки 42562696 (0xE169C1) на заявку (0x22DF488).
2009/06/15 21:35:00.000|       |HistoryEmulationConnector|New order: 42562699/0 Продажа Цена=1470 Объем=0 Сост=Pending Бал=0 
2009/06/15 23:35:00.000|       |MQS_RIU9@FORTS_test account|Перекотирование зарегистрировано для заявки 42562699 на Sell с ценой 1470.
2009/06/15 23:35:00.000|Warning|MQS_RIU9@FORTS_test account|Заявка 42562697 в процессе перерегистрации на заявку 42562698.
2014/01/24 11:50:20.868|       |#=qJ2eU$gwhGiovn4S9yfhHLi9xu7QckDfZeXYEYr2aqAE=|Заявка 42562697 снята.
2014/01/24 11:50:20.868|       |#=qJ2eU$gwhGiovn4S9yfhHLi9xu7QckDfZeXYEYr2aqAE=|Заявка 42562698 зарегистрирована.
Rebelion
Rebelion Autor

Михаил Сухов:

Andrii: SampleEmulationTesting воспроизводится на ура, 5/6 будет зацикливания

Ошибка автора топика мы исправили в последней версии.

Михаил, а можете ткнуть носом непосредственно в мою ошибку, чтобы больше мне не повториться и не спамить форум? Пасиба.

Rebelion
Rebelion Autor

Rebelion:

Михаил Сухов:

Andrii: SampleEmulationTesting воспроизводится на ура, 5/6 будет зацикливания

Ошибка автора топика мы исправили в последней версии.

Михаил, а можете ткнуть носом непосредственно в мою ошибку, чтобы больше мне не повториться и не спамить форум? Пасиба.

up. Михаил, сможете помочь?

Mikhail Sukhov
Mikhail Sukhov

Я вопроса не понял.

Rebelion
Rebelion Autor

Михаил Сухов: Я вопроса не понял.

Собственно, по этому поводу спрашивал - указали на ошибки в моём коде. > Ошибка автора топика мы исправили в последней версии.

Rebelion
Rebelion Autor

up :-(

Mikhail Sukhov
Mikhail Sukhov

Rebelion: up :-(

В процессе.

Rebelion
Rebelion Autor

Михаил Сухов:

Rebelion: up :-(

В процессе.

Хорошо, спасибо!! Просто я подумал, что остался нерассмотренным вопрос, что где-то у меня сильный затуп в коде такой. :-)