[BUG?] IsSyncRegister
Atom
31.08.2011


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

Тестовый код:
Код
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());


Результат:
Код
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


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

Теги:


Спасибо:




1 2  >
Mikhail Sukhov

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


+ нужно еще SyncCandleSource
Спасибо:

Church

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


Могу попробовать.
Спасибо:

Alexander

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


Church Перейти
Могу попробовать.


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

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

Church

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


У меня вот так:
Код
                this._candleManager = new CandleManager(new SyncTraderCandleSource(Trader))
                {
                    IsSyncRegister = true,
                };
Спасибо:

Mikhail Sukhov

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


Church Перейти
У меня вот так:
Код
                this._candleManager = new CandleManager(new SyncTraderCandleSource(Trader))
                {
                    IsSyncRegister = true,
                };


И? Работает?
Спасибо:

Church

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


Нет Blink
Спасибо:

Mikhail Sukhov

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


Church Перейти
Нет Blink


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

Church

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


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

Mikhail Sukhov

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


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


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

Church

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


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

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

loading
clippy