Example #1
0
        protected override void OnTick(DarkLightEventArgs de)
        {
            _date = de.Tick.date;
            _time = de.Tick.time;

            _response.GotTick(de.Tick);
        }
Example #2
0
        void backtestComplete()
        {
            string[] r = _messageBuilder.ToString().Split(Environment.NewLine.ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
            foreach (string l in r)
            {
                //_activityModel.Messages.Add(new ObservableMessage {Message = l});
                Messages.Add(new ObservableMessage {
                    Message = l
                });
            }

            IndicatorTable = _indicatorTable;
            TickTable      = _tickCollection;
            OrderTable     = _orderCollection;
            FillTable      = _fillCollection;
            PositionTable  = _positionCollection;

            Plots = new ObservableCollection <TimePlot>(_plotMap.Values);
            //_updatePlots();

            //ResultsTable = _resultsModel.RunResults(_responseName + "." + _prettyTickDataFiles, _tradeList);

            var name           = _responseName + "." + _prettyTickDataFiles;
            var resultInstance = DarkLightResults.GetDarkLightResults(name, _tradeList, PublishMessage, 0.0001m, 0.0012m);

            ResultsList = new ObservableCollection <KeyValuePair <string, string> >(PlottingUtilities.GetFieldAndPropertyValueList(resultInstance));
            Results     = resultInstance;

            var de = new DarkLightEventArgs(EventType.SessionEnd);

            _publish(de);

            _activityModel.NumberTestsCompleted = _activityModel.NumberTestsCompleted + 1;
        }
Example #3
0
        protected override void OnChartLabel(DarkLightEventArgs de)
        {
            var col   = de.Color;
            var price = de.Decimal;
            var bar   = de.Integer;
            var label = de.String;

            Color wpfColor = Color.FromArgb(col.A, col.R, col.G, col.B);

            var plot = new TimePlot
            {
                Label      = label,
                PointColor = wpfColor,
                PlotPoints = new List <TimePlotPoint>(),
                Selected   = true,
            };

            var point = new TimePlotPoint
            {
                Time  = Util.FT2DT(bar),
                Value = price,
            };

            plot.PlotPoints.Add(point);

            if (!_plotMap.ContainsKey(label))
            {
                _plotMap.Add(label, plot);
            }
            else
            {
                point = plot.PlotPoints[0];
                _plotMap[label].PlotPoints.Add(point);
            }
        }
Example #4
0
 public override void Publish(DarkLightEventArgs de)
 {
     if (EventDict[de.Type] != null)
     {
         EventDict[de.Type](de);
     }
 }
Example #5
0
        public void PublishBacktestComplete()
        {
            var de = new DarkLightEventArgs(EventType.ServiceTransition);

            de.SenderType     = ServiceType.Broker;
            de.TransitionType = TransitionType.End;
            _publish(de);
        }
Example #6
0
        public void PublishOrderAck(Order order)
        {
            var de = new DarkLightEventArgs(EventType.OrderAck);

            de.Order = order;

            _publish(de);
        }
Example #7
0
        public void PublishFill(Trade trade)
        {
            var de = new DarkLightEventArgs(EventType.Fill);

            de.Trade = trade;

            _publish(de);
        }
Example #8
0
        protected virtual void PublishStatus(string msg)
        {
            var de = new DarkLightEventArgs(EventType.Status);

            de.String = msg;

            _publish(de);
        }
Example #9
0
        public void PublishIndicators(int index, string indicator)
        {
            var de = new DarkLightEventArgs(EventType.Indicator);

            de.Integer = index;
            de.String  = indicator;

            _publish(de);
        }
Example #10
0
        public void PublishOrderCancelAck(string s, bool b, long l)
        {
            var de = new DarkLightEventArgs(EventType.CancelOrderAck);

            de.String  = s;
            de.Boolean = b;
            de.Long    = l;

            _publish(de);
        }
Example #11
0
        public override void Start()
        {
            var de = new DarkLightEventArgs(EventType.ServiceTransition);

            de.SenderType                = ServiceType.Response;
            de.TransitionType            = TransitionType.Begin;
            de.ResponseInfo              = new ResponseInfo();
            de.ResponseInfo.ResponseName = _response.Name;
            de.ResponseInfo.Indicators   = getIndicators();
            _publish(de);
        }
Example #12
0
        public void PublishChartLabel(decimal d, int index, string s, System.Drawing.Color color)
        {
            var de = new DarkLightEventArgs(EventType.ChartLabel);

            de.Decimal = d;
            de.Integer = index;
            de.String  = s;
            de.Color   = color;

            _publish(de);
        }
Example #13
0
 protected override void EventFilter(DarkLightEventArgs de)
 {
     if (_dispatchingMap[de.Type].CheckAccess() || _isBatch)
     {
         _actionDict[de.Type](de);
     }
     else
     {
         _dispatchingMap[de.Type].Invoke(_actionDict[de.Type], DispatcherPriority.Normal, de);
     }
 }
Example #14
0
        protected override void OnTick(DarkLightEventArgs de)
        {
            var tick = de.Tick;

            _nowTime = tick.time.ToString();

            _tickCollection.Add(new DataGridTick(tick, _decimalPrecisionString));

            int percentComplete = de.Integer; //hack

            _activityModel.PercentComplete = percentComplete;
        }
Example #15
0
        public void PublishTick(Tick tick)
        {
            _broker.Execute(tick);

            var de = new DarkLightEventArgs(EventType.Tick);

            de.Tick = tick;
            double numberTicksProcessed = Convert.ToDouble(_historicalSimulator.TicksProcessed);  //TODO: refactor
            double totalNumberTicks     = Convert.ToDouble(_historicalSimulator.TicksPresent);
            int    percentComplete      = Convert.ToInt32(Math.Round((numberTicksProcessed / totalNumberTicks) * 100));

            de.Integer = percentComplete;

            _publish(de);
        }
Example #16
0
        public void PublishOrder(Order order, int index)
        {
            if (order.time == 0)
            {
                order.date = _date;
                order.time = _time;
            }

            var de = new DarkLightEventArgs(EventType.Order);

            de.Order   = order;
            de.Integer = index;

            _publish(de);
        }
        void onSessionEnd(DarkLightEventArgs de)
        {
            SessionModels[_currentSession].Unsubscribe(EventType.SessionEnd, onSessionEnd);

            if (_currentSession < SessionModels.Count - 1)
            {
                _currentSession++;
                SessionModels[_currentSession].Subscribe(EventType.SessionEnd, onSessionEnd);
                SessionModels[_currentSession].Start();
            }
            else
            {
                TimeSpan duration = DateTime.Now - _startTime;
                var      seconds  = duration.TotalSeconds;
            }
        }
Example #18
0
        public override void Start()
        {
            var de = new DarkLightEventArgs(EventType.ServiceTransition);

            de.SenderType     = ServiceType.Broker;
            de.TransitionType = TransitionType.Begin;
            de.BrokerInfo     = new BrokerInfo();
            de.BrokerInfo.SimPrettyTickFiles = ReportModel2.PrettyTickDataFiles(_historicalDataFiles);
            _publish(de);

            string message = "Playing next " + _playTo.ToString().Replace("Play +", string.Empty) + "...";  //verify "Play +" vs _playToString

            PublishMessage(message);

            _backgroundWorker.RunWorkerAsync(_playTo);
        }
Example #19
0
        protected override void OnIndicator(DarkLightEventArgs de)
        {
            var index      = de.Integer;
            var indicators = de.String;

            string[] values = indicators.Split(',');

            try
            {
                _indicatorTable.Rows.Add(values);
            }
            catch (ArgumentException ex)
            {
                if (_missingIndicatorWarn && ex.Message.Contains("array is longer than the number of columns"))
                {
                    _missingIndicatorWarn = false;
                    PublishMessage("Your indicator names do not match the number of indicators you sent with sendindicators.");
                    PublishMessage("Check to make sure you do not have commas in your sendindicator values.");
                    PublishStatus("User error in specifying indicators.");
                }
            }
        }
Example #20
0
        protected override void OnServiceTransition(DarkLightEventArgs de)
        {
            switch (de.SenderType)
            {
            case  ServiceType.Broker:
                if (de.TransitionType == TransitionType.Begin)
                {
                    _prettyTickDataFiles = de.BrokerInfo.SimPrettyTickFiles;
                }
                else if (de.TransitionType == TransitionType.End)
                {
                    backtestComplete();
                }
                break;

            case ServiceType.Response:
                if (de.TransitionType == TransitionType.Begin)
                {
                    _responseName = de.ResponseInfo.ResponseName;
                    initializeIndicators(de.ResponseInfo.Indicators);
                }
                break;
            }
        }
Example #21
0
        protected override void OnFill(DarkLightEventArgs de)
        {
            var trade = de.Trade;

            _tradeList.Add(trade);
            PositionImpl mypos = new PositionImpl(trade);
            decimal      cpl   = 0;
            decimal      cpt   = 0;

            if (!_positionList.TryGetValue(trade.symbol, out mypos))
            {
                mypos = new PositionImpl(trade);
                _positionList.Add(trade.symbol, mypos);
            }
            else
            {
                cpt = Calc.ClosePT(mypos, trade);
                cpl = mypos.Adjust(trade);
                _positionList[trade.symbol] = mypos;
            }

            _positionCollection.Add(new DataGridPosition(_nowTime, mypos, cpl, cpt, _decimalPrecisionString));
            _fillCollection.Add(new DataGridFill(trade, _decimalPrecisionString));
        }
Example #22
0
 protected virtual void ProcessPosition(DarkLightEventArgs de)
 {
     // Do you thang...
 }
Example #23
0
 public virtual void Publish(DarkLightEventArgs de)
 {
 }
Example #24
0
 protected virtual void ProcessChartLabel(DarkLightEventArgs de)
 {
     // Do you thang...
 }
Example #25
0
 protected virtual void ProcessStatusUpdate(DarkLightEventArgs de)
 {
     // Do you thang...
 }
Example #26
0
 protected override void OnStatus(DarkLightEventArgs de)
 {
     _activityModel.Status = de.String;
 }
Example #27
0
 protected override void OnPosition(DarkLightEventArgs de)
 {
 }
Example #28
0
 protected override void OnOrder(DarkLightEventArgs de)
 {
     _orderCollection.Add(new DataGridOrder(de.Order));
 }
Example #29
0
        protected override void OnMessage(DarkLightEventArgs de)
        {
            var message = de.String;

            _messageBuilder.AppendFormat("{0}: {1}{2}", _nowTime, message, Environment.NewLine);
        }
Example #30
0
 protected virtual void ProcessMessage(DarkLightEventArgs de)
 {
     // Do you thang...
 }