CandleBuilder
Atom Ответить
22.10.2011


Добрый день. Раньше было так:

var cf = new MyCandleFactory();
candleManager.UnRegisterCandleFactory(typeof(TimeFrameCandle));
candleManager.RegisterCandleFactory(cf);

А теперь как? В CandleBuilder есть свойство Factories, но я там не нашел методов регистрации и отмены регистрации. Нужно просто добавить фабрику через метод Add()? а как удалить старую?

И еще вопрос, если создать CandleManager через конструктор который принимает ITrader, как подключить собственную фабрику?

Теги:


Спасибо:




3 Ответов
Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 22.10.2011
Ответить


InsiderHSE Перейти
а как удалить старую?


Remove

InsiderHSE Перейти
И еще вопрос, если создать CandleManager через конструктор который принимает ITrader, как подключить собственную фабрику?


((CandleBuilder)manager.Sources[0]).Factories.Add()
Спасибо:

RomSunZ

Фотография
Программист
Дата: 01.11.2011
Ответить


Подскажите как более правильно написать код по регистрации своей CandlrFactory? В версии 4.03 я похоже через "попу" удаляю регистрацию TimeFrameCandleFactory:

Код

                case CandleTypes.TimeFrame:
                    TimeFrameCandleFactoryDelta candleFactory = new TimeFrameCandleFactoryDelta();
                    /*
                    _candleManager.UnRegisterCandleFactory(typeof(TimeFrameCandle));
                    _candleManager.RegisterCandleFactory(candleFactory);
                    token = _candleManager.RegisterTimeFrameCandles(security, this.TimeFrame.SelectedTime);
                     */
                    var factories=((CandleBuilder)candleManager.Sources[0]).Factories;
                    foreach (var tf in factories)
                    {
                        var tp = tf.GetType();
                        if (tp == typeof(TimeFrameCandleFactory)) 
                        { factories.Remove(tf);
                          break;
                        }
                    }
                    factories.Add(candleFactory);
                    token = candleManager.Register(typeof(TimeFrameCandle), security, this.TimeFrame.SelectedTime);
                    break;

Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 01.11.2011
Ответить


RomSunZ Перейти
Подскажите как более правильно написать код по регистрации своей CandlrFactory? В версии 4.03 я похоже через "попу" удаляю регистрацию TimeFrameCandleFactory:


Да, неудобно получается. Добавлю метод удаления фабрики по типу свечки.
Спасибо:


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

loading
clippy