/// <summary>
        /// MainWindow NewData, option to force update all
        /// </summary>
        /// <param name="updateall">force update all flag</param>
        public void NewData(bool updateall = false)
        {
            App.Current?.Dispatcher.Invoke((Action) delegate // invoke in GUI thread
            {
                double[] currentprint = DBuilder.Current.Print;
                CSChartVM.NewData(currentprint, updateall);
                if (DBuilder.OHLC[0].RowsChanged == 0)
                {
                    // notify label formatter change
                    CSLabelFormatter = CSChartVM.XAxisLabelFormatter;
                    NotifyPropertyChanged("CSLabelFormatter");
                }

                VolumeChartVM.NewData(updateall);
                BidVDChartVM.NewData(updateall);
                AskVDChartVM.NewData(updateall);
                TradedVDChartVM.NewData(updateall);
                PriceRDChartVM.NewData(updateall);
                VolumeTDChartVM.NewData(updateall);
                BATVDistYAxisUpdate();

                QuotesTextVM.NewData();
                VWAPTextVM.NewData();
            });
        }