[BUG?] IsSyncRegister
Atom
8/31/2011


Свойство CandleManager.IsSyncRegister, судя по всему, не работает.

Тестовый код:
Code
AddInfoLog("IsSyncRegister = {0}", _candleManager.IsSyncRegister);
AddInfoLog("Регистрация свечек...");
//_candleToken = _candleManager.RegisterCandles((new TimeFrameCandle()).GetType(), this.Security, TimeSpan.FromMinutes(1));
_candleToken = _candleManager.RegisterTimeFrameCandles(Security, _timeFrame);
AddInfoLog("Свечки зарегистрированы.");

AddInfoLog("candlesize will be "+(Math.Max(Math.Max(_longPer, _shortPer), _atrPer) + 1));

var cc = _candleManager.GetCandles(_candleToken, Math.Max(Math.Max(_longPer, _shortPer), _atrPer) + 1);
AddInfoLog("cc size = {0}",cc.Count());

Thread.Sleep(5000);

AddInfoLog("Попытка №2");

cc = _candleManager.GetCandles(_candleToken, Math.Max(Math.Max(_longPer, _shortPer), _atrPer) + 1);
AddInfoLog("cc size = {0}", cc.Count());


Результат:
Code
AC$ 31.08.2011 14:27:15.009 IsSyncRegister = True
AC$ 31.08.2011 14:27:15.010 Регистрация свечек...
AC$ 31.08.2011 14:27:15.049 Свечки зарегистрированы.
AC$ 31.08.2011 14:27:15.050 candlesize will be 28
AC$ 31.08.2011 14:27:15.053 cc size = 0
AC$ 31.08.2011 14:27:20.054 Попытка №2
AC$ 31.08.2011 14:27:20.058 cc size = 28


Могу попробовать самостоятельно пофиксить, если откроете мне тот участок кода.

Tags:


Thanks:


1 2  >
Mikhail Sukhov

Avatar
Date: 8/31/2011
Reply


+ нужно еще SyncCandleSource
Thanks:

Church

Avatar
Date: 8/31/2011
Reply


Могу попробовать.
Thanks:

Alexander

Avatar
Date: 8/31/2011
Reply


Church Go to
Могу попробовать.


Вы наверное не поняли.
Фиксить ничего пока пробовать не надо.

Необходимо использовать IsSyncRegister и SyncCandleSource, у вас - только IsSyncRegister используется.
Thanks:

Church

Avatar
Date: 8/31/2011
Reply


У меня вот так:
Code
                this._candleManager = new CandleManager(new SyncTraderCandleSource(Trader))
                {
                    IsSyncRegister = true,
                };
Thanks:

Mikhail Sukhov

Avatar
Date: 8/31/2011
Reply


Church Go to
У меня вот так:
Code
                this._candleManager = new CandleManager(new SyncTraderCandleSource(Trader))
                {
                    IsSyncRegister = true,
                };


И? Работает?
Thanks:

Church

Avatar
Date: 8/31/2011
Reply


Нет [blink]
Thanks:

Mikhail Sukhov

Avatar
Date: 8/31/2011
Reply


Church Go to
Нет [blink]


Так а сделки то есть на тот момент, когда вы первый раз вызываете GetCandles? Регистрация регистрацией, но если у вас сделки не накачены, то CandleManager их из воздуха не сотворит.
Thanks:

Church

Avatar
Date: 8/31/2011
Reply


Ну, трейдер инициализируется на несколько десятков строк кода раньше. Я думал, что эта синхронизация затормозит поток до тех пор, пока не прогрузятся сделки (и по ним не создадутся свечки) до текущего момента.
Thanks:

Mikhail Sukhov

Avatar
Date: 9/1/2011
Reply


Church Go to
Я думал, что эта синхронизация затормозит поток до тех пор, пока не прогрузятся сделки


Такое нужно делать на уровне кода, и именно сделать лок до тех пор, пока не будут получены текущие свечки. И вот уже далее и вызывать GetCandles.
Thanks:

Church

Avatar
Date: 9/1/2011
Reply


Сейчас у меня именно так, но поскольку функция требуется во многих стратегях, думал что она может уже быть включена в S#.
Thanks:
1 2  >

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

loading
clippy