начудил :(
Atom
17.03.2010


теперь при запуске экспорта по ДДЕ одно ядро проца грузится по полной.
где можно было так ошибиться? стратегия еще не запущена.

когда стратегия работает, то ошибками сыпет
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