python-quanta 0.3.6__tar.gz → 0.3.8__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (61) hide show
  1. {python_quanta-0.3.6 → python_quanta-0.3.8}/PKG-INFO +1 -1
  2. {python_quanta-0.3.6 → python_quanta-0.3.8}/pyproject.toml +2 -1
  3. {python_quanta-0.3.6 → python_quanta-0.3.8}/src/python_quanta.egg-info/PKG-INFO +1 -1
  4. {python_quanta-0.3.6 → python_quanta-0.3.8}/src/python_quanta.egg-info/SOURCES.txt +3 -0
  5. {python_quanta-0.3.6 → python_quanta-0.3.8}/src/quanta/__init__.py +1 -0
  6. python_quanta-0.3.8/src/quanta/config/data.yaml +299 -0
  7. python_quanta-0.3.8/src/quanta/config/flow.yaml +50 -0
  8. python_quanta-0.3.8/src/quanta/config/libs.yaml +61 -0
  9. {python_quanta-0.3.6 → python_quanta-0.3.8}/README.md +0 -0
  10. {python_quanta-0.3.6 → python_quanta-0.3.8}/setup.cfg +0 -0
  11. {python_quanta-0.3.6 → python_quanta-0.3.8}/src/python_quanta.egg-info/dependency_links.txt +0 -0
  12. {python_quanta-0.3.6 → python_quanta-0.3.8}/src/python_quanta.egg-info/requires.txt +0 -0
  13. {python_quanta-0.3.6 → python_quanta-0.3.8}/src/python_quanta.egg-info/top_level.txt +0 -0
  14. {python_quanta-0.3.6 → python_quanta-0.3.8}/src/quanta/config/__init__.py +0 -0
  15. {python_quanta-0.3.6 → python_quanta-0.3.8}/src/quanta/config/_internal.py +0 -0
  16. {python_quanta-0.3.6 → python_quanta-0.3.8}/src/quanta/duckui.py +0 -0
  17. {python_quanta-0.3.6 → python_quanta-0.3.8}/src/quanta/libs/__init__.py +0 -0
  18. {python_quanta-0.3.6 → python_quanta-0.3.8}/src/quanta/libs/_flow/__init__.py +0 -0
  19. {python_quanta-0.3.6 → python_quanta-0.3.8}/src/quanta/libs/_flow/_extra_pandas/__init__.py +0 -0
  20. {python_quanta-0.3.6 → python_quanta-0.3.8}/src/quanta/libs/_flow/_extra_pandas/core.py +0 -0
  21. {python_quanta-0.3.6 → python_quanta-0.3.8}/src/quanta/libs/_flow/_extra_pandas/main.py +0 -0
  22. {python_quanta-0.3.6 → python_quanta-0.3.8}/src/quanta/libs/_flow/_extra_pandas/old_main.py +0 -0
  23. {python_quanta-0.3.6 → python_quanta-0.3.8}/src/quanta/libs/_flow/_main/__init__.py +0 -0
  24. {python_quanta-0.3.6 → python_quanta-0.3.8}/src/quanta/libs/_flow/_main/_base.py +0 -0
  25. {python_quanta-0.3.6 → python_quanta-0.3.8}/src/quanta/libs/_flow/_main/_connect.py +0 -0
  26. {python_quanta-0.3.6 → python_quanta-0.3.8}/src/quanta/libs/_pandas/__init__.py +0 -0
  27. {python_quanta-0.3.6 → python_quanta-0.3.8}/src/quanta/libs/_pandas/analysis/__init__.py +0 -0
  28. {python_quanta-0.3.6 → python_quanta-0.3.8}/src/quanta/libs/_pandas/analysis/core.py +0 -0
  29. {python_quanta-0.3.6 → python_quanta-0.3.8}/src/quanta/libs/_pandas/analysis/dev.py +0 -0
  30. {python_quanta-0.3.6 → python_quanta-0.3.8}/src/quanta/libs/_pandas/analysis/main.py +0 -0
  31. {python_quanta-0.3.6 → python_quanta-0.3.8}/src/quanta/libs/_pandas/db/__init__.py +0 -0
  32. {python_quanta-0.3.6 → python_quanta-0.3.8}/src/quanta/libs/_pandas/db/dev.py +0 -0
  33. {python_quanta-0.3.6 → python_quanta-0.3.8}/src/quanta/libs/_pandas/db/main.py +0 -0
  34. {python_quanta-0.3.6 → python_quanta-0.3.8}/src/quanta/libs/_pandas/gen/__init__.py +0 -0
  35. {python_quanta-0.3.6 → python_quanta-0.3.8}/src/quanta/libs/_pandas/gen/core.py +0 -0
  36. {python_quanta-0.3.6 → python_quanta-0.3.8}/src/quanta/libs/_pandas/gen/dev.py +0 -0
  37. {python_quanta-0.3.6 → python_quanta-0.3.8}/src/quanta/libs/_pandas/gen/main.py +0 -0
  38. {python_quanta-0.3.6 → python_quanta-0.3.8}/src/quanta/libs/_pandas/rollings/__init__.py +0 -0
  39. {python_quanta-0.3.6 → python_quanta-0.3.8}/src/quanta/libs/_pandas/rollings/base.py +0 -0
  40. {python_quanta-0.3.6 → python_quanta-0.3.8}/src/quanta/libs/_pandas/rollings/core.py +0 -0
  41. {python_quanta-0.3.6 → python_quanta-0.3.8}/src/quanta/libs/_pandas/rollings/dev.py +0 -0
  42. {python_quanta-0.3.6 → python_quanta-0.3.8}/src/quanta/libs/_pandas/rollings/main.py +0 -0
  43. {python_quanta-0.3.6 → python_quanta-0.3.8}/src/quanta/libs/_pandas/stats/__init__.py +0 -0
  44. {python_quanta-0.3.6 → python_quanta-0.3.8}/src/quanta/libs/_pandas/stats/core.py +0 -0
  45. {python_quanta-0.3.6 → python_quanta-0.3.8}/src/quanta/libs/_pandas/stats/dev.py +0 -0
  46. {python_quanta-0.3.6 → python_quanta-0.3.8}/src/quanta/libs/_pandas/stats/main.py +0 -0
  47. {python_quanta-0.3.6 → python_quanta-0.3.8}/src/quanta/libs/_pandas/tools/__init__.py +0 -0
  48. {python_quanta-0.3.6 → python_quanta-0.3.8}/src/quanta/libs/_pandas/tools/core.py +0 -0
  49. {python_quanta-0.3.6 → python_quanta-0.3.8}/src/quanta/libs/_pandas/tools/dev.py +0 -0
  50. {python_quanta-0.3.6 → python_quanta-0.3.8}/src/quanta/libs/_pandas/tools/main.py +0 -0
  51. {python_quanta-0.3.6 → python_quanta-0.3.8}/src/quanta/libs/db/__init__.py +0 -0
  52. {python_quanta-0.3.6 → python_quanta-0.3.8}/src/quanta/libs/db/_data_type_standard/__init__.py +0 -0
  53. {python_quanta-0.3.6 → python_quanta-0.3.8}/src/quanta/libs/db/_data_type_standard/main.py +0 -0
  54. {python_quanta-0.3.6 → python_quanta-0.3.8}/src/quanta/libs/db/_engines/DuckDB.py +0 -0
  55. {python_quanta-0.3.6 → python_quanta-0.3.8}/src/quanta/libs/db/_engines/MySQL.py +0 -0
  56. {python_quanta-0.3.6 → python_quanta-0.3.8}/src/quanta/libs/db/_engines/__init__.py +0 -0
  57. {python_quanta-0.3.6 → python_quanta-0.3.8}/src/quanta/libs/db/_engines/meta.py +0 -0
  58. {python_quanta-0.3.6 → python_quanta-0.3.8}/src/quanta/libs/db/main.py +0 -0
  59. {python_quanta-0.3.6 → python_quanta-0.3.8}/src/quanta/libs/utils/__init__.py +0 -0
  60. {python_quanta-0.3.6 → python_quanta-0.3.8}/src/quanta/libs/utils/_base.py +0 -0
  61. {python_quanta-0.3.6 → python_quanta-0.3.8}/src/quanta/libs/utils/_decorator.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: python-quanta
