проблема с WhenIntervalElapsed
Atom
05.07.2012
Azat


Как правильно прописывать WhenIntervalElapsed? при следующем коде метод Test вызывается почему-то несколько раз


protected override void OnStarting()
        {
            this.Trader.WhenIntervalElapsed(new TimeSpan(0, 0, 10)).Do(Test).Apply(this);
            base.OnStarting();
        }
public void Test()
        {
            this.AddInfoLog("1....");
            this.AddInfoLog("2....");
            this.AddInfoLog("3....");
        }

При этом, если в методе Test всего одна строчка, то проблема пропадает.


Теги:


Спасибо:


< 1 2 
Alexander

Фотография
Дата: 06.07.2012
Ответить


С trunk не собирается, говорит что

Ошибка 1 "StockSharp.Quik.QuikTrader" не содержит определения для "RegisterQuotes" и не был найден метод расширения "RegisterQuotes", принимающий тип "StockSharp.Quik.QuikTrader" в качестве первого аргумента (возможно, пропущена директива using или ссылка на сборку) А если заменить StockSharp.Algo.dll из trunk на версию из 4.1.1, то собирается, но при запуске выдает Отсутствует реализация метода "get_RegisteredSecurities" в типе "StockSharp.Quik.QuikTrader" из сборки "StockSharp.Quik, Version=4.1.2.0, Culture=neutral, PublicKeyToken=null".

Ух. не собирается что? Ваш проект? Ну так поправьте всё что он вам говорит. RegisterQuotes переименовался в RegisterMarketDepth

Спасибо:

Azat

Фотография
Дата: 06.07.2012
Ответить


Да, собрал, не сообразил просто, что метод переименовали:) А проблема осталось, только теперь не 5 вызовов с включенным прогоном по нейросетям, а так же два-три.

Спасибо:

Moadip

Фотография
Дата: 06.07.2012
Ответить


Попробовал воспроизвести ошибку. Сборка 18107.


06.07.2012 16:20:18.153 |            | Бид 136740 10
06.07.2012 16:20:18.295 |            | Бид 136740 15
06.07.2012 16:20:18.403 |            | Бид 136740 15
06.07.2012 16:20:18.652 |            | Бид 136740 15
06.07.2012 16:20:18.842 |            | Бид 136745 15
06.07.2012 16:20:19.102 |            | Бид 136745 3
06.07.2012 16:20:19.137 |            | 1....
06.07.2012 16:20:19.137 |            | 2....
06.07.2012 16:20:19.158 |            | 3....
06.07.2012 16:20:19.181 |            | 1....
06.07.2012 16:20:19.204 |            | 2....
06.07.2012 16:20:19.225 |            | 3....
06.07.2012 16:20:19.247 |            | 1....
06.07.2012 16:20:19.269 |            | 2....
06.07.2012 16:20:19.291 |            | 3....
06.07.2012 16:20:19.312 |            | 1....
06.07.2012 16:20:19.335 |            | 2....
06.07.2012 16:20:19.358 |            | 3....
06.07.2012 16:20:19.359 |            | Бид 136745 3
06.07.2012 16:20:19.495 |            | Бид 136745 3
06.07.2012 16:20:19.603 |            | Бид 136745 3
06.07.2012 16:20:19.854 |            | Бид 136740 8
06.07.2012 16:20:20.045 |            | Бид 136740 8
06.07.2012 16:20:20.282 |            | Бид 136750 13
06.07.2012 16:20:20.381 |            | 1....
06.07.2012 16:20:20.381 |            | 2....
06.07.2012 16:20:20.386 |            | Бид 136740 9
06.07.2012 16:20:20.391 |            | 3....
06.07.2012 16:20:20.604 |            | Бид 136750 20
06.07.2012 16:20:20.717 |            | Бид 136755 20
06.07.2012 16:20:20.964 |            | Бид 136755 20
06.07.2012 16:20:21.147 |            | Бид 136745 2
06.07.2012 16:20:21.395 |            | 1....
06.07.2012 16:20:21.395 |            | 2....
06.07.2012 16:20:21.400 |            | 3....
06.07.2012 16:20:21.415 |            | Бид 136745 2
06.07.2012 16:20:21.661 |            | Бид 136755 20
06.07.2012 16:20:21.922 |            | Бид 136765 5
06.07.2012 16:20:22.022 |            | Бид 136750 1
06.07.2012 16:20:22.257 |            | Бид 136750 3
06.07.2012 16:20:22.351 |            | Бид 136755 5
06.07.2012 16:20:22.409 |            | 1....
06.07.2012 16:20:22.410 |            | 2....
06.07.2012 16:20:22.410 |            | 3....
06.07.2012 16:20:22.617 |            | Бид 136750 3
06.07.2012 16:20:22.881 |            | Бид 136750 3
06.07.2012 16:20:22.919 |            | Бид 136750 3
06.07.2012 16:20:23.399 |            | Бид 136760 1

