← 戻る

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

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

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


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

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

このトピックは参考になりましたか?

トピックを共有

コメント (7)

ログイン または アカウントを作成, コメントを残すにはログインまたは新規登録してください

Mikhail Sukhov
Mikhail Sukhov

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

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

Greene-nsk
Greene-nsk 著者

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


        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 著者

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

Mikhail Sukhov
Mikhail Sukhov

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

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

Greene-nsk
Greene-nsk 著者

Да, отмена остановки в 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. Да, бага, будем лечить.