[BUG?] IsSyncRegister
Atom
31.08.2011
Church


Свойство 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