3
- Version: 0.3.6
3
+ Version: 0.3.8
4
4
  Summary: A quantitative analysis project for financial data.
5
5
  Author-email: Porco Rosso <porcorossobaojiel@gmail.com>
6
6
  Project-URL: Homepage, https://github.com/porcorossobaojie/quanta.git
@@ -1,7 +1,7 @@
1
1
  # D:\codes\quanta\pyproject.toml
2
2
  [project]
3
3
  name = "python-quanta" # 你的项目名称,建议与你的顶级包名(例如 src/quanta)一致
4
- version = "0.3.6" # 项目版本号
4
+ version = "0.3.8" # 项目版本号
5
5
  description = "A quantitative analysis project for financial data." # 项目的简短描述
6
6
  readme = "README.md" # 指向你的 README 文件
7
7
  requires-python = ">=3.9" # 项目所需的 Python 版本
@@ -51,6 +51,7 @@ build-backend = "setuptools.build_meta"
51
51
 
52
52
  # Setuptools 特定配置
53
53
  [tool.setuptools]
54
+ package-data = {"quanta.config" = ["*.yaml"]}
54
55
  # 告诉 setuptools 在 'src' 目录中查找包
55
56
  # 如果你的代码是直接放在 src/quanta 这样的结构下,且 quanta 是顶层包名
