начудил :(
Atom
17.03.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);
}
});
кривой обработчик всех сделок может грузить проц при выключенной
стратегии?

Теги:


Спасибо:


< 1 2 3 4  >
denis

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


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

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

Спасибо:

Mikhail Sukhov

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


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

Спасибо:

denis

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


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

Спасибо:

Mikhail Sukhov

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


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

Спасибо:

denis

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


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

Спасибо:

Mikhail Sukhov

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


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

Спасибо:

denis

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


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

Спасибо:

Mikhail Sukhov

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


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

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

.

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

Спасибо:

denis

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


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

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

Спасибо:

Mikhail Sukhov

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


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

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

Спасибо:
< 1 2 3 4  >

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

loading
clippy