Ребят а не у кого не было проблем с остановкой стратегии? У меня почему то иногда стратегии не стопоряться... В лог выводиться что стратегия "останавливается", а вот что она остановлена так и не приходит сообщение... Может у кого то есть подозрения по какой причине это может происходить?
Комментарии (29)
Вход или Создать аккаунт, Войдите или зарегистрируйтесь, чтобы оставить комментарий
какая стратегия - что является базовой? сколько раз возвращается ProcessResults.Stop в OnProcess? Напомню, на всякий случай, что после первого возврата ProcessResults.Stop стратегия переходит в состояние ProcessStates.Stopping, после второго - в ProcessStates.Stopped
Я извиняюсь пытался найти и переопределить метод OnProcess, но что то не нашел... Базовый класс у меня Strategy...
Вот пример из доки. + Смотрите примеры, их множество.
Хм... Александр не сочтите за оскорбление но в Strategy нет метода OnProcess))
А, ну да, он скрыт. Тогда, раз наследуететесь от Strategy, единственной причиной неостановки стратегии является то, что какое-то правило продолжает работу. Дайте вывод лога - запуск, остановки, OnStopping, OnStopped.
10:21:24.562 | | Главная стратегия | Стратегия запущена. 10:31:09.260 | | Главная стратегия | Выставляю заявки.Позиция 0 10:31:09.260 | | Главная стратегия | Зарегистрировал заявку: TransactionId=36992922, Id=0, Price=154495,00000, Balance=1, Security=RIZ1@RTS, State=None 10:31:09.307 | | Главная стратегия | Параметры заявки 154495,00000, 1, None, , J700379, RIZ1@RTS, Sell, Limit, 1 10:31:09.323 | | Корзина стратегий | Стратегия запущена. 10:31:09.354 | | Стратегия в корзине 1 | Стратегия запущена. 10:31:09.385 | | Стратегия в корзине 3 | Стратегия запущена. 10:31:09.401 | | Стратегия в корзине 4 | Стратегия запущена. 10:31:09.448 | | Стратегия в корзине 2 | Стратегия запущена. 10:31:09.510 | | Главная стратегия | Выставляю заявки.Позиция 0 10:31:09.588 | | Главная стратегия | Выставляю заявки.Позиция 0 10:31:16.556 | | Главная стратегия | Выставляю заявки.Позиция 0 10:31:22.384 | | Главная стратегия | Выставляю заявки.Позиция 0 10:31:22.384 | | Главная стратегия | Новая Sell сделка 448683077 по цене 154495,00000 на 1 заявки 36992922. 10:31:22.384 | | Главная стратегия | Зарегистрировал заявку: TransactionId=36992923, Id=0, Price=154495,00000, Balance=1, Security=RIZ1@RTS, State=None 10:31:22.415 | | Главная стратегия | Параметры заявки 154495,00000, 1, None, , J700379, RIZ1@RTS, Sell, Limit, 1 10:31:22.447 | | Корзина стратегий | Стратегия запущена. 10:31:22.462 | | Стратегия в корзине 1 | Стратегия запущена. 10:31:22.478 | | Стратегия в корзине 3 | Стратегия запущена. 10:31:22.525 | | Стратегия в корзине 4 | Стратегия запущена. 10:31:22.525 | | Главная стратегия | Позиция: -1 10:31:22.556 | | Защитная стратегия(Являеться дочерней Стратегии 4) | Стратегия запущена. 10:31:22.556 | | Стратегия в корзине 2 | Стратегия запущена. 10:31:22.915 | | Главная стратегия | Новая Sell сделка 448683087 по цене 154495,00000 на 1 заявки 36992923. 10:31:22.947 | | Главная стратегия | Позиция: -2 10:31:22.993 | | Защитная стратегия(Являеться дочерней Стратегии 4) | Стратегия запущена. 10:31:28.774 | | Стратегия в корзине 1 | Закрываю позицию: TransactionId=36992922, Id=5840039044, Price=154495,00000, Balance=0, Security=RIZ1@RTS, State=Done Уже закрыто позиций 0 10:31:28.774 | | Стратегия в корзине 1 | Закрываю позицию: TransactionId=36992923, Id=5840043675, Price=154495,00000, Balance=0, Security=RIZ1@RTS, State=Done Уже закрыто позиций 0 10:31:28.852 | | Главная стратегия | Новая Buy сделка 448683176 по цене 154500,00000 на 1 заявки 36992924. 10:31:28.868 | | Корзина стратегий | Новая Buy сделка 448683176 по цене 154500,00000 на 1 заявки 36992924. 10:31:28.868 | | Главная стратегия | Позиция: -1 10:31:28.884 | | Стратегия в корзине 1 | Новая Buy сделка 448683176 по цене 154500,00000 на 1 заявки 36992924. 10:31:28.930 | | Корзина стратегий | Количество контрактов в заявке исчерпанно: останавливаю все стратегии 10:31:28.946 | | Корзина стратегий | Стратегия останавливается. 10:31:28.977 | | Главная стратегия | Новая Buy сделка 448683179 по цене 154500,00000 на 1 заявки 36992925. 10:31:28.977 | | Стратегия в корзине 1 | Стратегия останавливается. 10:31:29.009 | | Стратегия в корзине 1 | Стратегия остановлена. 10:31:29.055 | | Стратегия в корзине 3 | Стратегия останавливается. 10:31:29.024 | | Корзина стратегий | Новая Buy сделка 448683179 по цене 154500,00000 на 1 заявки 36992925. 10:31:29.055 | | Главная стратегия | Позиция: 0 10:31:29.055 | | Стратегия в корзине 3 | Отменяю заявки 0 10:31:29.118 | | Стратегия в корзине 1 | Новая Buy сделка 448683179 по цене 154500,00000 на 1 заявки 36992925. 10:31:29.118 | | Стратегия в корзине 3 | Стратегия остановлена. 10:31:29.118 | | Стратегия в корзине 4 | Стратегия останавливается. 10:31:29.165 | | Корзина стратегий | Стратегия в корзине 1 говорит ,что изменилось кол-во закрытых сделок: 1 10:31:29.196 | | Защитная стратегия(Являеться дочерней Стратегии 4) | Стратегия остановлена. 10:31:29.165 | | Защитная стратегия(Являеться дочерней Стратегии 4) | Стратегия останавливается. 10:31:29.227 | | Корзина стратегий | Количество контрактов в заявке исчерпанно: останавливаю все стратегии 10:31:29.227 | | Стратегия в корзине 2 | Стратегия останавливается. 10:31:29.290 | | Стратегия в корзине 2 | Стратегия остановлена. 10:31:29.290 | | Корзина стратегий | Стратегия останавливается. 10:31:29.321 | | Стратегия в корзине 1 | Стратегия останавливается. 10:31:29.383 | | Стратегия в корзине 1 | Стратегия остановлена. 10:31:29.399 | | Стратегия в корзине 3 | Стратегия останавливается. 10:31:29.430 | | Стратегия в корзине 3 | Отменяю заявки 0 10:31:29.462 | | Стратегия в корзине 3 | Стратегия остановлена. 10:31:29.477 | | Стратегия в корзине 4 | Стратегия останавливается. 10:31:29.493 | | Защитная стратегия(Являеться дочерней Стратегии 4) | Стратегия останавливается. 10:31:29.540 | | Защитная стратегия(Являеться дочерней Стратегии 4) | Стратегия остановлена. 10:31:29.540 | | Стратегия в корзине 2 | Стратегия останавливается. 10:31:29.555 | | Стратегия в корзине 2 | Стратегия остановлена. 10:31:43.898 | | Главная стратегия | Стратегия останавливается.
Я старался)) Обратите внимание на конец логов... Стратегия 4 так и не остановилась(((
А вот скажите если я у правила использую метод Periodical правило остановиться только когда делегат вернет true? Или когда стратегия останавливается правило то же?
Ну т.е не взирая на Periodical правило остановиться если стратегия начинает останавливаться?
Покажите свою "Стратегия в корзине 4".
И где она тут?
Новый поток... Нет все таки помоем причина в Periodical вот этот вариант который я вам скинул(уже исправленный) работает. Мне кажется если исп Periodical правило не перестанет работать даже если стратегия стопиться...
Так скиньте задание и добавление вашей 4 стратегии. я не вижу Periodical
Вот то что я вам скинул это внутренности "Стратегия в корзине 4"
Александр ну this.When(Order.NewTrades()).Do(trades => Task.Factory.StartNew(() => NewTrades(trades))); было с Periodical...
Вообщем смотрите я убрал его отовсюду... И у меня все стало норм... Дайте доступ я сам подправлю))
к какому файлу \ методу?
ещё раз вопрос - как именно у вас был описан Periodical, что передано в качестве canFinish?
Флаг. Его стратегия материнская в true ставит перед тем как остановить стратегию. Да даже если бы и не ставила , все равно остановка должна была правило убить... "к какому файлу \ методу?" - ну к тому где метод Periodical описан...
Какой флаг? Там функцию надо передавать. Дубль 3 - опишите подробнее свой Periodical.
Хм... Понял)) Ну вот смотрите если записать вот так например this.When(Order.NewTrades()).Do(trades => Task.Factory.StartNew(() => NewTrades(trades))).Periodical(() => IsStoped || ProcessState == ProcessStates.Stopping); Где IsStoped - тот самый флаг, то остановка нормально работает...
Тогда в чём проблема раз всё нормально работает? Для остановки правила должно выполняться CanFinish, которые вы передаёте в Periodical.
Ну вообще то это костыль) Правило должно и без него стопориться же!
Так в чём костыль-то? Если вы передаёте функцию, которая всегда возвращает false - как, по-вашему, должно останавливаться правило? правильно - никак.
вдумайтесь в смысл Periodical - выполнять правило до тех пор, пока выполняется CanFinish.
Нет понимаю я это. Но разве это правило имеет смысл если сама стратегия в которой это правило работает остановлена? Мне кажется нет. Т.е. не взирая не на какие условия правило должно тормозиться при остановки стратегии...
Неверно. Много ситуаций - тоже самое котирование - когда мы должны дожидаться окончания работы дочерних стратегий перед остановкой базовой.
P.S. Ну да, верно, описался.
Со стратегиями то все правильно...
С правилами всё аналогично. Если тормозится стратегия - надо дождаться пока все правила закончут свою работу. Стратегии состоят ведь из правил. Может мы должны перекрыться там, или заявки снять....
В общем надо завершать - пишите правила таким образом, чтобы они завершались.
Все. Понял спасибо) Извините за долгие расспросы)