Это если в качестве вывода лога использовать GuiLogListener. Если с FileLogListener, бага нет.


16:24:21.249 |            | Бид 136680 7
16:24:21.512 |            | Бид 136680 1
16:24:21.576 |            | Бид 136675 13
16:24:21.687 |            | Бид 136675 10
16:24:21.939 |            | Бид 136675 9
16:24:22.123 |            | Бид 136675 9
16:24:22.229 |            | 1....
16:24:22.229 |            | 2....
16:24:22.229 |            | 3....
16:24:22.332 |            | Бид 136675 7
16:24:22.447 |            | Бид 136675 6
16:24:22.699 |            | Бид 136675 6
16:24:22.955 |            | Бид 136675 6
16:24:23.232 |            | 1....
16:24:23.232 |            | 2....
16:24:23.232 |            | 3....
16:24:23.246 |            | Бид 136675 7
16:24:23.523 |            | Бид 136675 6
16:24:23.669 |            | Бид 136675 6
16:24:23.949 |            | Бид 136675 6
16:24:24.214 |            | Бид 136675 6
16:24:24.246 |            | 1....
16:24:24.246 |            | 2....
16:24:24.246 |            | 3....
16:24:24.502 |            | Бид 136675 6
16:24:24.635 |            | Бид 136665 71
16:24:24.744 |            | Бид 136675 1
16:24:25.087 |            | Бид 136675 1
16:24:25.188 |            | Бид 136670 3
16:24:25.260 |            | 1....
16:24:25.260 |            | 2....
16:24:25.260 |            | 3....
16:24:25.444 |            | Бид 136670 3
16:24:25.699 |            | Бид 136665 69
16:24:25.943 |            | Бид 136665 66
16:24:26.052 |            | Бид 136665 66
16:24:26.274 |            | 1....
16:24:26.274 |            | 2....
16:24:26.274 |            | 3....
16:24:26.324 |            | Бид 136665 65
16:24:26.544 |            | Бид 136665 63
16:24:26.603 |            | Бид 136665 63
16:24:26.867 |            | Бид 136665 63
16:24:27.113 |            | Бид 136665 63
16:24:27.288 |            | 1....
16:24:27.288 |            | 2....
16:24:27.288 |            | 3....
16:24:27.368 |            | Бид 136665 63
16:24:27.479 |            | Бид 136665 63
16:24:27.722 |            | Бид 136665 63
16:24:27.973 |            | Бид 136665 63
16:24:28.245 |            | Бид 136670 1
16:24:28.303 |            | 1....
16:24:28.303 |            | 2....
16:24:28.303 |            | 3....
16:24:28.350 |            | Бид 136670 2
16:24:28.630 |            | Бид 136670 2
16:24:28.908 |            | Бид 136665 63
16:24:29.130 |            | Бид 136670 23
16:24:29.233 |            | Бид 136675 1
16:24:29.317 |            | 1....
16:24:29.317 |            | 2....
16:24:29.317 |            | 3....
16:24:29.468 |            | Бид 136675 1
16:24:29.618 |            | Бид 136670 7
16:24:29.848 |            | Бид 136675 3
16:24:30.113 |            | Бид 136670 7
16:24:30.258 |            | Бид 136670 7
16:24:30.329 |            | 1....
16:24:30.329 |            | 2....
16:24:30.329 |            | 3....
16:24:30.487 |            | Бид 136670 7
16:24:30.731 |            | Бид 136670 2
16:24:31.013 |            | Бид 136670 1
16:24:31.125 |            | Бид 136665 60
16:24:31.341 |            | 1....
16:24:31.341 |            | 2....
16:24:31.341 |            | 3....
16:24:31.346 |            | Бид 136665 60
16:24:31.619 |            | Бид 136665 60
16:24:31.654 |            | Бид 136665 62
16:24:31.768 |            | Бид 136665 60
16:24:32.068 |            | Бид 136665 62
16:24:32.341 |            | Бид 136665 61
16:24:32.357 |            | 1....
16:24:32.357 |            | 2....
16:24:32.357 |            | 3....
16:24:32.543 |            | Бид 136665 61
16:24:32.933 |            | Бид 136665 45
16:24:33.200 |            | Бид 136665 43
16:24:33.371 |            | 1....
16:24:33.371 |            | 2....
16:24:33.371 |            | 3....
16:24:33.768 |            | Бид 136665 41
16:24:34.147 |            | Бид 136665 41
16:24:34.385 |            | 1....
16:24:34.385 |            | 2....
16:24:34.385 |            | 3....
16:24:34.416 |            | Бид 136665 41
16:24:34.678 |            | Бид 136665 37
16:24:35.023 |            | Бид 136665 37
16:24:35.303 |            | Бид 136665 37
16:24:35.399 |            | 1....
16:24:35.399 |            | 2....
16:24:35.399 |            | 3....
16:24:35.616 |            | Бид 136665 36
16:24:36.162 |            | Бид 136665 36
16:24:36.383 |            | Бид 136665 7
16:24:36.413 |            | 1....
16:24:36.413 |            | 2....
16:24:36.413 |            | 3....
16:24:36.491 |            | Бид 136660 20
16:24:36.772 |            | Бид 136660 19
16:24:37.045 |            | Бид 136660 11
16:24:37.313 |            | Бид 136660 10

