359 lines
16 KiB
Python
359 lines
16 KiB
Python
#!/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 = []
|
||
|
||
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))
|