как отлавливать свои глюки?


как отлавливать свои глюки?
Atom Reply
2/27/2010


переделал алгоритм SMA на свой, все работает, но как-то не так :)
нужно посмотреть какие значения в буфере
private readonly List<TimeFrameCandle> _buffer = new
List<TimeFrameCandle>();

сделал вывод в файл, там формат разделителя разный :) он меняется с
точки на запятую и обратно при следующем вызове
вот лои пятиминуток лука
----- первый вызов --------
L 1577,4
L 1577,02
L 1577,13
L 1577,03
L 1578,08
L 1578,08
L 1578,94
L 1578,94
L 1579,2
L 1579,2
L 1578,08
L 1578,08
L 1579,4
L 1579,4
----- второй вызов --------
L 1577.4
L 1577.02
L 1577.13
L 1577.03
L 1578.08
L 1578.08
L 1578.94
L 1578.94
L 1579.2
L 1579.2
L 1578.08
L 1578.08
L 1579.4
L 1579.4
L 1580
----- дальше опять будут запятые :( --------

в какую сторону надо копать?

Tags:


Thanks:




11 Answers
Mikhail Sukhov

Avatar
Articles author Programmer Trader
Date: 2/27/2010
Reply


Thanks:

denis

Avatar
Date: 3/2/2010
Reply


спасибо.
вылечил через
var cci2 = new
CultureInfo(Thread.CurrentThread.CurrentCulture.Name);
cci2.NumberFormat.NumberDecimalSeparator = ".";
Thread.CurrentThread.CurrentCulture = cci2;
код робота выполняется в другом потоке, вот и выставил на другой
поток.

правильно я понял, что Strategy.OnProcess() вызывается когда истечет
время отрисовки свечи? на примере SampleSMA.
заморочка в том что хочу при выходе из канала запустить чилдСтратеги
лучший бид, а не лупить в рынок стоп приказом. Как нужно сделать,
чтобы проверять каждый тик и рассчитывать уровень по свечкам?

Topic starter
Thanks:

Mikhail Sukhov

Avatar
Articles author Programmer Trader
Date: 3/2/2010
Reply


Вот тут я ответил, когда вызывается onProcess

http://groups.google.co.uk/group/stocksharp/browse_thread/thread/5d141bfd66e1b38d?hl=en


Thanks:

denis

Avatar
Date: 3/3/2010
Reply


ага, спасибо.
еще вопрос:
public partial class MainWindow
{
private readonly TimeSpan _timeFrame = TimeSpan.FromMinutes(5);
private readonly TimeSpan _timeFrameTS =
TimeSpan.FromSeconds(1);
а в
protected override bool OnProcess()
пишу это
var lt = this.Security.LastTrade.Price;

using (StreamWriter sw = File.AppendText("debug.txt"))
{
sw.WriteLine(" lt = {0} ", lt);
}
фаром смотрел лог, там последняя сделка притормаживает от трех сек до
десяти - это нормально? при том что свечки рисуются мгновенно, а вот
стратеги думает.
если смотреть через "type debug.txt", то все аналогично.
не пойму где накосячил и куда копать

Topic starter
Thanks:

denis

Avatar
Date: 3/3/2010
Reply


правильно я понимаю что значение Security.LastTrade.Price берется из
таблицы "Инструменты"? которая сама тормозит относительно таблицы "Все
сделки"
и как взять из всех сделок? Trade.Price ?
ща проверю

Topic starter
Thanks:

Mikhail Sukhov

Avatar
Articles author Programmer Trader
Date: 3/3/2010
Reply


Да, таблица инструмент чуть тормознее, чем все сделки, и еще более
тормознее, чем стакан. Только уж 3 секунды совсем много. Квиковцы
декларируют около 1 сек. Видимо брокер шалит...

Thanks:

denis

Avatar
Date: 3/4/2010
Reply


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

Topic starter
Thanks:

Mikhail Sukhov

Avatar
Articles author Programmer Trader
Date: 3/4/2010
Reply


Загрузка только на SampleSma? Вообще, большая нагрузка при экспорте
всех сделок. Но это происходит только в первые моменты - когда робот
стартует и сделок набралось порядочно. Что касается SampleSma - то это
графика =) Компонент для графиков я брал сhttp://www.visifire.com/У
них он не совсем в релиз стадии. Но другого тогда я не нашел - потому
что мне нужно и под WPF и под Sliverlight. Вот он у меня тормозит.
Может быть обновить версию. Я давно не слежу за новыми версиями этой
компоненты. А вообще мне больше понравился вот этот компонент

http://wpf.amcharts.com/По скорости его не смотрел, но в отличии от
ВисиФаер он ориентирован на трейдинг. С удовольствием вставлю в
дистрибутив исходники (можно не исходники) замену для ChartWindow что
есть сейчас в S#.

Thanks:

denis

Avatar
Date: 3/5/2010
Reply


еще на SampleCandles, поставил 20 сек свечи на фуче ГП и через час
ядро нагружено по полной рисованием :)
разовая нагрузка при старте - это понятно, вопрос в постоянной и
увеличивающейся нагрузке.
ладно, ща попробую вырезать рисовалку, но оставить _candleManager, о
нагрузке отпишусь.
про впф пока ничего не скажу, в книге это следующая глава :) прочу -
наковыряю.

Topic starter
Thanks:

denis

Avatar
Date: 3/5/2010
Reply


сделал так
private void DrawCandles(IEnumerable<Candle> candles)
{
//this.Sync(() => _chart.DrawCandles(candles));
}
все летает :) даже при старте нет эпических тормозов, а при работе
почти простой на проце амд х2 5200

Topic starter
Thanks:

Mikhail Sukhov

Avatar
Articles author Programmer Trader
Date: 3/5/2010
Reply


Визуализация - это тормоза. Поэтому у меня роботы и графические пульты
разнесены на разные компьютеры ;-)

Thanks:


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

loading
clippy