Но если воткнуть искусственную задержку, то баг снова появляется.


        private void Test()
        {
            this.AddInfoLog("1....");
            this.AddInfoLog("2....");
            this.AddInfoLog("3....");
            Thread.Sleep(500);
        }

Спасибо:

Alexander

Фотография
Дата: 06.07.2012
Ответить


18108 последняя, её и надо использовать. В ней я фиксил.

Спасибо:

Azat

Фотография
Дата: 06.07.2012
Ответить


Спасибо, в 18108 проблема исчезла:) Вот только проблема с MarketRuleHelper.WhenTimeCome осталось Если добавить следующее, то приложение просто падает через 10 секунд без эксцепшенов, а логах из файла видно, что напоследок оно так же несколько раз вызвало Test()


this.Trader.WhenTimeCome(DateTime.Now.AddSeconds(10)).Do(Test).Apply(this);

Спасибо:

Azat

Фотография
Дата: 09.07.2012
Ответить


А если использовать следующий код, то падает только на последнем элементе, то есть через 20 секунд после запуска.


this.Trader.WhenTimeCome(new []{DateTime.Now.AddSeconds(10),DateTime.Now.AddSeconds(15), DateTime.Now.AddSeconds(20)}).Do(Test).Apply(this);

Спасибо:

Alexander

Фотография
Дата: 09.07.2012
Ответить


Ставьте брейкпоинты в ваш метод Test, смотрите где конкретно падает. Смотрите под VS, в окно Output он всё напишет. Чудес не бывает, приложение не может падать просто так.

Спасибо:

Azat

Фотография
Дата: 09.07.2012
Ответить


до 18108, он просто падал, никаких сообщений в Output не выводил, в логах было видно, что он запускал Test() несколько раз, сейчас в логах из файла так:

12:23:17.500 | | Стратегия запущена. 12:23:16.421 | | QuikTrader | Экспорт запущен. 12:23:18.109 | | Бид 9017 10 12:23:19.109 | | Бид 9017 20 12:23:20.109 | | Бид 9017 20 12:23:21.109 | | Бид 9017 20 12:23:22.109 | | Бид 9015 11 12:23:23.109 | | Бид 9014 35 12:23:24.109 | | Бид 9016 10 12:23:25.109 | | Бид 9016 10 12:23:26.109 | | Бид 9015 10 12:23:27.109 | | Бид 9015 10 12:23:27.531 | | 1... 12:23:27.593 | | 2... 12:23:27.609 | | 3... 12:23:28.109 | | Бид 9016 10 12:23:29.109 | | Бид 9016 9 12:23:30.109 | | Бид 9015 9 12:23:32.109 | | Бид 9015 9 12:23:32.531 | | 1... 12:23:32.531 | | 2... 12:23:32.546 | | 3... 12:23:33.109 | | Бид 9015 9 12:23:34.109 | | Бид 9015 9 12:23:35.109 | | Бид 9015 9 12:23:36.109 | | Бид 9015 9 12:23:37.109 | | Бид 9015 9 12:23:37.531 | | 1... 12:23:37.531 | | 2... 12:23:37.578 | | 3... 12:23:37.640 | Error | UnhandleException | System.IndexOutOfRangeException: Индекс находился вне границ массива. в StockSharp.Algo.MarketRuleHelper.#=q5tE5pMwBLHpbY5GB03GIig==.#=qpwQa0ec4L11d9qoHhvukUQ==(MarketTimer #=qrp1xDbP_kZMfjVGQfYoKiQ==, Boolean #=qkLAqWGH2XKiJVtIFuXfv0Q==) в StockSharp.Algo.MarketTimer.#=qHWOSW6k$_YnVe_5fvF$1lVbPeaqRg9hj5p9vwh7OX6w=() в Ecng.Common.DelegateHelper.SafeInvoke(Action handler) в StockSharp.Algo.BaseTrader.RaiseMarketTimeChanged() в StockSharp.Algo.BaseTrader.OnMarketTimeChanged() в Ecng.Common.ThreadingHelper.<>c__DisplayClass1.b__0(Object s) в System.Threading._TimerCallback.TimerCallback_Context(Object state) в System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean ignoreSyncCtx) в System.Threading._TimerCallback.PerformTimerCallback(Object state)

Спасибо:

Alexander

Фотография
Дата: 09.07.2012
Ответить


Не воспроизводится у меня. Используется 4.1.2?

Если да - кидайте минимальный проект, на котором это воспроизведётся.

Спасибо:

Azat

Фотография
Дата: 09.07.2012
Ответить


Спасибо:
< 1 2 

Добавить файлы через драг-н-дроп, , или вставить из буфера обмена.

loading
clippy