начудил :(
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.Range`1.ValidateBounds(T min, T max)
at Ecng.ComponentModel.Range`1.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