как отлавливать свои глюки?
Atom Ответить
27.02.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
----- дальше опять будут запятые :( --------

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

Теги:


Спасибо:




11 Ответов
Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 27.02.2010
Ответить


Спасибо:

denis

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


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

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

Автор топика
Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 02.03.2010
Ответить


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

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


Спасибо:

denis

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


ага, спасибо.
еще вопрос:
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", то все аналогично.
не пойму где накосячил и куда копать

Автор топика
Спасибо:

denis

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


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

Автор топика
Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 03.03.2010
Ответить


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

Спасибо:

denis

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


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

Автор топика
Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 04.03.2010
Ответить


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

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

Спасибо:

denis

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


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

Автор топика
Спасибо:

denis

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


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

Автор топика
Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 05.03.2010
Ответить


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

Спасибо:


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

loading
clippy