Files
2026-07-13 13:10:28 +08:00

197 lines
10 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/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 # 模式,queryeditor 查询和编辑模式
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))