protected override void OnTick(DarkLightEventArgs de) { _date = de.Tick.date; _time = de.Tick.time; _response.GotTick(de.Tick); }
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; }
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); } }
public override void Publish(DarkLightEventArgs de) { if (EventDict[de.Type] != null) { EventDict[de.Type](de); } }
public void PublishBacktestComplete() { var de = new DarkLightEventArgs(EventType.ServiceTransition); de.SenderType = ServiceType.Broker; de.TransitionType = TransitionType.End; _publish(de); }
public void PublishOrderAck(Order order) { var de = new DarkLightEventArgs(EventType.OrderAck); de.Order = order; _publish(de); }
public void PublishFill(Trade trade) { var de = new DarkLightEventArgs(EventType.Fill); de.Trade = trade; _publish(de); }
protected virtual void PublishStatus(string msg) { var de = new DarkLightEventArgs(EventType.Status); de.String = msg; _publish(de); }
public void PublishIndicators(int index, string indicator) { var de = new DarkLightEventArgs(EventType.Indicator); de.Integer = index; de.String = indicator; _publish(de); }
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); }
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); }
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); }
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); } }
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; }
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); }
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; } }
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); }
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."); } } }
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; } }
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)); }
protected virtual void ProcessPosition(DarkLightEventArgs de) { // Do you thang... }
public virtual void Publish(DarkLightEventArgs de) { }
protected virtual void ProcessChartLabel(DarkLightEventArgs de) { // Do you thang... }
protected virtual void ProcessStatusUpdate(DarkLightEventArgs de) { // Do you thang... }
protected override void OnStatus(DarkLightEventArgs de) { _activityModel.Status = de.String; }
protected override void OnPosition(DarkLightEventArgs de) { }
protected override void OnOrder(DarkLightEventArgs de) { _orderCollection.Add(new DataGridOrder(de.Order)); }
protected override void OnMessage(DarkLightEventArgs de) { var message = de.String; _messageBuilder.AppendFormat("{0}: {1}{2}", _nowTime, message, Environment.NewLine); }
protected virtual void ProcessMessage(DarkLightEventArgs de) { // Do you thang... }