Как добавить новый тип свечей?
Не получается у меня методом тыка это сделать (
Задача такая, использую RangeCandle 100 на пунктов:
Хочу к примеру изменить RangeCandle - сделать чтобы максимальная дискретность свечи была секунда - т.е. если кто-то ударит по рынку на 500п, то я хочу увидеть одну свечу на 500пп вместо пяти свечей по 100п - всё равно в промежутке между ними войти в маркет невозможно.
Попытка 1.
Code
class RangeDelayCandleFactory : RangeCandleFactory
{
public override bool IsCandleFinished(CandleToken<RangeCandle, Unit> token, RangeCandle currentCandle, Trade trade)
{
return base.IsCandleFinished(token, currentCandle, trade) &&
(currentCandle.Time.Minute != trade.Time.Minute || currentCandle.Time.Second != trade.Time.Second);
}
}
При попытке candleManager.RegisterCandleFactory(candleFactory) - ругается что для RangeCandles фабрика уже зарегистрирована.
Попытка 2.
Делаю class RangeDelayCandle : RangeCandle.
Наследуюсь от CandleFactory, дублирую один в один код из RangeCandleFactory заменяя RangeCandle на RangeDelayCandle
Теперь не ругается.
Code
RangeDelayCandleFactory candleFactory = new RangeDelayCandleFactory();
candleFactory.CreateToken(Security, priceRange);
candleManager.RegisterCandleFactory(candleFactory);
...
_manager.StateChanged += () => this.GuiSync(() =>
{
if (_manager.State != StrategyManagerStates.Runned)
{
this.FindedTrades.ItemsSource = candleManager.GetCandles<RangeDelayCandle, Unit>(Security, priceRange, new Range<DateTime>(this.FromDate, this.ToDate));
}
}
Но свечи так и не появились. Если делать candleManager.RegisterRangeCandles(Security, priceRange) - свечки строятся
Что я ещё упустил?