private async void DoScan()
        {
            var settings = SettingsStore.Load();

            SetStatusText($"initializing {settings.Exchange} with 24hr volume of {settings.Min24HrVolume} ...");
            _scanner = new Scanner(settings);
            while (_running)
            {
                int idx = 0;
                foreach (var symbol in _scanner.Symbols)
                {
                    idx++;
                    SetStatusText($"scanning {symbol} ({idx}/{_scanner.Symbols.Count})...");
                    var signal = await _scanner.ScanAsync(symbol);

                    if (signal != null)
                    {
                        await Dispatcher.UIThread.InvokeAsync(() =>
                        {
                            Signals.Insert(0, signal);
                        });
                    }
                }
                SetStatusText($"sleeping...");
                Thread.Sleep(5000);
            }
        }
        private async Task ScanSymbols(string[] orderedTimeframes, Settings settings)
        {
            foreach (string timeframe in orderedTimeframes)
            {
                int idx = 0;
                foreach (var symbol in _scanner.Symbols)
                {
                    idx++;
                    int minutes = Scanner.TimeframeToMinutes(timeframe);
                    SetStatusText($"{settings.Exchange} scanning {symbol.Symbol.MarketSymbol} ({idx}/{_scanner.Symbols.Count}) on {timeframe}...");
                    var signal = await _scanner.ScanAsync(symbol, minutes);

                    if (!_running)
                    {
                        return;
                    }
                    if (signal != null)
                    {
                        await Dispatcher.BeginInvoke((Action)(() => {
                            Signals.Insert(0, new SignalView(signal));
                        }));
                    }
                    if (!_running)
                    {
                        break;
                    }
                }
                if (!_running)
                {
                    break;
                }
            }
        }