#!/usr/local/bin/python # -*- coding: utf-8 -*- class StockWebData: def __init__(self, mode, type, name, table_name, columns, column_names, primary_key, order_by): self.mode = mode # 模式,query,editor 查询和编辑模式 self.type = type self.name = name self.table_name = table_name self.columns = columns self.column_names = column_names self.primary_key = primary_key self.order_by = order_by if mode == "query": self.url = "/stock/data?table_name=" + self.table_name elif mode == "editor": self.url = "/data/editor?table_name=" + self.table_name STOCK_WEB_DATA_LIST = [] # https://www.akshare.xyz/zh_CN/latest/data/stock/stock.html#id1 # 限量: 单次返回所有 A 股上市公司的实时行情数据 STOCK_WEB_DATA_LIST.append( StockWebData( mode="query", type="1,股票基本数据", name="每日股票数据-东财", table_name="stock_zh_a_spot_em", columns= ['date', 'code', 'name', 'last_price', 'change_percent', 'change_amount', 'volume', 'turnover', 'amplitude', 'high', 'low', 'open', 'closed', 'volume_ratio', 'turnover_rate', 'pe_ratio','pb_ratio', 'market_cap','circulating_market_cap','rise_speed', 'change_5min', 'change_ercent_60day','ytd_change_percent'] , column_names=['日期','代码','名称','最新价','涨跌幅','涨跌额','成交量','成交额', '振幅','最高','最低','今开','昨收','量比','换手率','动态市盈率', '市净率', '总市值', '流通市值', '涨速', '5分钟涨跌', '60日涨跌幅', '年初至今涨跌幅'], primary_key=[], order_by=" code asc " ) ) STOCK_WEB_DATA_LIST.append( StockWebData( mode="query", type="1,股票基本数据", name="龙虎榜-个股上榜-新浪", table_name="stock_lhb_ggtj_sina", columns= ['date','code','name','ranking_times','sum_buy','sum_sell','net_amount','buy_seat','sell_seat'], column_names=['日期','代码', '名称', '上榜次数', '累积购买额', '累积卖出额', '净额', '买入席位数', '卖出席位数'], primary_key=[], order_by=" code asc " ) ) STOCK_WEB_DATA_LIST.append( StockWebData( mode="query", type="1,股票基本数据", name="数据中心-大宗交易", table_name="stock_dzjy_mrtj", columns= ['date', 'code', 'name', 'quote_change', 'close_price', 'average_price', 'overflow_rate', 'trade_number', 'sum_volume', 'sum_turnover', 'turnover_market_rate'], column_names=['日期', '代码', '名称', '涨跌幅', '收盘价', '成交均价', '折溢率', '成交笔数', '成交总量', '成交总额', '成交总额/流通市值'], primary_key=[], order_by=" code asc " ) ) # 每日股票指标lite猜想买入。 STOCK_WEB_DATA_LIST.append( StockWebData( mode="query", type="2,每日数据猜想", name="股票指标lite猜想买入", table_name="guess_indicators_lite_buy_daily", # columns=['date', 'code', 'name', 'latest_price', 'quote_change', 'ups_downs', 'volume', 'turnover', # 'amplitude', 'high', 'low', 'open', 'closed', 'volume_ratio', 'turnover_rate', 'pe_dynamic', 'pb', # 'kdjj', 'rsi_6', 'cci'], # column_names=['日期', '代码', '名称', '最新价', '涨跌幅', '涨跌额', '成交量', '成交额', # '振幅', '最高', '最低', '今开', '昨收', '量比', '换手率', '动态市盈率', '市净率', # 'kdjj', 'rsi_6', 'cci'], columns= ['date', 'code', 'name', 'last_price', 'change_percent', 'change_amount', 'volume', 'turnover', 'amplitude', 'high', 'low', 'open', 'closed', 'volume_ratio', 'turnover_rate', 'pe_ratio','pb_ratio', 'market_cap','circulating_market_cap','rise_speed', 'change_5min', 'change_ercent_60day','ytd_change_percent', 'boll', 'boll_lb', 'boll_ub', 'kdjd', 'kdjj', 'kdjk', 'macd', 'macdh', 'macds', 'pdi','trix', 'trix_9_sma', 'vr', 'vr_6_sma', 'wr_10', 'wr_6'] , # 中文说明前面和 1 数据一致。 column_names=['日期','代码','名称','最新价','涨跌幅','涨跌额','成交量','成交额', '振幅','最高','最低','今开','昨收','量比','换手率','动态市盈率', '市净率', '总市值', '流通市值', '涨速', '5分钟涨跌', '60日涨跌幅', '年初至今涨跌幅', 'boll', 'boll_lb', 'boll_ub', 'kdjd', 'kdjj', 'kdjk', 'macd', 'macdh', 'macds', 'pdi', 'trix', 'trix_9_sma', 'vr', 'vr_6_sma', 'wr_10', 'wr_6'], primary_key=[], order_by=" buy_date desc " ) ) # 每日股票指标lite猜想卖出。 STOCK_WEB_DATA_LIST.append( StockWebData( mode="query", type="2,每日数据猜想", name="股票指标lite猜想卖出", table_name="guess_indicators_lite_sell_daily", # columns=['date', 'code', 'name', 'latest_price', 'quote_change', 'ups_downs', 'volume', 'turnover', # 'amplitude', 'high', 'low', 'open', 'closed', 'volume_ratio', 'turnover_rate', 'pe_dynamic', 'pb', # 'kdjj', 'rsi_6', 'cci'], # column_names=['日期', '代码', '名称', '最新价', '涨跌幅', '涨跌额', '成交量', '成交额', # '振幅', '最高', '最低', '今开', '昨收', '量比', '换手率', '动态市盈率', '市净率', # 'kdjj', 'rsi_6', 'cci'], columns= ['date', 'code', 'name', 'last_price', 'change_percent', 'change_amount', 'volume', 'turnover', 'amplitude', 'high', 'low', 'open', 'closed', 'volume_ratio', 'turnover_rate', 'pe_ratio','pb_ratio', 'market_cap','circulating_market_cap','rise_speed', 'change_5min', 'change_ercent_60day','ytd_change_percent', 'boll', 'boll_lb', 'boll_ub', 'kdjd', 'kdjj', 'kdjk', 'macd', 'macdh', 'macds', 'pdi','trix', 'trix_9_sma', 'vr', 'vr_6_sma', 'wr_10', 'wr_6'] , # 中文说明前面和 1 数据一致。 column_names=['日期','代码','名称','最新价','涨跌幅','涨跌额','成交量','成交额', '振幅','最高','最低','今开','昨收','量比','换手率','动态市盈率', '市净率', '总市值', '流通市值', '涨速', '5分钟涨跌', '60日涨跌幅', '年初至今涨跌幅', 'boll', 'boll_lb', 'boll_ub', 'kdjd', 'kdjj', 'kdjk', 'macd', 'macdh', 'macds', 'pdi', 'trix', 'trix_9_sma', 'vr', 'vr_6_sma', 'wr_10', 'wr_6'], primary_key=[], order_by=" buy_date desc " ) ) # 每日股票指标lite猜想。 STOCK_WEB_DATA_LIST.append( StockWebData( mode="query", type="2,每日数据猜想", name="股票指标猜想原始数据", table_name="guess_indicators_daily", columns= ['date', 'code', 'name', 'last_price', 'change_percent', 'change_amount', 'volume', 'turnover', 'amplitude', 'high', 'low', 'open', 'closed', 'volume_ratio', 'turnover_rate', 'pe_ratio','pb_ratio', 'market_cap','circulating_market_cap','rise_speed', 'change_5min', 'change_ercent_60day','ytd_change_percent', 'boll', 'boll_lb', 'boll_ub', 'kdjd', 'kdjj', 'kdjk', 'macd', 'macdh', 'macds', 'pdi','trix', 'trix_9_sma', 'vr', 'vr_6_sma', 'wr_10', 'wr_6'] , # 中文说明前面和 1 数据一致。 column_names=['日期','代码','名称','最新价','涨跌幅','涨跌额','成交量','成交额', '振幅','最高','最低','今开','昨收','量比','换手率','动态市盈率', '市净率', '总市值', '流通市值', '涨速', '5分钟涨跌', '60日涨跌幅', '年初至今涨跌幅', 'boll', 'boll_lb', 'boll_ub', 'kdjd', 'kdjj', 'kdjk', 'macd', 'macdh', 'macds', 'pdi', 'trix', 'trix_9_sma', 'vr', 'vr_6_sma', 'wr_10', 'wr_6'], # columns=['date','code','name','latest_price','quote_change','ups_downs', # 'adx', 'adxr', 'boll', 'boll_lb', 'boll_ub', 'cci', 'cci_20', 'close_-1_r', # 'close_-2_r', 'code', 'cr', 'cr-ma1', 'cr-ma2', 'cr-ma3', 'date', 'dma', 'dx', # 'kdjd', 'kdjj', 'kdjk', 'macd', 'macdh', 'macds', 'mdi', 'pdi', # 'rsi_12', 'rsi_6', 'trix', 'trix_9_sma', 'vr', 'vr_6_sma', 'wr_10', 'wr_6'], # column_names=['日期','代码','名称','最新价','涨跌幅','涨跌额', # 'adx', 'adxr', 'boll', 'boll_lb', 'boll_ub', 'cci', 'cci_20', 'close_-1_r', # 'close_-2_r', 'code', 'cr', 'cr-ma1', 'cr-ma2', 'cr-ma3', 'date', 'dma', 'dx', # 'kdjd', 'kdjj', 'kdjk', 'macd', 'macdh', 'macds', 'mdi', 'pdi', # 'rsi_12', 'rsi_6', 'trix', 'trix_9_sma', 'vr', 'vr_6_sma', 'wr_10', 'wr_6'], primary_key=[], order_by=' date desc ' ) ) # "code", "name: pchange", "amount", "buy", "bratio", "sell", "sratio", "reason", "date" # 代码 名称 当日涨跌幅 龙虎榜成交额(万) 买入额(万) 买入占总成交比例 卖出额(万) 卖出占总成交比例 上榜原因 日期 STOCK_WEB_DATA_MAP = {} WEB_EASTMONEY_URL = "http://quote.eastmoney.com/%s.html" # 再拼接成Map使用。 for tmp in STOCK_WEB_DATA_LIST: # try: # # 增加columns 字段中的【查看股票】 # tmp_idx = tmp.columns.index("code") # tmp.column_names.insert(tmp_idx + 1, "查看股票") # except Exception as e: # print("error :", e) STOCK_WEB_DATA_MAP[tmp.table_name] = tmp if len(tmp.columns) != len(tmp.column_names): print(u"error:", tmp.table_name, ",columns:", len(tmp.columns), ",column_names:", len(tmp.column_names))