начудил :(
Atom
3/17/2010
denis


теперь при запуске экспорта по ДДЕ одно ядро проца грузится по полной. где можно было так ошибиться? стратегия еще не запущена.

когда стратегия работает, то ошибками сыпет 2010-03-16T20:51:09.8750000+03:00 [0] None => Strategy runned ошибка ренжа: System.ArgumentOutOfRangeException: Specified argument was out of the range of valid values. Parameter name: min at Ecng.ComponentModel.Range1.ValidateBounds(T min, T max) at Ecng.ComponentModel.Range1.Init(T min, T max) at Ecng.ComponentModel.Range`1..ctor(T min, T max) at SampleSMA.MainWindow.DrawSma() in D:\trade\bot\code\stockSharp \SampleSMA\MainWindow.xaml.cs:line 267 Первый этап обработки исключения типа "System.ArgumentOutOfRangeException" в приложении Ecng.ComponentModel.dll 2010-03-16T20:53:35.7187500+03:00 [0] None => Strategy stopping 2010-03-16T20:53:35.8281250+03:00 [0] None => Strategy stopped

код private void DrawSma() { // нас не интересует текущая свечка, так как она еще не сформировалась // и из нее нельзя брать цену закрытия

                   // вычисляем временные отрезки текущей свечки
                    var bounds = _timeFrame.GetCandleBounds(_trader);

                   // если появились новые полностью сформированные свечки
                    if (_lastCandleTime < bounds.Min)
                    {
            try
            {
                // отстут с конца интервала, чтобы не захватить

текущую свечку. var endOffset = TimeSpan.FromSeconds(1); bounds = new Range<DateTime>(_lastCandleTime + _timeFrame, bounds.Min - endOffset); // line 267

               // получаем эти свечки
                var candles =

_candleManager.GetTimeFrameCandles(_strategy.Security, _timeFrame, bounds);

но перед этим еще вилы были с вот этим this._trader.NewTrades += (_all_trades) => this.Sync(() => { try { var _lt = _all_trades.Last(tmp => tmp.Security.Code.Equals(mysec)); // trap papir.price = _lt.Price; } catch (InvalidOperationException ex) { Console.WriteLine("ошибка определения последней сделки: {0}", ex); } }); кривой обработчик всех сделок может грузить проц при выключенной стратегии?


Tags:


Thanks:


< 1 2 3 4  >
denis

Avatar
Date: 3/19/2010
Reply


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

Для быстрого воспроизведения ситуации можно переставить таймфрейм на 30 секунд и лук заменить на риму.

Thanks:

Mikhail Sukhov

Avatar
Date: 3/19/2010
Reply


Тоесть, виновник CandleManager? Для чистоты эксперимента, можете именно оставить скажем минут на 10. Ничего не нужно включать, просто регистрация свечки. Не упадет нагрузка?

Thanks:

denis

Avatar
Date: 3/19/2010
Reply


однако засада :( включаю 10 мин на риме - тормоза остаются, переключаюсь на лук - летает, ставлю фрейм 1 мин - летает, переключаюсь на фьюч лука - летает.

Thanks:

Mikhail Sukhov

Avatar
Date: 3/19/2010
Reply


Тоесть, на 10 минут тормозит, а на 1 - нет? Интересно. Надо бы поглубже копнуть. Пока с ходу не ясно.

Thanks:

denis

Avatar
Date: 3/19/2010
Reply


На риме тормозит и на 1 мин и на 10 мин, на луке 1 мин - летает, на фуче лука тоже летает как будто боится риму :)

Thanks:

Mikhail Sukhov

Avatar
Date: 3/19/2010
Reply


Сколько сделок на луке и на риме?

Thanks:

denis

Avatar
Date: 3/19/2010
Reply


в окне "все сделки" 250 тыс строк, сейчас отфильтрую по каждому инструменту LKM0 = 12800 LKOH = 32500 RIM0 = 204700 хм :/

Thanks:

Mikhail Sukhov

Avatar
Date: 3/23/2010
Reply


Написал нагрузочный тест -

http://stocksharp.googlegroups.com/web/Program.cs?gda=zvVZazwAAAD7ujiFr5Ha_HYNmvj19Tvy_GKAELyqx4z3GZqV5NKOAvOTqSfJAS8Ae9iSzNYZ2LPJFhoxmpKOtqIfKEM19Vl5&gsc=UoP_5QsAAABbesp6p5Fpqgb_84TDDYjR

.

1m сделок. ТФ - 10 сек. Нагрузки на проц никакой. Опять же, спрашивал у других, кто пользуется роботами. Выставляли ТФ - 2 сек. Тоже нет нагрузки... Прогони этот тест. Какие у тебя будут показатели?

Thanks:

denis

Avatar
Date: 3/23/2010
Reply


Спасибо за тест. Погонял, нагрузка около 2-4% вместе с другими приложениями. Изменил // спим секунду, эмулируя задержку Квика Thread.Sleep(TimeSpan.FromSeconds(0.01)); т.е. теперь ждет на порядок меньше, нагрузка стала от 5 до 10% только на это приложение.

От симплСМА оторвал стратегию, нагрузка осталась, сейчас почитаю инструкцию к профилировщику, если он может измерять время выполнения функций и методов, то узнаю где собака порылась.

Thanks:

Mikhail Sukhov

Avatar
Date: 3/23/2010
Reply


Я думаю она в обработчиках... Еще полезно смотреть на DdeError. Если там что-то плохое пишется часто, то оно сильно снижает нагрузку. Вот заметка на эту темуhttp://dotnetperls.com/exception-performance-test

Результаты в самом начале. Падение производительности аж в 6 раз.

Thanks:
< 1 2 3 4  >

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

loading
clippy