← Zurück

переход на 3.2.2, OnProcess отсутствует

Не могу догадаться.. Подскажите, пожалуйста.

У меня на версии 3.1.10 были стратегии ActionStrategy и для них вызывался


        protected override StrategyProcessResults OnProcess()
        {
            // если стратегия в процессе остановки;
            if (ProcessState == StrategyProcessStates.Stopping)
            {
                ...
                return StrategyProcessResults.Stop;
            }
        }

Сейчас этого метода нет. Что делать? Как по задумке сейчас надо отписываться от событий и т.п. при остановке стратегии?

War dieses Thema hilfreich?

Thema teilen

Kommentare (7)

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

Mikhail Sukhov
Mikhail Sukhov

Greene-nsk: Что делать? Как по задумке сейчас надо отписываться от событий и т.п. при остановке стратегии?

Так же как и раньше, через OnStopping

Greene-nsk
Greene-nsk Autor

а как тогда временно отменить остановку? у меня это выглядело так:


        protected override StrategyProcessResults OnProcess()
        {
            // если стратегия в процессе остановки
            if (ProcessState == StrategyProcessStates.Stopping)
            {
                // отменяем стратегии исполнения заявок
                if (_processOrdersStrategy != null)
                {
                    switch (_processOrdersStrategy.ProcessState)
                    {
                        case StrategyProcessStates.Runned:
                            _processOrdersStrategy.Stop();
                            return StrategyProcessResults.Continue;
                        case StrategyProcessStates.Stopping:
                            return StrategyProcessResults.Continue;
                    }
                }

                Base.Log.Out("Стратегия " + WealthStrategy.StrategyID + " ОСТАНОВЛЕНА.", LogLevel.Notice);
                return StrategyProcessResults.Stop;
            }
            ...
        }


У OnStopping нет возвращаемого значения. Там можно как-то отложить остановку?

Mikhail Sukhov
Mikhail Sukhov

Greene-nsk: а как тогда временно отменить остановку? у меня это выглядело так:

У OnStopping нет возвращаемого значения. Там можно как-то отложить остановку?

В новой документации написано, что и как.

Greene-nsk
Greene-nsk Autor

В том то и дело, что нет ни одного примера использования OnStopping(), а тем более его прерывания

Mikhail Sukhov
Mikhail Sukhov

Greene-nsk: В том то и дело, что нет ни одного примера использования OnStopping(), а тем более его прерывания

Я имел ввиду про OnProcess

Greene-nsk
Greene-nsk Autor

Да, отмена остановки в OnProcess описана в справке. НО,

  1. OnProcess() начиная с 3.2 теперь только у TimeFrameStrategy. Как отменять у других стратегий?
  2. OnProcess() начиная с 3.2 не вызывается после вызова Stop() стратегии у TimeFrameStrategy (бага?). В 3.1.10 вызывался.
Mikhail Sukhov
Mikhail Sukhov

Greene-nsk: Да, отмена остановки в OnProcess описана в справке. НО,

  1. OnProcess() начиная с 3.2 теперь только у TimeFrameStrategy. Как отменять у других стратегий?
  2. OnProcess() начиная с 3.2 не вызывается после вызова Stop() стратегии у TimeFrameStrategy (бага?). В 3.1.10 вызывался.
  1. Через Stop... Прочитайте в документации что есть TimeFrameStrategy.
  2. Да, бага, будем лечить.