def showStockChart(stockcode): stockcode = stock.normalizeStockCode(stockcode) kdata = stock.getStockDayDataQianFuQuan(stockcode) if (not kdata): utils.output('股票数据不存在', 'red') return False if (stockcode[:3] != 'sh0'): weightdata = stock.getStockWeightData(stockcode) if (not weightdata): utils.output('复权数据不存在', 'red') return False #print(weightdata) #set data globals.mainwin.chart.kdata = kdata globals.mainwin.chart.stockcode = stockcode globals.mainwin.scrollbar.setMinimum(0) ktotalcount = len(kdata) globals.mainwin.scrollbar.setMaximum(ktotalcount) globals.mainwin.scrollbar.setValue(ktotalcount) globals.mainwin.scrollbar.setSingleStep(1) if (stockcode[:3] != 'sh0'): globals.mainwin.chart.weightdata = weightdata #draw globals.viewportclear = False utils.update()
def showStockChart(stockcode): stockcode = stock.normalizeStockCode(stockcode) kdata = stock.getStockDayDataQianFuQuan(stockcode) if(not kdata): utils.output('股票数据不存在', 'red') return False if(stockcode[:3] != 'sh0'): weightdata = stock.getStockWeightData(stockcode) if(not weightdata): utils.output('复权数据不存在', 'red') return False #print(weightdata) #set data globals.mainwin.chart.kdata = kdata globals.mainwin.chart.stockcode = stockcode globals.mainwin.scrollbar.setMinimum(0) ktotalcount = len(kdata) globals.mainwin.scrollbar.setMaximum(ktotalcount) globals.mainwin.scrollbar.setValue(ktotalcount) globals.mainwin.scrollbar.setSingleStep(1) if(stockcode[:3] != 'sh0'): globals.mainwin.chart.weightdata = weightdata #draw globals.viewportclear = False utils.update()
def saveAllItems(self): watchlist = [] filename = globals.datapath + '/watchlist.dat' for i in range(0, 50): item0 = self.tbWatchList.item(i, 0) item1 = self.tbWatchList.item(i, 1) item2 = self.tbWatchList.item(i, 2) d0 = d1 = d2 = '' if(item0): d0 = item0.data(Qt.DisplayRole) if(d0 and item1): d1 = item1.data(Qt.DisplayRole) if(item2): d2 = item2.data(Qt.DisplayRole) scode = stock.normalizeStockCode(d0) sname = stock.getStockName(scode) if(sname): watchlist.append([d0, d1, d2]) #write to file begin try: f = open(filename, 'wb') except IOError: exc_type, exc_value = sys.exc_info()[:2] errmsg = '{}: {}'.format(exc_type.__name__, exc_value) output(errmsg, 'red') return False pickle.dump(watchlist, f) f.close()
def handleCellChanged(self, row, column): if(column == 0): item0 = self.tbWatchList.item(row, 0) stockcode = item0.data(Qt.DisplayRole) if(stockcode): norcode = stock.normalizeStockCode(stockcode) stockname = stock.getStockName(norcode) if(norcode): if(norcode != stockcode): item0 = QTableWidgetItem(norcode) self.tbWatchList.setItem(row, 0, item0) if(stockname): item1 = QTableWidgetItem(stockname) else: item1 = QTableWidgetItem('') item1.setFlags(Qt.ItemIsSelectable|Qt.ItemIsEnabled) self.tbWatchList.setItem(row, 1, item1) self.saveAllItems() if(column == 2): item2 = self.tbWatchList.item(row, 2) if(item2 and item2.data(Qt.DisplayRole)): self.saveAllItems()
def run(subcmd, params): chart = globals.mainwin.chart stocklist = stock.getStockList() if(subcmd == 'di'): filterResults = [] di = indicators.di.Di() utils.output('开始di条件过滤') prefixstr = 'filter di条件过滤:' totalstock = len(stocklist) cnt = 0 start_time = datetime.datetime.now() for stockcode in stocklist: cnt +=1 stockcode = stock.normalizeStockCode(stockcode) end_time = datetime.datetime.now() diffStr = '{}'.format(end_time - start_time) outstr = '{} {}/{} 当前代码:{} 符合条件:{} ({})'.format(prefixstr, cnt, totalstock, stockcode, len(filterResults), diffStr) utils.overwrite(outstr, prefixstr) stockdata = stock.getStockDayDataQianFuQuan(stockcode) stockdata = stockdata[-500:] didata = di.calculateData(stockdata) QCoreApplication.processEvents() if(didata[-1] and didata[-1].get('tip')): filterResults.append({'code':stockcode, 'date':didata[-1]['date']}) dataArr = [] for row in filterResults: scode = row['code'] sdate = row['date'] row=[] row.append(scode) row.append(stock.getStockName(scode)) row.append(sdate) dataArr.append(row) #write to file begin filename = globals.datapath + '/lastFilterResult.dat' try: f = open(filename, 'wb') except IOError: exc_type, exc_value = sys.exc_info()[:2] errmsg = '{}: {}'.format(exc_type.__name__, exc_value) output(errmsg, 'red') return False pickle.dump(dataArr, f) f.close() #write to file end tablemodel = stockfilterresultdlg.FilterResultModel(dataArr, None) tbResults = globals.mainwin.stockfilterresultdlg.tbResults tbResults.setModel(tablemodel) globals.mainwin.windowStockFilterResult()
def run(subcmd, params): if (subcmd == 'shanghai_a_count'): return _getShanghaiACount() if (subcmd == 'hq'): if (len(params) != 1): utils.output('请给出股票代码', 'red') utils.output(subCommands['hq']) return stock_code = stock.normalizeStockCode(params[0]) if (not stock_code): utils.output('股票代码错误', 'red') utils.output(subCommands['hq']) return return _getHq(stock_code)
def run(subcmd, params): if(subcmd == 'shanghai_a_count'): return _getShanghaiACount() if(subcmd == 'hq'): if(len(params) != 1): utils.output('请给出股票代码', 'red') utils.output(subCommands['hq']) return stock_code = stock.normalizeStockCode(params[0]) if(not stock_code): utils.output('股票代码错误', 'red') utils.output(subCommands['hq']) return return _getHq(stock_code)
def run(subcmd, params): chart = globals.mainwin.chart stocklist = stock.getStockList() if (subcmd == 'di'): filterResults = [] di = indicators.di.Di() utils.output('开始di条件过滤') prefixstr = 'filter di条件过滤:' totalstock = len(stocklist) cnt = 0 start_time = datetime.datetime.now() for stockcode in stocklist: cnt += 1 stockcode = stock.normalizeStockCode(stockcode) end_time = datetime.datetime.now() diffStr = '{}'.format(end_time - start_time) outstr = '{} {}/{} 当前代码:{} 符合条件:{} ({})'.format( prefixstr, cnt, totalstock, stockcode, len(filterResults), diffStr) utils.overwrite(outstr, prefixstr) stockdata = stock.getStockDayDataQianFuQuan(stockcode) stockdata = stockdata[-500:] didata = di.calculateData(stockdata) QCoreApplication.processEvents() if (didata[-1] and didata[-1].get('tip')): filterResults.append({ 'code': stockcode, 'date': didata[-1]['date'] }) dataArr = [] for row in filterResults: scode = row['code'] sdate = row['date'] row = [] row.append(scode) row.append(stock.getStockName(scode)) row.append(sdate) dataArr.append(row) #write to file begin filename = globals.datapath + '/lastFilterResult.dat' try: f = open(filename, 'wb') except IOError: exc_type, exc_value = sys.exc_info()[:2] errmsg = '{}: {}'.format(exc_type.__name__, exc_value) output(errmsg, 'red') return False pickle.dump(dataArr, f) f.close() #write to file end tablemodel = stockfilterresultdlg.FilterResultModel(dataArr, None) tbResults = globals.mainwin.stockfilterresultdlg.tbResults tbResults.setModel(tablemodel) globals.mainwin.windowStockFilterResult()