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

359 lines
16 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 = []
STOCK_WEB_DATA_LIST.append(
StockWebData(
mode="query",
type="宏观经济数据",
name="存款利率",
table_name="ts_deposit_rate",
columns=["date", "deposit_type", "rate"],
column_names=["日期", "存款类型", "存款利率"],
primary_key=[],
order_by=" date desc "
)
)
STOCK_WEB_DATA_LIST.append(
StockWebData(
mode="query",
type="宏观经济数据",
name="贷款利率",
table_name="ts_loan_rate",
columns=["date", "loan_type", "rate"],
column_names=["日期", "贷款类型", "存款利率"],
primary_key=[],
order_by=" date desc "
)
)
STOCK_WEB_DATA_LIST.append(
StockWebData(
mode="query",
type="宏观经济数据",
name="存款准备金率",
table_name="ts_rrr",
columns=["date", "before", "now", "changed"],
column_names=["变动日期", "调整前存款准备金率(%)", "调整后存款准备金率(%)", "调整幅度(%)"],
primary_key=[],
order_by=" date desc "
)
)
STOCK_WEB_DATA_LIST.append(
StockWebData(
mode="query",
type="宏观经济数据",
name="货币供应量",
table_name="ts_money_supply",
columns=["month", "m2", "m2_yoy", "m1", "m1_yoy", "m0", "m0_yoy", "cd", "cd_yoy", "qm", "qm_yoy", "ftd",
"ftd_yoy", "sd", "sd_yoy", "rests", "rests_yoy"],
column_names=["统计时间", "货币和准货币(广义货币M2)(亿元)", "货币和准货币(广义货币M2)同比增长(%)",
"货币(狭义货币M1)(亿元)", "货币(狭义货币M1)同比增长(%)",
"流通中现金(M0)(亿元)", "流通中现金(M0)同比增长(%)",
"活期存款(亿元)", "活期存款同比增长(%)",
"准货币(亿元)", "准货币同比增长(%)",
"定期存款(亿元)", "定期存款同比增长(%)",
"储蓄存款(亿元)", "储蓄存款同比增长(%)",
"其他存款(亿元)", "其他存款同比增长(%)"
],
primary_key=[],
order_by=" month desc "
)
)
# http://tushare.org/fundamental.html
# 参考官网网站的文档,是最全的。
STOCK_WEB_DATA_LIST.append(
StockWebData(
mode="query",
type="基本面数据",
name="股票列表",
table_name="ts_stock_basics",
columns=["code", "name", "industry", "area", "pe", "outstanding", "totals", "totalAssets", "liquidAssets",
"fixedAssets", "reserved", "reservedPerShare", "esp", "bvps", "pb", "timeToMarket",
"undp", "perundp", "rev", "profit", "gpr", "npr", "holders"],
column_names=["代码", "名称", "所属行业", "地区", "市盈率", "流通股本(亿)", "总股本(亿)", "总资产(万)", "流动资产",
"固定资产", "公积金", "每股公积金", "每股收益", "每股净资", "市净率", "上市日期", "未分利润",
"每股未分配", "收入同比(%)", "利润同比(%)", "毛利率(%)", "净利润率(%)", "股东人数"
],
primary_key=[],
order_by=" code asc "
)
)
# 业绩报告(主表)
STOCK_WEB_DATA_LIST.append(
StockWebData(
mode="query",
type="基本面数据",
name="业绩报告(主表)",
table_name="ts_report_data",
columns=["quarter", "code", "name", "eps", "eps_yoy", "bvps", "roe", "epcf", "net_profits",
"profits_yoy", "distrib", "report_date"],
column_names=["季度", "代码", "名称", "每股收益", "每股收益同比(%)", "每股净资产", "净资产收益率(%)", "每股现金流量(元)", ",净利润(万元)",
"净利润同比(%)", "分配方案", "发布日期"
],
primary_key=[],
order_by=" quarter desc "
)
)
# 盈利能力
STOCK_WEB_DATA_LIST.append(
StockWebData(
mode="query",
type="基本面数据",
name="盈利能力",
table_name="ts_profit_data",
columns=["quarter", "code", "name", "roe", "net_profit_ratio", "gross_profit_rate",
"net_profits", "eps", "business_income", "bips"],
column_names=["季度", "代码", "名称", "净资产收益率(%)", "净利率(%)", "毛利率(%)", "净利润(万元)",
"每股收益", "营业收入(百万元)", "每股主营业务收入(元)"],
primary_key=[],
order_by=" quarter desc "
)
)
STOCK_WEB_DATA_LIST.append(
StockWebData(
mode="query",
type="基本面数据",
name="营运能力",
table_name="ts_operation_data",
columns=["quarter", "code", "name", "arturnover", "arturndays",
"inventory_turnover", "inventory_days", "currentasset_turnover", "currentasset_days"],
column_names=["季度", "代码", "名称", "应收账款周转率(次)", "应收账款周转天数(天)", "存货周转率(次)", "存货周转天数(天)",
"流动资产周转率(次)", "流动资产周转天数(天)"
],
primary_key=[],
order_by=" quarter desc "
)
)
STOCK_WEB_DATA_LIST.append(
StockWebData(
mode="query",
type="基本面数据",
name="成长能力",
table_name="ts_growth_data",
columns=["quarter", "code", "name", "mbrg", "nprg", "nav", "targ", "epsg", "seg"],
column_names=["季度", "代码", "名称", "主营业务收入增长率(%)", "净利润增长率(%)", "净资产增长率", "总资产增长率",
"每股收益增长率", "股东权益增长率"],
primary_key=[],
order_by=" quarter desc "
)
)
# "code", "name: pchange", "amount", "buy", "bratio", "sell", "sratio", "reason", "date"
# 代码 名称 当日涨跌幅 龙虎榜成交额(万) 买入额(万) 买入占总成交比例 卖出额(万) 卖出占总成交比例 上榜原因 日期
STOCK_WEB_DATA_LIST.append(
StockWebData(
mode="query",
type="每日数据",
name="龙虎榜",
table_name="ts_top_list",
columns=["date", "code", "name", "pchange", "amount", "buy", "bratio", "sell", "sratio", "reason"],
column_names=["日期", "代码", "名称", "当日涨跌幅", "龙虎榜成交额(万)", "买入额(万)", "买入占总成交比例", "卖出额(万)",
"卖出占总成交比例", "上榜原因"],
primary_key=[],
order_by=" date desc "
)
)
# 实时行情
STOCK_WEB_DATA_LIST.append(
StockWebData(
mode="query",
type="每日数据",
name="每日股票数据",
table_name="ts_today_all",
columns=["date", "code", "name", "changepercent", "trade", "open", "high", "low", "settlement", "volume",
"turnoverratio", "amount", "per", "pb", "mktcap", "nmc"],
column_names=["日期", "代码", "名称", "涨跌幅", "现价", "开盘价", "最高价", "最低价", "昨日收盘价", "成交量",
"换手率", "成交金额", "市盈率", "市净率", "总市值", "流通市值"],
primary_key=[],
order_by=" date desc "
)
)
# 大盘指数行情列表
STOCK_WEB_DATA_LIST.append(
StockWebData(
mode="query",
type="每日数据",
name="每日大盘指数行情",
table_name="ts_index_all",
columns=["date", "code", "name", "change", "open", "preclose", "close", "high", "low", "volume", "amount"],
column_names=["日期", "代码", "名称", "涨跌幅", "开盘点位", "昨日收盘点位", "收盘点位", "最高点位", "最低点位", "成交量(手)", "成交金额(亿元)"],
primary_key=[],
order_by=" date desc "
)
)
# 每日波峰波谷猜想
STOCK_WEB_DATA_LIST.append(
StockWebData(
mode="query",
type="每日数据猜想",
name="每日波峰波谷猜想",
table_name="guess_period_daily",
columns=["date", "code", "name", "wave_base", "wave_crest", "wave_mean", "up_rate",
"changepercent", "trade", "open", "high", "low", "settlement", "volume",
"turnoverratio", "amount", "per", "pb", "mktcap", "nmc"],
column_names=["日期", "代码", "名称", "5波峰平均", "5波谷平均", "价格平均", "上涨率猜想%",
"涨跌幅", "现价", "开盘价", "最高价", "最低价", "昨日收盘价", "成交量",
"换手率", "成交金额", "市盈率", "市净率", "总市值", "流通市值"],
primary_key=[],
order_by=" date desc "
)
)
# 每日收益率猜想。
STOCK_WEB_DATA_LIST.append(
StockWebData(
mode="query",
type="每日数据猜想",
name="每日收益率猜想",
table_name="guess_return_daily",
columns=["date", "code", "name",
"5d", "10d", "20d", "60d", "5-10d", "5-20d", "mov_vol", "return",
"changepercent", "trade", "open", "high", "low", "settlement", "volume",
"turnoverratio", "amount", "per", "pb", "mktcap", "nmc"],
column_names=["日期", "代码", "名称",
"5周线", "10半月线", "20月线", "60季度线", "5-10日差%", "5-20日差%", "收益", "收益率移动标准差",
"涨跌幅", "现价", "开盘价", "最高价", "最低价", "昨日收盘价", "成交量",
"换手率", "成交金额", "市盈率", "市净率", "总市值", "流通市值"],
primary_key=[],
order_by=" date desc "
)
)
# 每日股票指标lite猜想。
STOCK_WEB_DATA_LIST.append(
StockWebData(
mode="query",
type="每日数据猜想",
name="每日股票指标lite猜想",
table_name="guess_indicators_lite_daily",
columns=["date", "code", "name", "changepercent", "trade", "open", "high", "low", "settlement", "volume",
"turnoverratio", "amount", "per", "pb", "mktcap", "nmc",
"kdjj", "rsi_6", "cci"],
column_names=["日期", "代码", "名称",
"涨跌幅", "现价", "开盘价", "最高价", "最低价", "昨日收盘价", "成交量",
"换手率", "成交金额", "市盈率", "市净率", "总市值", "流通市值",
"kdjj", "rsi_6", "cci"],
primary_key=[],
order_by=" date desc "
)
)
# 每日股票指标lite猜想买入。
STOCK_WEB_DATA_LIST.append(
StockWebData(
mode="query",
type="每日数据猜想",
name="每日股票指标lite猜想买入",
table_name="guess_indicators_lite_buy_daily",
columns=["buy_date", "code", "name", "changepercent", "trade", "turnoverratio", "pb",
"kdjj", "rsi_6", "cci", "wave_base", "wave_crest", "wave_mean", "up_rate", "buy", "sell",
"today_trade", "income"],
column_names=["购买日期", "代码", "名称", "涨跌幅", "现价", "换手率%", "市净率%",
"买入kdjj", "买入rsi_6", "买入cci", "波谷", "波峰", "波平均", "上涨率%", "买入", "卖出", "今日价格", "收益"],
primary_key=[],
order_by=" buy_date desc "
)
)
# 每日股票指标lite猜想卖出。
STOCK_WEB_DATA_LIST.append(
StockWebData(
mode="query",
type="每日数据猜想",
name="每日股票指标lite猜想卖出",
table_name="guess_indicators_lite_sell_daily",
columns=["date", "buy_date", "code", "name", "changepercent", "trade", "turnoverratio", "pb",
"kdjj", "rsi_6", "cci", "wave_base", "wave_crest", "wave_mean", "up_rate", "buy", "sell",
"today_trade", "income", "sell_cci", "sell_kdjj", "sell_rsi_6"],
column_names=["日期", "购买日期", "代码", "名称", "涨跌幅", "现价", "换手率%", "市净率%",
"买入kdjj", "买入rsi_6", "买入cci", "波谷", "波峰", "波平均", "上涨率%", "买入", "卖出", "今日价格", "收益",
"卖出kdjj", "卖出rsi_6", "卖出cci", ],
primary_key=[],
order_by=" buy_date desc "
)
)
# 每日股票指标猜想。
STOCK_WEB_DATA_LIST.append(
StockWebData(
mode="query",
type="每日数据猜想",
name="每日股票指标All猜想",
table_name="guess_indicators_daily",
columns=["date", "code", "name", "changepercent", "trade", "open", "high", "low", "settlement", "volume",
"turnoverratio", "amount", "per", "pb", "mktcap", "nmc",
'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 "
)
)
STOCK_WEB_DATA_LIST.append(
StockWebData(
mode="query",
type="每日数据Keras猜想",
name="每日股票数据Keras猜想",
table_name="guess_sklearn_ma_daily",
columns=["date", "code", "name", "changepercent", "trade", "open", "high", "low", "settlement", "volume",
"turnoverratio", "next_close", "sklearn_score", "up_rate"],
column_names=["日期", "代码", "名称", "涨跌幅", "现价", "开盘价", "最高价", "最低价", "昨日收盘价", "成交量",
"换手率", "预测收盘价", "sk概率", "预测上涨率"],
primary_key=[],
order_by=" date desc "
)
)
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))