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

Теги:


Спасибо:


<< < 2 3 4 
denis

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


С профилировщиком пока не разобрался :(
Но воспроизвел тупняк на Sample и не смог воспроизвести на
SampleConsole. Сейчас еще немного поковыряю и добавлю стратегию. О
резалтах отпишусь.

Спасибо:

denis

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


Сделал пока вывод пять сек свечи на риме - летает! :) Супер! респекты
и уважуха!
Пошел приделывать остальные куски.
ссылка на код

https://docs.google.com/leaf?id=0Bw2gQDvf41vtNTVkOWEwNTgtMmU1ZS00MjRmLTg1NDEtNGM2NGU4NjliNmFh&sort=name&layout=list&num=50


Спасибо:

Mikhail Sukhov

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


Я что-то упустил. Проблема идентифицировалась?

Спасибо:

denis

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


Летает в SampleConsole, а в Sample и SampleSMA - тормозит. Куда думать
- не знаю, но может из-за GUI-морды и синхронизаций с ней.
Кусок из SampleConsole:

const string secCode = "RIM0";
Security lkoh = null;
CandleManager _candleManager;
TimeSpan _timeFrame = TimeSpan.FromSeconds(5);
StrategyManager _manager = new StrategyManager();

const string quikPath = @"C:\Program Files\info\";

// создаем соединение с Quik-ом
using (var trader = new QuikTrader(quikPath))
{
_candleManager = new CandleManager(trader);
// подписываемся на событие появление инструментов
trader.NewSecurities += securities =>
{
if (lkoh == null)
{
// находим Лукойл и присваиваем ее переменной lkoh
lkoh = securities.FirstOrDefault(sec => sec.Code == secCode);

if (lkoh != null)
{
Console.WriteLine("Инструмент Лукойл появился");

//new TestCandleManager(trader, lkoh).NewCandles += (t, c) =>
Console.WriteLine(c.Count());
//waitHandle.Set();

_candleManager.RegisterTimeFrameCandles(lkoh, _timeFrame);
_candleManager.NewCandles += (token,
candles) =>
{
//DrawCandles(candles);
var _lc =
candles.LastOrDefault(tmp => tmp.Security.Code.Equals("RIM0"));
if (_lc != null)
Console.WriteLine("o = " +
_lc.OpenPrice + " h = " + _lc.HighPrice + " l = " + _lc.LowPrice + " c
= " + _lc.ClosePrice);

};
}
}
};
//

// запускаем экспорт по DDE
//trader.StartDde(new[] { trader.SecuritiesTable });
trader.StartDde();

если и есть нагрузка, то она пренебрежительно мала и не поддается
обнаружению "на глаз"

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

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

loading
clippy