56
57
  package-dir = {"" = "src"}
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: python-quanta
3
- Version: 0.3.6
3
+ Version: 0.3.8
4
4
  Summary: A quantitative analysis project for financial data.
5
5
  Author-email: Porco Rosso <porcorossobaojiel@gmail.com>
6
6
  Project-URL: Homepage, https://github.com/porcorossobaojie/quanta.git
@@ -9,6 +9,9 @@ src/quanta/__init__.py
9
9
  src/quanta/duckui.py
10
10
  src/quanta/config/__init__.py
11
11
  src/quanta/config/_internal.py
12
+ src/quanta/config/data.yaml
13
+ src/quanta/config/flow.yaml
14
+ src/quanta/config/libs.yaml
12
15
  src/quanta/libs/__init__.py
13
16
  src/quanta/libs/_flow/__init__.py
14
17
  src/quanta/libs/_flow/_extra_pandas/__init__.py
@@ -1,2 +1,3 @@
1
1
  from . import config, libs
2
2
  from .libs import _pandas
3
+ from .libs import _flow as flow
@@ -0,0 +1,299 @@
1
+ public_keys:
2
+ recommand_settings: &recommand_settings
3
+ portfolio_types: [astock, afund, aindex]
4
+ date_start: "2010-01-01"
5
+ time_bias: "15 hours"
6
+ key: &base_key
7
+ trade_dt: trade_dt
8
+ ann_dt: ann_dt
9
+ report_period: report_period
10
+ astock_code: astock_code
11
+ afund_code: afund_code
12
+ aindex_code: aindex_code
13
+ date_start: "2010-01-01"
14
+ time_bias: "15 hours"
15
+
16
+ tables:
17
+ recommand_settings:
18
+ <<: *recommand_settings
19
+ key:
20
+ <<: *base_key
21
+ id_key: id_key
22
+ primary_key: unique_key
23
+ partition: "pd.date_range('2005-01-01', '2030-12-31', freq='YE')"
24
+
25
+ transform:
26
+ id: id_key
27
+ pub_date: ann_dt
28
+ implementation_pub_date: ann_dt
29
+ date: report_period
30
+ report_date: report_period
31
+ time: trade_dt
32
+ day: trade_dt
33
+
34
+ id_table:
35
+ astockbalancesheet:
36
+ table: astockbalancesheet
37
+ columns_information: jq.finance.STK_BALANCE_SHEET
38
+ commands: >
39
+ jq.finance.run_offset_query(jq.query(jq.finance.STK_BALANCE_SHEET)
40
+ .order_by(jq.finance.STK_BALANCE_SHEET.id)
41
+ .filter((jq.finance.STK_BALANCE_SHEET.source_id == 321003)
42
+ & (jq.finance.STK_BALANCE_SHEET.report_type == 0)
43
+ & (jq.finance.STK_BALANCE_SHEET.id > {id_key})))
44
+
45
+ astockcashflow:
46
+ table: astockcashflow
47
+ columns_information: jq.finance.STK_CASHFLOW_STATEMENT,
48
+ commands: >
49
+ jq.finance.run_offset_query(jq.query(jq.finance.STK_CASHFLOW_STATEMENT)
50
+ .order_by(jq.finance.STK_CASHFLOW_STATEMENT.id)
51
+ .filter((jq.finance.STK_CASHFLOW_STATEMENT.source_id == 321003)
52
+ & (jq.finance.STK_CASHFLOW_STATEMENT.report_type == 0)
53
+ & (jq.finance.STK_CASHFLOW_STATEMENT.id > {id_key})))
54
+
55
+ astockincome:
56
+ table: astockincome
57
+ columns_information: jq.finance.STK_INCOME_STATEMENT,
58
+ commands: >
59
+ jq.finance.run_offset_query(jq.query(jq.finance.STK_INCOME_STATEMENT)
60
+ .order_by(jq.finance.STK_INCOME_STATEMENT.id)
61
+ .filter((jq.finance.STK_INCOME_STATEMENT.source_id == 321003)
62
+ & (jq.finance.STK_INCOME_STATEMENT.report_type == 0)
63
+ & (jq.finance.STK_INCOME_STATEMENT.id > {id_key})))
64
+
65
+ astockperformanceletter:
66
+ table: astockperformance_lt
67
+ columns_information: jq.finance.STK_PERFORMANCE_LETTERS
68
+ commands: >
69
+ jq.finance.run_offset_query(jq.query(jq.finance.STK_PERFORMANCE_LETTERS)
70
+ .order_by(jq.finance.STK_PERFORMANCE_LETTERS.id)
71
+ .filter((jq.finance.STK_PERFORMANCE_LETTERS.report_type == 0)
72
+ & (jq.finance.STK_PERFORMANCE_LETTERS.id > {id_key})))
73
+
74
+ astockforcast:
75
+ table: astockforcast
76
+ columns_information: jq.finance.STK_FIN_FORCAST
77
+ commands: >
78
+ jq.finance.run_offset_query(jq.query(jq.finance.STK_FIN_FORCAST)
79
+ .order_by(jq.finance.STK_FIN_FORCAST.id)
80
+ .filter(jq.finance.STK_FIN_FORCAST.id > {id_key}))
81
+
82
+ astockdividend:
83
+ table: astockdividend
84
+ columns_information: jq.finance.STK_XR_XD
85
+ commands: >
86
+ jq.finance.run_offset_query(jq.query(jq.finance.STK_XR_XD)
87
+ .order_by(jq.finance.STK_XR_XD.id)
88
+ .filter((jq.finance.STK_XR_XD.id > {id_key})
89
+ & (jq.finance.STK_XR_XD.report_date >= "2004-01-01")))
90
+
91
+ astockstatus:
92
+ table: astockstatus
93
+ columns_information: jq.finance.STK_STATUS_CHANGE,
94
+ commands: >
95
+ jq.finance.run_offset_query(jq.query(jq.finance.STK_STATUS_CHANGE)
96
+ .order_by(jq.finance.STK_STATUS_CHANGE.id)
97
+ .filter((jq.finance.STK_STATUS_CHANGE.id > {id_key})))
98
+
99
+ afundtarget:
100
+ table: afundtarget
101
+ columns_information: jq.finance.FUND_INVEST_TARGET
102
+ commands: >
103
+ jq.finance.run_offset_query(jq.query(jq.finance.FUND_INVEST_TARGET)
104
+ .order_by(jq.finance.FUND_INVEST_TARGET.id)
105
+ .filter((jq.finance.FUND_INVEST_TARGET.id > {id_key})))
106
+
107
+ afundshare:
108
+ table: afundshare
109
+ columns_information: jq.finance.FUND_SHARE_DAILY
110
+ commands: >
111
+ jq.finance.run_offset_query(jq.query(jq.finance.FUND_SHARE_DAILY)
112
+ .order_by(jq.finance.FUND_SHARE_DAILY.id)
113
+ .filter((jq.finance.FUND_SHARE_DAILY.id > {id_key})))
114
+
115
+ dt_table:
116
+ afundeodprices:
117
+ table: afundeodprices
118
+ periods: 252
119
+ columns_information:
120
+ time: {'trade_dt': ['datetime', '交易日']}
121
+ code: {'afund_code': ['VARCHAR(16)', '股票代码']}
122
+ open: {'open': ['double(12, 2)', '开盘价(元)']}
123
+ close: {'close': ['double(12, 2)', '收盘价(元)']}
124
+ low: {'low': ['double(12, 2)', '最低价(元)']}
125
+ high: {'high': ['double(12, 2)', '最高价(元)']}
126
+ volume: {'volume': ['bigint', '成交量(股)']}
127
+ money: {'amount': ['bigint', '成交量(元)']}
128
+ high_limit: {'high_limit': ['double(12, 2)', '涨停价(元)']}
129
+ low_limit: {'low_limit': ['double(12, 2)', '跌停价(元)']}
130
+ avg: {'avgprice': ['double(12, 2)', 'VWAP(元)']}
131
+ pre_close: {'preclose': ['double(12, 2)', '昨收盘价(元)']}
132
+ paused: {'tradestatus': ['int(1)', '交易状态']}
133
+ factor: {'post_factor': ['double(16, 6)', '后复权因子']}
134
+ open_adj: {'open_adj': ['double(18, 8)', '后复权开盘价(元)']}
135
+ avg_adj: {'avgprice_adj': ['double(18, 8)', '后复权VWAP(元)']}
136
+ close_adj: {'close_adj': ['double(18, 8)', '后复权收盘价(元)']}
137
+ pre_close_adj: {'preclose_adj': ['double(18, 8)', '后复权昨收盘价(元)']}
138
+ returns: {'ret': ['double(10, 8)', '涨跌幅']}
139
+ commands: >
140
+ pd.merge(
141
+ jq.get_price(
142
+ self._fund,
143
+ fields = ['open','close','low','high','volume','money', 'high_limit','low_limit','avg','pre_close','paused'],
144
+ start_date = '{start_date}',
145
+ end_date = '{end_date}',
146
+ fq = None,
147
+ skip_paused = False),
148
+ jq.get_price(
149
+ self._fund,
150
+ fields = ['factor', 'open', 'close', 'avg', 'pre_close'],
151
+ start_date = '{start_date}',
152
+ end_date = '{end_date}',
153
+ fq = 'post',
154
+ skip_paused = False),
155
+ suffixes=('', '_adj'),
156
+ on =['code', 'time'])
157
+
158
+ astockeodprices:
159
+ table: astockeodprices
160
+ periods: 252
161
+ columns_information:
162
+ time: {'trade_dt': ['datetime', '交易日']}
163
+ code: {'astock_code': ['VARCHAR(16)', '股票代码']}
164
+ open: {'open': ['double(12, 2)', '开盘价(元)']}
165
+ close: {'close': ['double(12, 2)', '收盘价(元)']}
166
+ low: {'low': ['double(12, 2)', '最低价(元)']}
167
+ high: {'high': ['double(12, 2)', '最高价(元)']}
168
+ volume: {'volume': ['bigint', '成交量(股)']}
169
+ money: {'amount': ['bigint', '成交量(元)']}
170
+ high_limit: {'high_limit': ['double(12, 2)', '涨停价(元)']}
171
+ low_limit: {'low_limit': ['double(12, 2)', '跌停价(元)']}
172
+ avg: {'avgprice': ['double(12, 2)', 'VWAP(元)']}
173
+ pre_close: {'preclose': ['double(12, 2)', '昨收盘价(元)']}
174
+ paused: {'tradestatus': ['int(1)', '交易状态']}
175
+ factor: {'post_factor': ['double(16, 6)', '后复权因子']}
176
+ open_adj: {'open_adj': ['double(18, 8)', '后复权开盘价(元)']}
177
+ avg_adj: {'avgprice_adj': ['double(18, 8)', '后复权VWAP(元)']}
178
+ close_adj: {'close_adj': ['double(18, 8)', '后复权收盘价(元)']}
179
+ pre_close_adj: {'preclose_adj': ['double(18, 8)', '后复权昨收盘价(元)']}
180
+ returns: {'ret': ['double(10, 8)', '涨跌幅']}
181
+ commands: >
182
+ pd.merge(
183
+ jq.get_price(
184
+ self._stock,
185
+ fields = ['open','close','low','high','volume','money', 'high_limit','low_limit','avg','pre_close','paused'],
186
+ start_date = '{start_date}',
187
+ end_date = '{end_date}',
188
+ fq = None,
189
+ skip_paused = False),
190
+ jq.get_price(
191
+ self._stock,
192
+ fields = ['factor', 'open', 'close', 'avg', 'pre_close'],
193
+ start_date = '{start_date}',
194
+ end_date = '{end_date}',
195
+ fq = 'post',
196
+ skip_paused = False),
197
+ suffixes=('', '_adj'),
198
+ on =['code', 'time'])
199
+
200
+ astockeodderivativeindicator:
201
+ table: astockeodderivativeindicator
202
+ periods: 1
203
+ columns_information:
204
+ day: {'trade_dt': ['datetime', '交易日']}
205
+ code: {'astock_code': ['VARCHAR(16)', '股票代码']}
206
+ capitalization: {'val_shares': ['double(20, 4)', '总股本']}
207
+ circulating_cap: {'cur_shares': ['double(20, 4)', '流通股本']}
208
+ market_cap: {'val_mv': ['double(20, 4)', '总市值']}
209
+ a_market_cap: {'val_amv': ['double(20, 4)', '总市值(A股)']}
210
+ circulating_market_cap: {'cur_mv': ['double(20, 4)', '流通市值']}
211
+ turnover_ratio: {'free_turnover': ['double(20, 4)', '换手率\n[指定交易日成交量(手)100/截至该日股票的自由流通股本(股)]*100%']}
212
+ pe_ratio: {'pe_ttm': ['double(20, 4)', '市盈率(PE, TTM)\n市盈率(PE,TTM)=(股票在指定交易日期的收盘价 * 当日人民币外汇挂牌价* 截止当日公司总股本)/归属于母公司股东的净利润TTM']}
213
+ pe_ratio_lyr: {'pe_lyr': ['double(20, 4)', '市盈率(PE, LYR)\n市盈率(PE)=(股票在指定交易日期的收盘价 * 当日人民币外汇牌价 * 截至当日公司总股本)/归属母公司股东的净利润']}
214
+ pb_ratio: {'pb': ['double(20,4)', '市净率(PB)\n市净率=(股票在指定交易日期的收盘价 * 当日人民币外汇牌价 * 截至当日公司总股本)/归属母公司股东的权益']}
215
+ ps_ratio: {'ps': ['double(20, 4)', '市销率(PS, TTM)\n市销率TTM=(股票在指定交易日期的收盘价 * 当日人民币外汇牌价 * 截至当日公司总股本)/营业总收入TTM']}
216
+ pcf_ratio: {'pcf': ['double(20, 4)', '市现率(PCF, 现金净流量TTM)\n市现率=(股票在指定交易日期的收盘价 * 当日人民币外汇牌价 * 截至当日公司总股本)/现金及现金等价物净增加额TTM']}
217
+ pcf_ratio2: {'pocf': ['double(20, 4)', '市现率(PCF, 经营现金净流量TTM)\n市现率=(股票在指定交易日期的收盘价 * 截至当日公司总股本)/经营活动现金及经营活动现金等价物净增加额TTM']}
218
+ dividend_ratio: {'dividend_ratio_ttm': ['double(20, 4)', '(近12个月派现合计/总市值)/100']}
219
+ free_market_cap: {'free_mv': ['double(20, 4)', '自由流通市值(亿元), A股收盘价*自由流通股本, 自由流通股本 = 流通股本-其他扣除数(如高管限售25%)']}
220
+ commands: jq.get_valuation(self._stock, start_date='{start_date}', end_date='{start_date}') # 这张表每次只能返回1000条数据,所以只能一天天取
221
+
222
+ astockindicator:
223
+ table: astockindicator
224
+ periods: 1
225
+ columns_information: jq.indicator
226
+ commands: jq.get_fundamentals_continuously(jq.query(jq.indicator), end_date="{start_date}") # 同上
227
+
228
+ aindexeodprices:
229
+ table: aindexeodprices
230
+ periods: 252
231
+ fields: ['avg', 'close', 'high', 'low', 'money', 'open', 'pre_close','volume']
232
+ columns_information:
233
+ time: {'trade_dt': ['datetime', '交易日']}
234
+ code: {'aindex_code': ['VARCHAR(16)', '股票代码: 000016(上证50), 000852(中证1000指数), 000905(中证500), 399300(沪深300), 399303(国证2000), 399317(中证全指)']}
235
+ avg: {'avgprice': ['double(20,4)', '均价(VWAP)']}
236
+ high: {'high': ['double(20,4)', '最高价']}
237
+ low: {'low': ['double(20,4)', '最低价']}
238
+ money: {'amount': ['double(20,6)', '成交金额(千元)']}
239
+ open: {'open': ['double(20,4)', '开盘价']}
240
+ volume: {'volume': ['double(20,6)', '成交量(手)']}
241
+ close: {'close': ['double(20,4)', '收盘价']}
242
+ pre_close: {'preclose': ['double(20,4)', '昨收盘价']}
243
+ returns: {'ret': ['double(12,8)', '涨跌幅(%%)']}
244
+ commands: jq.get_price(self._index, fields=self.fields, start_date='{start_date}', end_date='{end_date}', fq=None, skip_paused=False)
245
+
246
+ aindexweights:
247
+ table: aindexweights
248
+ periods: 1
249
+ security: ['000016.XSHG', '000852.XSHG', '000905.XSHG', '399300.XSHE', '399303.XSHE', '399317.XSHE']
250
+ fields: ['date', 'weight']
251
+ columns_information:
252
+ level_1: {'astock_code': ['VARCHAR(16)','股票代码: 000016(上证50), 000852(中证1000指数), 000905(中证500), 399300(沪深300), 399303(国证2000), 399317(中证全指)']}
253
+ date: {'trade_dt': ['datetime', '报告期']}
254
+ weight: {'weight': ['double(6, 4)', '权重']}
255
+ level_0: {'aindex_code': ['VARCHAR(16)', '指数代码']}
256
+ commands: pd.concat({{sec:jq.get_index_weights(sec ,date="{start_date}")[self.fields] for sec in self.security}}).reset_index()
257
+
258
+ astockindustrys:
259
+ table: astockindustrys
260
+ periods: 1
261
+ columns_information:
262
+ day: {'trade_dt': ['datetime', '交易日']}
263
+ index_: {'astock_code': ['VARCHAR(16)', '股票代码']}
264
+ swl1_code: {'swl1_code': ['int', '申万一级分类']}
265
+ swl1_name: {'swl1_name': ['varchar(16)', '申万一级分类']}
266
+ swl2_code: {'swl2_code': ['int', '申万二级分类']}
267
+ swl2_name: {'swl2_name': ['varchar(16)', '申万二级分类']}
268
+ swl3_code: {'swl3_code': ['int', '申万三级分类']}
269
+ swl3_name: {'swl3_name': ['varchar(16)', '申万三级分类']}
270
+ zjw_code: {'zjw_code': ['varchar(16)', '证监会分类']}
271
+ zjw_name: {'zjw_name': ['varchar(32)', '证监会分类']}
272
+ jql1_code: {'jql1_code': ['varchar(16)', '聚宽一级分类']}
273
+ jql1_name: {'jql1_name': ['varchar(16)', '聚宽一级分类']}
274
+ jql2_code: {'jql2_code': ['varchar(16)', '聚宽二级分类']}
275
+ jql2_name: {'jql2_name': ['varchar(16)', '聚宽二级分类']}
276
+ commands: pd.concat({{i:pd.DataFrame(j) for i,j in jq.get_industry(self._stock, date="{start_date}").items()}}).unstack().reset_index()
277
+
278
+ astocklisting:
279
+ table: astocklisting
280
+ periods: 1
281
+ columns_information:
282
+ index: {'astock_code': ['VARCHAR(16)', '股票代码']}
283
+ display_name: {'company_cn': ['VARCHAR(16)', '股票名称']}
284
+ name: {'company_en': ['VARCHAR(16)', '股票名称_英文']}
285
+ start_date: {'list_date': ['datetime', '上市日期']}
286
+ end_date: {'delist_date': ['datetime', '退市日期']}
287
+ commands: jq.get_all_securities(['stock'], None).reset_index()
288
+
289
+ astockconcept:
290
+ table: astockconcept
291
+ periods: 1
292
+ date_start: "2016-12-31"
293
+ columns_information:
294
+ level_1: {'trade_dt': ['datetime', '交易日']}
295
+ level_0: {'astock_code': ['VARCHAR(16)', '股票代码']}
296
+ concept_code: {'concept_code': ['VARCHAR(8)', '概念代码']}
297
+ concept_name: {'concept_name': ['VARCHAR(16)', '概念名称']}
298
+ commands: >
299
+ pd.concat({{i:pd.DataFrame(list(j.values())[0])for i,j in jq.get_concept(self._stock, '{start_date}').items()}}).reset_index()
@@ -0,0 +1,50 @@
1
+ ---
2
+ start_date: '2014-01-01'
3
+ extra_pandas_attrname: 'f'
4
+
5
+ listing:
6
+ astock_listing_date: list_date
7
+ astock_delisting_date: delist_date
8
+ afund_listing_date: shares
9
+ astock_list:
10
+ table: astockstatus
11
+ column: name
12
+
13
+ status:
14
+ not_st: public_status_id
15
+ tradestatus: tradestatus
16
+
17
+ trade_keys:
18
+ returns: ret
19
+ avgprice: avgprice
20
+ avgprice_adj: avgprice_adj
21
+ high: high
22
+ high_limit: high_limit
23
+ low: low
24
+ low_limit: low_limit
25
+ close: close
26
+ close_adj: close_adj
27
+ preclose: preclose
28
+ preclose_adj: preclose_adj
29
+
30
+ index_mapping:
31
+ 'star': ['002', '300', '688', '301']
32
+ '50': '000016.XSHG'
33
+ '000016': '000016.XSHG'
34
+ '000016.XSHG': '000016.XSHG'
35
+ '300': '399300.XSHE'
36
+ '399300': '399300.XSHE'
37
+ '399300.XSHE': '399300.XSHE'
38
+ '500': '000905.XSHG'
39
+ '000905': '000905.XSHG'
40
+ '000905.XSHG': '000905.XSHG'
41
+ '1000': '000852.XSHG'
42
+ '000852': '000852.XSHG'
43
+ '000852.XSHG': '000852.XSHG'
44
+ '2000': '399303.XSHE'
45
+ '399303': '399303.XSHE'
46
+ '399303.XSHE': '399303.XSHE'
47
+ 'full': '399317.XSHE'
48
+ '399317': '399317.XSHE'
49
+ '399317.XSHE': '399317.XSHE'
50
+ ---
@@ -0,0 +1,61 @@
1
+ ---
2
+ db:
3
+ recommand_settings: None
4
+ DuckDB:
5
+ recommand_settings:
6
+ path: None
7
+ database: Locals
8
+ schema: jq_data
9
+ data_type:
10
+ TINYINT: 'TINYINT'
11
+ SMALLINT: 'SMALLINT'
12
+ INTEGER: 'INT'
13
+ INT: 'INT'
14
+ BIGINT: 'BIGINT'
15
+ FLOAT: 'FLOAT'
16
+ DOUBLE: 'DOUBLE'
17
+ REAL: 'DOUBLE'
18
+ DECIMAL: 'DECIMAL'
19
+ NUMERIC: 'DECIMAL'
20
+ BOOLEAN: 'BOOLEAN'
21
+ BOOL: 'BOOLEAN'
22
+ VARCHAR: 'VARCHAR'
23
+ TEXT: 'TEXT'
24
+ DATE: 'DATE'
25
+ DATETIME: 'DATETIME'
26
+ TIMESTAMP: 'DATETIME'
27
+ INTERVAL: 'INTERVAL'
28
+ UNDIFINED: 'VARCHAR'
29
+ MPS: [DECIMAL]
30
+ MySQL:
31
+ recommand_settings:
32
+ user: user
33
+ password: password
34
+ mysql_connect: 'mysql+pymysql://'
35
+ charset: utf8mb4
36
+ collate: utf8mb4_general_ci
37
+ chunksize: 64000000
38
+ host: '127.0.0.1'
39
+ port: 3306
40
+ schema: jq_data
41
+ data_type:
42
+ TINYINT: 'TINYINT'
43
+ SMALLINT: 'SMALLINT'
44
+ INTEGER: 'INT'
45
+ INT: 'INT'
46
+ BIGINT: 'BIGINT'
47
+ FLOAT: 'FLOAT'
48
+ DOUBLE: 'DOUBLE'
49
+ REAL: 'DOUBLE'
50
+ DECIMAL: 'DECIMAL'
51
+ NUMERIC: 'DECIMAL'
52
+ BOOLEAN: 'BOOLEAN'
53
+ BOOL: 'BOOLEAN'
54
+ VARCHAR: 'VARCHAR'
55
+ TEXT: 'TEXT'
56
+ DATE: 'DATE'
57
+ DATETIME: 'DATETIME'
58
+ TIMESTAMP: 'DATETIME'
59
+ UNDIFINED: 'VARCHAR(255)'
60
+ MPS: [INTEGER, FLOAT, REAL, DOUBLE, DECIMAL, VARCHAR]
61
+ ---
File without changes
File without changes