示例#1
0
        protected override void OnStarted()
        {
            _series = new CandleSeries(typeof(TimeFrameCandle), Security, TimeFrame);

            _shortSma.Length = ShortSmaPeriod;
            _longSma.Length  = LongSmaPeriod;

            if (_area == null)
            {
                _area = new ChartArea();

                _area.Elements.Add(new ChartCandleElement());
                _area.Elements.Add(new ChartIndicatorElement {
                    Color = Colors.Green, StrokeThickness = 1
                });
                _area.Elements.Add(new ChartIndicatorElement {
                    Color = Colors.Red, StrokeThickness = 1
                });
                _area.Elements.Add(new ChartTradeElement());

                new ChartAddAreaCommand(_area).Process(this);
            }

            this
            .WhenNewMyTrades()
            .Do(trades =>
            {
                foreach (var myTrade in trades)
                {
                    new ChartDrawCommand(myTrade.Trade.Time, new Dictionary <IChartElement, object>
                    {
                        { _area.Elements[3], myTrade }
                    }).Process(this);
                }
            })
            .Apply(this);

            _series
            .WhenCandles()
            .Do(Process)
            .Apply(this);

            this.GetCandleManager().Start(_series);

            Security
            .WhenMarketDepthChanged(SafeGetConnector())
            .Do(md => new UpdateMarketDepthCommand(md).Process(this))
            .Apply(this);

            SafeGetConnector().RegisterMarketDepth(Security);

            base.OnStarted();
        }