Как сделать заявки шлюза заявками стратегии?

Как сделать заявки шлюза заявками стратегии?
Atom
12/22/2011
pehas


Если стратегия, например, аварийно прекратила работу (обрыв связи, перезагрузка и т.д.), но при этом успела выставить заявки, то при следующем включении - это уже будут заявки шлюза а не стратегии.

Как сделать все заявки шлюза (обычные и стоп) заявками стратегии?


Tags:


Thanks:


freelancer

Avatar
Date: 12/22/2011
Reply


Я у себя в такой ситуации ищу потом через шлюз. заявками стратегии не пользуюсь. ведь потом уже не понять, к чему относится этот стоп

Thanks:

Mikhail Sukhov

Avatar
Date: 12/22/2011
Reply


pehas: Если стратегия, например, аварийно прекратила работу (обрыв связи, перезагрузка и т.д.), но при этом успела выставить заявки, то при следующем включении - это уже будут заявки шлюза а не стратегии.

Как сделать все заявки шлюза (обычные и стоп) заявками стратегии?

http://stocksharp.com/doc/html/M_StockSharp_Algo_Strategies_Strategy_ProcessNewOrders.htm

Thanks:

pehas

Avatar
Date: 12/22/2011
Reply


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


                foreach (var oldStop in this.Trader.StopOrders.Where(s => s.State == OrderStates.Active))
                {
                    var newStop = oldStop.Clone();
                    newStop.Price = Security.GetWorsePrice(oldStop.Direction);
                    this.ReRegisterOrder(oldStop, newStop);
                }

т.е. фактически перерегистрировать заявки

Thanks:

pehas

Avatar
Date: 12/22/2011
Reply


Mikhail Sukhov: http://stocksharp.com/doc/html/M_StockSharp_Algo_Strategies_Strategy_ProcessNewOrders.htm

Я пробовал это раньше, но у меня почему-то не работает. Версия библиотеки 4.0.10


            var stops = this.ProcessNewOrders(this.Trader.StopOrders, true);
            Thread.Sleep(5000);
            CancelActiveOrders();

Итог - Переменная stops содержит 0 элементов, CancelActiveOrders() не снимает стопы, которые висели в квике на момент включения робота (т.е. стопы шлюза не назначились стратегии) Или я неверно понял назначение метода?

Thanks:

freelancer

Avatar
Date: 12/22/2011
Reply


Запускаем стратегию. Висит какой-то стоп. И как же стратегия узнает, что это её стоп ?

Thanks:

Alexander

Avatar
Date: 12/22/2011
Reply


переопределите ProcessNewOrders (возвращая свой массив объединённый с массивом из base.ProcessNewOrders)

и не вызывайте его сами, он вызывается из OnStarting для стопов и обычных заявок

Thanks: pehas

pehas

Avatar
Date: 12/22/2011
Reply


freelancer: Запускаем стратегию. Висит какой-то стоп. И как же стратегия узнает, что это её стоп ? У меня работает только одна стратегия на весь портфель. Соответственно, все что в терминале я могу смело отнести к стратегии

Alexander Mukhanchikov: переопределите ProcessNewOrders (возвращая свой массив объединённый с массивом из base.ProcessNewOrders) и не вызывайте его сами, он вызывается из OnStarting для стопов и обычных заявок То что надо, спасибо!

Thanks:


Attach files by dragging & dropping, , or pasting from the clipboard.

loading
clippy