mns-common 1.3.9.2__py3-none-any.whl → 1.6.1.4__py3-none-any.whl
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.
Potentially problematic release.
This version of mns-common might be problematic. Click here for more details.
- mns_common/__init__.py +1 -0
- mns_common/api/akshare/__init__.py +0 -1
- mns_common/api/akshare/k_line_api.py +20 -82
- mns_common/api/akshare/stock_bid_ask_api.py +21 -14
- mns_common/api/akshare/stock_zb_pool.py +2 -0
- mns_common/api/akshare/stock_zt_pool_api.py +1 -1
- mns_common/api/em/gd/east_money_stock_gdfx_free_top_10_api.py +62 -7
- mns_common/api/em/real_time/__init__.py +1 -1
- mns_common/api/em/real_time/east_money_debt_api.py +168 -71
- mns_common/api/em/real_time/east_money_etf_api.py +165 -27
- mns_common/api/em/real_time/east_money_stock_a_api.py +37 -38
- mns_common/api/em/real_time/east_money_stock_a_v2_api.py +97 -53
- mns_common/api/em/real_time/east_money_stock_common_api.py +174 -0
- mns_common/api/em/real_time/east_money_stock_hk_api.py +252 -271
- mns_common/api/em/real_time/east_money_stock_hk_gtt_api.py +291 -0
- mns_common/api/em/real_time/east_money_stock_multi_thread_api_v3.py +154 -0
- mns_common/api/em/real_time/east_money_stock_us_api.py +210 -82
- mns_common/api/em/real_time/real_time_quotes_repeat_api.py +195 -0
- mns_common/api/foreign_exchange/foreign_exchange_api.py +38 -0
- mns_common/api/k_line/stock_k_line_data_api.py +11 -1
- mns_common/api/kpl/common/__init__.py +3 -2
- mns_common/api/kpl/common/kpl_common_api.py +35 -0
- mns_common/api/kpl/symbol/symbol_his_quotes_api.py +1 -1
- mns_common/api/kpl/theme/kpl_theme_api.py +69 -0
- mns_common/api/kpl/yidong/__init__.py +7 -0
- mns_common/api/kpl/yidong/stock_bid_yi_dong_api.py +52 -0
- mns_common/api/proxies/liu_guan_proxy_api.py +55 -5
- mns_common/api/ths/company/company_product_area_industry_index_query.py +46 -0
- mns_common/api/ths/company/ths_company_info_api.py +2 -1
- mns_common/api/ths/company/ths_company_info_web.py +159 -0
- mns_common/api/ths/concept/app/ths_concept_index_app.py +3 -1
- mns_common/api/ths/wen_cai/ths_wen_cai_api.py +1 -1
- mns_common/api/ths/zt/ths_stock_zt_pool_api.py +20 -1
- mns_common/api/ths/zt/ths_stock_zt_pool_v2_api.py +105 -29
- mns_common/api/ths/zt/ths_stock_zt_reason_web_api.py +100 -0
- mns_common/api/us/ths_us_company_info_api.py +131 -0
- mns_common/api/xueqiu/xue_qiu_k_line_api.py +31 -23
- mns_common/component/common_service_fun_api.py +28 -8
- mns_common/component/company/company_common_service_new_api.py +2 -0
- mns_common/component/cookie/cookie_enum.py +16 -0
- mns_common/component/cookie/cookie_info_service.py +18 -8
- mns_common/component/data/data_init_api.py +13 -8
- mns_common/component/deal/deal_service_api.py +70 -8
- mns_common/component/deal/deal_service_v2_api.py +167 -0
- mns_common/component/em/em_stock_info_api.py +12 -3
- mns_common/component/exception/ExceptionMonitor.py +86 -0
- mns_common/component/exception/__init__.py +7 -0
- mns_common/component/main_line/__init__.py +7 -0
- mns_common/component/main_line/main_line_zt_reason_service.py +257 -0
- mns_common/component/proxies/proxy_common_api.py +199 -31
- mns_common/component/tfp/stock_tfp_api.py +82 -12
- mns_common/component/us/__init__.py +7 -0
- mns_common/component/us/us_stock_etf_info_api.py +130 -0
- mns_common/constant/db_name_constant.py +75 -26
- mns_common/constant/extra_income_db_name.py +97 -11
- mns_common/constant/strategy_classify.py +72 -0
- mns_common/db/MongodbUtil.py +3 -0
- mns_common/db/MongodbUtilLocal.py +3 -0
- {mns_common-1.3.9.2.dist-info → mns_common-1.6.1.4.dist-info}/METADATA +1 -1
- {mns_common-1.3.9.2.dist-info → mns_common-1.6.1.4.dist-info}/RECORD +64 -47
- mns_common/api/ths/concept/web/ths_company_info_web.py +0 -163
- mns_common/component/qmt/qmt_buy_service.py +0 -172
- mns_common/component/task/real_time_data_sync_check.py +0 -97
- /mns_common/{component/qmt → api/foreign_exchange}/__init__.py +0 -0
- /mns_common/{component/task → api/kpl/theme}/__init__.py +0 -0
- {mns_common-1.3.9.2.dist-info → mns_common-1.6.1.4.dist-info}/WHEEL +0 -0
- {mns_common-1.3.9.2.dist-info → mns_common-1.6.1.4.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
import sys
|
|
2
|
+
import os
|
|
3
|
+
|
|
4
|
+
file_path = os.path.abspath(__file__)
|
|
5
|
+
end = file_path.index('mns') + 21
|
|
6
|
+
project_path = file_path[0:end]
|
|
7
|
+
sys.path.append(project_path)
|
|
8
|
+
from loguru import logger
|
|
9
|
+
import csv
|
|
10
|
+
import requests
|
|
11
|
+
import pandas as pd
|
|
12
|
+
import mns_common.component.em.em_stock_info_api as em_stock_info_api
|
|
13
|
+
from functools import lru_cache
|
|
14
|
+
import mns_common.utils.data_frame_util as data_frame_util
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
@lru_cache()
|
|
18
|
+
def get_us_stock_info():
|
|
19
|
+
# 东财美股列表
|
|
20
|
+
em_us_stock_info_df = em_stock_info_api.get_us_stock_info()
|
|
21
|
+
em_us_stock_info_df['symbol'] = em_us_stock_info_df['symbol'].str.replace('_', '-')
|
|
22
|
+
em_us_stock_info_df = em_us_stock_info_df.loc[em_us_stock_info_df['total_mv'] != 0]
|
|
23
|
+
|
|
24
|
+
if data_frame_util.is_not_empty(em_us_stock_info_df):
|
|
25
|
+
em_us_stock_info_df.fillna({'list_date': 10000101}, inplace=True)
|
|
26
|
+
em_us_stock_info_df = em_us_stock_info_df[['symbol', 'name', 'list_date']]
|
|
27
|
+
|
|
28
|
+
# alpha 股票名单
|
|
29
|
+
alpha_us_stock_info = get_us_alpha_stock_list()
|
|
30
|
+
alpha_us_stock_info = alpha_us_stock_info.loc[alpha_us_stock_info['assetType'] == 'Stock']
|
|
31
|
+
if data_frame_util.is_not_empty(alpha_us_stock_info):
|
|
32
|
+
alpha_us_stock_info.fillna({'list_date': '1000-01-01'}, inplace=True)
|
|
33
|
+
alpha_us_stock_info = alpha_us_stock_info[['symbol', 'name', 'list_date']]
|
|
34
|
+
|
|
35
|
+
alpha_us_stock_info['list_date'] = alpha_us_stock_info['list_date'].astype(str).str.replace('-', '').astype(int)
|
|
36
|
+
|
|
37
|
+
us_stock_result_df = pd.concat([alpha_us_stock_info, em_us_stock_info_df])
|
|
38
|
+
us_stock_result_df.drop_duplicates(subset=['symbol'], inplace=True)
|
|
39
|
+
|
|
40
|
+
return us_stock_result_df
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
@lru_cache()
|
|
44
|
+
def get_us_etf_info():
|
|
45
|
+
us_etf_info_df = em_stock_info_api.get_us_etf_info()
|
|
46
|
+
if data_frame_util.is_not_empty(us_etf_info_df):
|
|
47
|
+
us_etf_info_df.fillna({'list_date': 10000101}, inplace=True)
|
|
48
|
+
us_etf_info_df = us_etf_info_df[['symbol', 'name', 'list_date']]
|
|
49
|
+
|
|
50
|
+
# alpha ETF名单
|
|
51
|
+
alpha_us_etf_info = get_us_alpha_stock_list()
|
|
52
|
+
alpha_us_etf_info = alpha_us_etf_info.loc[alpha_us_etf_info['assetType'] == 'ETF']
|
|
53
|
+
if data_frame_util.is_not_empty(alpha_us_etf_info):
|
|
54
|
+
alpha_us_etf_info.fillna({'list_date': '1000-01-01'}, inplace=True)
|
|
55
|
+
alpha_us_etf_info = alpha_us_etf_info[['symbol', 'name', 'list_date']]
|
|
56
|
+
|
|
57
|
+
alpha_us_etf_info['list_date'] = alpha_us_etf_info['list_date'].astype(str).str.replace('-', '').astype(int)
|
|
58
|
+
us_etf_result_df = pd.concat([us_etf_info_df, alpha_us_etf_info])
|
|
59
|
+
us_etf_result_df.drop_duplicates(subset=['symbol'], inplace=True)
|
|
60
|
+
|
|
61
|
+
return us_etf_result_df
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
# 退市 https://www.alphavantage.co/query?function=LISTING_STATUS&date=2012-07-10&state=delisted&apikey=QODR3TBYB2U4M9YR
|
|
65
|
+
@lru_cache()
|
|
66
|
+
def get_us_alpha_stock_list(apikey):
|
|
67
|
+
try:
|
|
68
|
+
# replace the "demo" apikey below with your own key from https://www.alphavantage.co/support/#api-key
|
|
69
|
+
CSV_URL = 'https://www.alphavantage.co/query?function=LISTING_STATUS&apikey=' + apikey
|
|
70
|
+
with requests.Session() as s:
|
|
71
|
+
download = s.get(CSV_URL)
|
|
72
|
+
decoded_content = download.content.decode('utf-8')
|
|
73
|
+
cr = csv.reader(decoded_content.splitlines(), delimiter=',')
|
|
74
|
+
my_list = list(cr)
|
|
75
|
+
# 提取列名(第1行)
|
|
76
|
+
columns = my_list[0]
|
|
77
|
+
# 提取数据(第2行及以后)
|
|
78
|
+
values = my_list[1:]
|
|
79
|
+
|
|
80
|
+
# 转换为 DataFrame
|
|
81
|
+
df = pd.DataFrame(values, columns=columns)
|
|
82
|
+
df = df.rename(columns={'ipoDate': 'list_date'})
|
|
83
|
+
if data_frame_util.is_not_empty(df):
|
|
84
|
+
df.to_csv(r'D:\mns\mns-common\mns_common\component\us\listing_status.csv', index=False, encoding='gbk')
|
|
85
|
+
else:
|
|
86
|
+
df = pd.read_csv(r'D:\mns\mns-common\mns_common\component\us\listing_status.csv', encoding='utf-8')
|
|
87
|
+
return df
|
|
88
|
+
except BaseException as e:
|
|
89
|
+
logger.error("下载出现异常:{},", e)
|
|
90
|
+
df = pd.read_csv(r'D:\mns\mns-common\mns_common\component\us\listing_status.csv', encoding='utf-8')
|
|
91
|
+
df = df.rename(columns={'ipoDate': 'list_date'})
|
|
92
|
+
return df
|
|
93
|
+
|
|
94
|
+
|
|
95
|
+
def get_us_alpha_stock_de_list(apikey):
|
|
96
|
+
try:
|
|
97
|
+
# replace the "demo" apikey below with your own key from https://www.alphavantage.co/support/#api-key
|
|
98
|
+
CSV_URL = 'https://www.alphavantage.co/query?function=LISTING_STATUS&state=delisted&apikey=' + apikey
|
|
99
|
+
with requests.Session() as s:
|
|
100
|
+
download = s.get(CSV_URL)
|
|
101
|
+
decoded_content = download.content.decode('utf-8')
|
|
102
|
+
cr = csv.reader(decoded_content.splitlines(), delimiter=',')
|
|
103
|
+
my_list = list(cr)
|
|
104
|
+
# 提取列名(第1行)
|
|
105
|
+
columns = my_list[0]
|
|
106
|
+
# 提取数据(第2行及以后)
|
|
107
|
+
values = my_list[1:]
|
|
108
|
+
|
|
109
|
+
# 转换为 DataFrame
|
|
110
|
+
df = pd.DataFrame(values, columns=columns)
|
|
111
|
+
df = df.rename(columns={'ipoDate': 'list_date'})
|
|
112
|
+
if data_frame_util.is_not_empty(df):
|
|
113
|
+
df.to_csv(r'D:\mns\mns-common\mns_common\component\us\de_list_status.csv', index=False, encoding='gbk')
|
|
114
|
+
else:
|
|
115
|
+
df = pd.read_csv(r'D:\mns\mns-common\mns_common\component\us\de_list_status.csv', encoding='utf-8')
|
|
116
|
+
return df
|
|
117
|
+
except BaseException as e:
|
|
118
|
+
logger.error("下载出现异常:{},", e)
|
|
119
|
+
df = pd.read_csv(r'D:\mns\mns-common\mns_common\component\us\de_list_status.csv', encoding='utf-8')
|
|
120
|
+
df = df.rename(columns={'ipoDate': 'list_date'})
|
|
121
|
+
return df
|
|
122
|
+
|
|
123
|
+
|
|
124
|
+
if __name__ == '__main__':
|
|
125
|
+
# get_us_alpha_stock_de_list()
|
|
126
|
+
get_us_alpha_stock_de_list()
|
|
127
|
+
df_test = get_us_stock_info()
|
|
128
|
+
df_test.drop_duplicates(subset=['symbol'], inplace=True)
|
|
129
|
+
print(df_test)
|
|
130
|
+
get_us_alpha_stock_de_list()
|
|
@@ -24,6 +24,9 @@ EM_US_STOCK_INFO = 'em_us_stock_info'
|
|
|
24
24
|
# ip代理池
|
|
25
25
|
IP_PROXY_POOL = 'ip_proxy_pool'
|
|
26
26
|
|
|
27
|
+
# ip代理城市信息
|
|
28
|
+
IP_PROXY_CITY_PROVINCE = 'ip_proxy_city_province'
|
|
29
|
+
|
|
27
30
|
# 大单同步表
|
|
28
31
|
BIG_DEAL_NAME = "ths_big_deal_fund"
|
|
29
32
|
# 大单选择表
|
|
@@ -38,10 +41,6 @@ CALL_AUCTION_DB_NAME = 'call_auction_signal'
|
|
|
38
41
|
CALL_AUCTION_DB_NAME_REAL_TIME = 'call_auction_signal_realtime'
|
|
39
42
|
# 涨停打板表
|
|
40
43
|
NOW_TIME_ZT_DA_BAN = 'now_time_zt_da_ban'
|
|
41
|
-
# 开盘啦精选指数表
|
|
42
|
-
KPL_BEST_CHOOSE_INDEX = 'kpl_best_choose_index'
|
|
43
|
-
# 开盘啦详细组成
|
|
44
|
-
KPL_BEST_CHOOSE_INDEX_DETAIL = "kpl_best_choose_index_detail"
|
|
45
44
|
|
|
46
45
|
# 同花顺概念表
|
|
47
46
|
THS_CONCEPT_LIST = "ths_concept_list"
|
|
@@ -54,33 +53,30 @@ THS_STOCK_CONCEPT_DETAIL_APP = "ths_stock_concept_detail_app"
|
|
|
54
53
|
|
|
55
54
|
# 今日排除买入股票
|
|
56
55
|
TODAY_EXCLUDE_STOCK = "today_exclude_stocks"
|
|
56
|
+
|
|
57
57
|
# 今日买入股票
|
|
58
58
|
BUY_STOCK_NAME = 'trade_stocks'
|
|
59
59
|
|
|
60
|
-
# 公司信息表
|
|
61
|
-
COMPANY_INFO = 'company_info'
|
|
62
|
-
# 公司信息历史表
|
|
63
|
-
COMPANY_INFO_HIS = 'company_info_his'
|
|
64
|
-
|
|
65
60
|
# TODAY_NEW_CONCEPT_LIST
|
|
66
61
|
TODAY_NEW_CONCEPT_LIST = 'today_new_concept_list'
|
|
67
62
|
|
|
68
|
-
# 开票啦历史数据
|
|
69
|
-
KPL_BEST_CHOOSE_HIS = 'kpl_best_choose_his'
|
|
70
|
-
|
|
71
|
-
# 开票啦每日数据
|
|
72
|
-
KPL_BEST_CHOOSE_DAILY = 'kpl_best_choose_daily'
|
|
73
|
-
|
|
74
63
|
# 当前持仓股票
|
|
75
64
|
POSITION_STOCK = 'position_stock'
|
|
76
65
|
|
|
66
|
+
# 订单委托表
|
|
67
|
+
STOCK_TRADE_ORDERS = 'stock_trade_orders'
|
|
68
|
+
|
|
77
69
|
# 个股黑名单
|
|
78
70
|
SELF_BLACK_STOCK = 'self_black_stock'
|
|
79
|
-
#
|
|
71
|
+
# 长期自选板块
|
|
80
72
|
SELF_CHOOSE_PLATE = 'self_choose_plate'
|
|
81
|
-
#
|
|
73
|
+
# 长期自选个股
|
|
82
74
|
SELF_CHOOSE_STOCK = 'self_choose_stock'
|
|
83
75
|
|
|
76
|
+
|
|
77
|
+
# 个股异动名单Abnormal Rule
|
|
78
|
+
STOCK_ABNORMAL_LIST = 'stock_abnormal_list'
|
|
79
|
+
|
|
84
80
|
# 今日自选个股
|
|
85
81
|
TODAY_SELF_CHOOSE_STOCK = 'today_self_choose_stock'
|
|
86
82
|
|
|
@@ -116,7 +112,10 @@ STOCK_INTERACTIVE_QUESTION = 'stock_interactive_question'
|
|
|
116
112
|
|
|
117
113
|
# 上交所 互动ID映射代码
|
|
118
114
|
|
|
119
|
-
|
|
115
|
+
SH_INFO_UID = 'sh_info_uid'
|
|
116
|
+
|
|
117
|
+
# 深交所 互动ID映射代码
|
|
118
|
+
SZ_INFO_UID = 'sz_info_uid'
|
|
120
119
|
|
|
121
120
|
# kcx 高涨幅>9.5 当天开盘数据
|
|
122
121
|
KCX_HIGH_CHG_OPEN_DATA = 'realtime_quotes_now_zt_new_kc_open'
|
|
@@ -135,9 +134,6 @@ KZZ_DEBT_INFO = 'kzz_debt_info'
|
|
|
135
134
|
# 交易配置信息
|
|
136
135
|
TRADE_CONFIG_INFO = 'trade_config_info'
|
|
137
136
|
|
|
138
|
-
# 公司备注信息
|
|
139
|
-
COMPANY_REMARK_INFO = 'company_remark_info'
|
|
140
|
-
|
|
141
137
|
# 打板待选
|
|
142
138
|
DA_BAN_SELF_CHOOSE = 'da_ban_self_choose'
|
|
143
139
|
# 打板排除
|
|
@@ -146,11 +142,28 @@ DA_BAN_SELF_EXCLUDE = 'da_ban_self_exclude'
|
|
|
146
142
|
# 港股公司行业列表
|
|
147
143
|
HK_COMPANY_INDUSTRY = 'hk_company_industry'
|
|
148
144
|
|
|
145
|
+
# 公司基本信息
|
|
146
|
+
COMPANY_BASE_INFO = 'company_base_info'
|
|
147
|
+
|
|
149
148
|
# 公司控股信息 子孙公司 联营公司
|
|
150
149
|
COMPANY_HOLDING_INFO = 'company_holding_info'
|
|
150
|
+
# 公司业务组成
|
|
151
|
+
COMPANY_BUSINESS_INFO = 'company_business_info'
|
|
152
|
+
|
|
151
153
|
# 公司公告信息
|
|
152
154
|
COMPANY_ANNOUNCE_INFO = 'company_announce_info'
|
|
153
155
|
|
|
156
|
+
# 公司行业信息
|
|
157
|
+
COMPANY_INDUSTRY_INFO = 'company_industry_info'
|
|
158
|
+
|
|
159
|
+
# 公司信息临时表
|
|
160
|
+
COMPANY_INFO_TEMP = 'company_info_temp'
|
|
161
|
+
|
|
162
|
+
# 公司信息表
|
|
163
|
+
COMPANY_INFO = 'company_info'
|
|
164
|
+
# 公司信息历史表
|
|
165
|
+
COMPANY_INFO_HIS = 'company_info_his'
|
|
166
|
+
|
|
154
167
|
# 行业和概念自己的备注
|
|
155
168
|
INDUSTRY_CONCEPT_REMARK = 'industry_concept_remark'
|
|
156
169
|
|
|
@@ -163,9 +176,6 @@ FU_PAN_NOTE = 'fu_pan_note'
|
|
|
163
176
|
# 公司停复牌
|
|
164
177
|
STOCK_TFP_INFO = 'stock_tfp_info'
|
|
165
178
|
|
|
166
|
-
# 公司停复牌
|
|
167
|
-
STOCK_TFP_INFO = 'stock_tfp_info'
|
|
168
|
-
|
|
169
179
|
# 隔夜打板
|
|
170
180
|
OVER_NIGHT_DA_BAN = 'over_night_da_ban'
|
|
171
181
|
|
|
@@ -184,7 +194,46 @@ THS_STOCK_INDUSTRY_DETAIL = 'ths_stock_industry_detail'
|
|
|
184
194
|
# 年k线前复权
|
|
185
195
|
STOCK_QFQ_YEAR = 'stock_qfq_year'
|
|
186
196
|
|
|
187
|
-
#
|
|
188
|
-
|
|
197
|
+
# 涨停原因 详情
|
|
198
|
+
ZT_REASON_ANALYSIS = 'zt_reason_analysis'
|
|
189
199
|
# 主线详情
|
|
190
200
|
MAIN_LINE_DETAIL = 'main_line_detail'
|
|
201
|
+
|
|
202
|
+
# 主线龙头
|
|
203
|
+
MAIN_LINE_LEADER = 'main_line_leader'
|
|
204
|
+
|
|
205
|
+
# 自选主线列表
|
|
206
|
+
MAIN_LINE_LIST = 'main_line_list'
|
|
207
|
+
|
|
208
|
+
# 整体选择表
|
|
209
|
+
STRATEGY_TOTAL_CHOOSE_PARAM = 'strategy_total_choose_param'
|
|
210
|
+
# k 线参数表
|
|
211
|
+
STRATEGY_K_LINE_PARAM = 'strategy_k_line_param'
|
|
212
|
+
# 评分参数
|
|
213
|
+
STRATEGY_SCORE_PARAM = 'strategy_score_param'
|
|
214
|
+
|
|
215
|
+
# todo 开盘啦数据
|
|
216
|
+
|
|
217
|
+
# 开盘啦精选指数表
|
|
218
|
+
KPL_BEST_CHOOSE_INDEX = 'kpl_best_choose_index'
|
|
219
|
+
# 开盘啦详细组成
|
|
220
|
+
KPL_BEST_CHOOSE_INDEX_DETAIL = "kpl_best_choose_index_detail"
|
|
221
|
+
|
|
222
|
+
# 开盘啦历史数据
|
|
223
|
+
KPL_BEST_CHOOSE_HIS = 'kpl_best_choose_his'
|
|
224
|
+
|
|
225
|
+
# 开盘啦每日数据
|
|
226
|
+
KPL_BEST_CHOOSE_DAILY = 'kpl_best_choose_daily'
|
|
227
|
+
|
|
228
|
+
# 开盘啦题材列表
|
|
229
|
+
KPL_THEME_LIST = 'kpl_theme_list'
|
|
230
|
+
|
|
231
|
+
# 开盘啦题材详细信息
|
|
232
|
+
KPL_THEME_DETAILS = 'kpl_theme_details'
|
|
233
|
+
# 开盘啦题材列 子列表1
|
|
234
|
+
KPL_THEME_LIST_L1 = 'kpl_theme_list_l1'
|
|
235
|
+
# 开盘啦题材列 子列表2
|
|
236
|
+
KPL_THEME_LIST_L2 = 'kpl_theme_list_l2'
|
|
237
|
+
# 开盘啦题材 股票备注 优先级
|
|
238
|
+
KPL_THEME_STOCK_REMARK = 'kpl_theme_stock_remark'
|
|
239
|
+
|
|
@@ -7,9 +7,16 @@ project_path = file_path[0:end]
|
|
|
7
7
|
sys.path.append(project_path)
|
|
8
8
|
|
|
9
9
|
# db_name
|
|
10
|
-
|
|
10
|
+
######################################[数据库]##############################################################
|
|
11
11
|
EXTRA_INCOME = 'extraIncome'
|
|
12
12
|
|
|
13
|
+
# us_stock 美股信息数据表
|
|
14
|
+
US_STOCK = 'us_stock'
|
|
15
|
+
# a股数据表
|
|
16
|
+
A_STOCK = 'a_stock'
|
|
17
|
+
# hk股票数据
|
|
18
|
+
HK_STOCK = 'hk_stock'
|
|
19
|
+
######################################[集合表]##############################################################
|
|
13
20
|
# 东方财富a股信息
|
|
14
21
|
EM_A_STOCK_INFO = 'em_a_stock_info'
|
|
15
22
|
|
|
@@ -22,11 +29,8 @@ EM_KZZ_INFO = 'em_kzz_info'
|
|
|
22
29
|
# 东方财富HK股信息
|
|
23
30
|
EM_HK_STOCK_INFO = 'em_hk_stock_info'
|
|
24
31
|
|
|
25
|
-
#
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
# 东方财富US ETF信息
|
|
29
|
-
EM_US_ETF_INFO = 'em_us_etf_info'
|
|
32
|
+
# 东方财富港股通信息
|
|
33
|
+
EM_HK_GGT_STOCK_INFO = 'em_hk_ggt_stock_info'
|
|
30
34
|
|
|
31
35
|
# 创业板分钟集合数据
|
|
32
36
|
ONE_MINUTE_K_LINE_BFQ_C = 'one_minute_k_line_bfq_c'
|
|
@@ -65,13 +69,35 @@ ONE_MINUTE_SYNC_FAIL = 'one_minute_sync_fail'
|
|
|
65
69
|
|
|
66
70
|
# us stock daily_k_line
|
|
67
71
|
|
|
68
|
-
US_STOCK_DAILY_QFQ_K_LINE = 'us_stock_daily_qfq_k_line'
|
|
69
72
|
|
|
70
|
-
#
|
|
71
|
-
|
|
73
|
+
# 雪球利润表
|
|
74
|
+
XUE_QIU_LRB_INCOME = 'xue_qiu_lrb_income'
|
|
72
75
|
|
|
73
|
-
#
|
|
74
|
-
|
|
76
|
+
# 雪球资产负债表
|
|
77
|
+
XUE_QIU_ASSET_DEBT = 'xue_qiu_asset_debt'
|
|
78
|
+
|
|
79
|
+
# 雪球资产现金流量表
|
|
80
|
+
XUE_QIU_CASH_FLOW = 'xue_qiu_cash_flow'
|
|
81
|
+
|
|
82
|
+
# todo A股日k线
|
|
83
|
+
# A 可转债前复权日k线
|
|
84
|
+
A_KZZ_QFQ_DAILY = 'a_kzz_qfq_daily'
|
|
85
|
+
|
|
86
|
+
# A ETF前复权日k线
|
|
87
|
+
A_ETF_QFQ_DAILY = 'a_etf_qfq_daily'
|
|
88
|
+
|
|
89
|
+
# A 股票前复权日k线
|
|
90
|
+
A_STOCK_QFQ_DAILY = 'a_stock_qfq_daily'
|
|
91
|
+
|
|
92
|
+
# A 指数前复权日k线
|
|
93
|
+
A_INDEX_QFQ_DAILY = 'a_index_qfq_daily'
|
|
94
|
+
|
|
95
|
+
# todo 港股
|
|
96
|
+
# HK ETF前复权日k线
|
|
97
|
+
HK_ETF_QFQ_DAILY = 'hk_etf_qfq_daily'
|
|
98
|
+
|
|
99
|
+
# HK 股票前复权日k线
|
|
100
|
+
HK_STOCK_QFQ_DAILY = 'hk_stock_qfq_daily'
|
|
75
101
|
|
|
76
102
|
# hk stock daily_k_line
|
|
77
103
|
HK_STOCK_DAILY_QFQ_K_LINE = 'hk_stock_daily_qfq_k_line'
|
|
@@ -80,3 +106,63 @@ HK_STOCK_MINUTE_K_LINE_BFQ = 'hk_stock_one_minute_k_line_bfq'
|
|
|
80
106
|
|
|
81
107
|
# hk etf 1分钟集合数据
|
|
82
108
|
HK_ETF_MINUTE_K_LINE_BFQ = 'hk_etf_one_minute_k_line_bfq'
|
|
109
|
+
|
|
110
|
+
# todo US 美股
|
|
111
|
+
|
|
112
|
+
# US 同花顺公司信息
|
|
113
|
+
US_STOCK_INFO_THS = 'us_stock_info_ths'
|
|
114
|
+
|
|
115
|
+
# 东方财富US股信息
|
|
116
|
+
US_STOCK_INFO_EM = 'us_stock_info_em'
|
|
117
|
+
|
|
118
|
+
# 东方财富US ETF信息
|
|
119
|
+
US_ETF_INFO_EM = 'us_etf_info_em'
|
|
120
|
+
|
|
121
|
+
# alpha_vantage US股票信息
|
|
122
|
+
US_STOCK_INFO_ALPHA_VANTAGE = 'us_stock_info_alpha_vantage'
|
|
123
|
+
|
|
124
|
+
# alpha_vantage US ETF信息
|
|
125
|
+
US_ETF_INFO_ALPHA_VANTAGE = 'us_etf_info_alpha_vantage'
|
|
126
|
+
|
|
127
|
+
# alpha_vantage US 退市信息
|
|
128
|
+
US_DE_LIST_INFO_ALPHA_VANTAGE = 'us_de_list_info_alpha_vantage'
|
|
129
|
+
|
|
130
|
+
# 美股公司信息 清洗表
|
|
131
|
+
US_STOCK_LIST = 'us_stock_list'
|
|
132
|
+
# 美ETF信息 清洗表
|
|
133
|
+
US_ETF_LIST = 'us_etf_list'
|
|
134
|
+
# 美股所属行业信息
|
|
135
|
+
US_STOCK_INDUSTRY_LIST = 'us_stock_industry_list'
|
|
136
|
+
# 美股所属概念信息
|
|
137
|
+
US_STOCK_CONCEPT_LIST = 'us_stock_concept_list'
|
|
138
|
+
|
|
139
|
+
# todo 日k线集合
|
|
140
|
+
# US ETF前复权日k线
|
|
141
|
+
US_ETF_QFQ_DAILY = 'us_etf_qfq_daily'
|
|
142
|
+
# US ETF不复权日k线
|
|
143
|
+
US_ETF_BFQ_DAILY = 'us_etf_bfq_daily'
|
|
144
|
+
# US ETF后复权日k线
|
|
145
|
+
US_ETF_HFQ_DAILY = 'us_etf_hfq_daily'
|
|
146
|
+
|
|
147
|
+
# us stock 日k线前复权
|
|
148
|
+
US_STOCK_DAILY_QFQ_K_LINE = 'us_stock_daily_qfq_k_line'
|
|
149
|
+
# us stock 日k线不复权
|
|
150
|
+
US_STOCK_DAILY_BFQ_K_LINE = 'us_stock_daily_bfq_k_line'
|
|
151
|
+
# us stock 日k线后复权
|
|
152
|
+
US_STOCK_DAILY_HFQ_K_LINE = 'us_stock_daily_hfq_k_line'
|
|
153
|
+
|
|
154
|
+
# todo 一分钟集合
|
|
155
|
+
# us stock 1分钟集合数据
|
|
156
|
+
US_STOCK_MINUTE_K_LINE_BFQ = 'us_stock_one_minute_k_line_bfq'
|
|
157
|
+
|
|
158
|
+
# us etf 1分钟集合数据
|
|
159
|
+
US_ETF_MINUTE_K_LINE_BFQ = 'us_etf_one_minute_k_line_bfq'
|
|
160
|
+
|
|
161
|
+
# us 主要etf 1分钟集合数据
|
|
162
|
+
US_MAIN_ETF_MINUTE_K_LINE_BFQ = 'us_main_etf_one_minute_k_line_bfq'
|
|
163
|
+
|
|
164
|
+
# 美股分钟同步状态表
|
|
165
|
+
US_ONE_MINUTE_SYNC_STATUS = 'us_one_minute_sync_status'
|
|
166
|
+
|
|
167
|
+
# 外汇表
|
|
168
|
+
FOREIGN_EXCHANGE_TABLE = 'foreign_exchange_table'
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
from enum import Enum
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class StrategyClassify(Enum):
|
|
5
|
+
# 731 到无穷天的股票 kc
|
|
6
|
+
KC_NORMAL = ('kc_normal', 'kc_normal')
|
|
7
|
+
|
|
8
|
+
# 365 到730的股票 kc
|
|
9
|
+
KC_NORMAL_SUB = ('kc_normal_sub', 'kc_normal_sub')
|
|
10
|
+
|
|
11
|
+
# 100 到 365 天的股票 kc
|
|
12
|
+
KC_SUB = ('kc_sub', 'kc_sub')
|
|
13
|
+
|
|
14
|
+
# 6 到 100的股票 kc
|
|
15
|
+
KC_SUB_NEW = ('kc_sub_new', 'kc_sub_new')
|
|
16
|
+
|
|
17
|
+
# 731 到无穷天的股票 sh
|
|
18
|
+
SH_NORMAL = ('sh_normal', 'sh_normal')
|
|
19
|
+
|
|
20
|
+
# 365 到730的股票 sh
|
|
21
|
+
SH_NORMAL_SUB = ('sh_normal_sub', 'sh_normal_sub')
|
|
22
|
+
|
|
23
|
+
# 100 到 365天的股票 sh
|
|
24
|
+
SH_SUB = ('sh_sub', 'sh_sub')
|
|
25
|
+
|
|
26
|
+
# 6 到 100的股票 sh
|
|
27
|
+
SH_SUB_NEW = ('sh_sub_new', 'sh_sub_new')
|
|
28
|
+
|
|
29
|
+
# 北交所股票 普通
|
|
30
|
+
BJS_NORMAL = ('bjs_normal', 'bjs_normal')
|
|
31
|
+
|
|
32
|
+
# 北交所股票 次新
|
|
33
|
+
BJS_SUB_NEW = ('bjs_sub_new', 'bjs_sub_new')
|
|
34
|
+
|
|
35
|
+
# 上市交易 1-5天的股票
|
|
36
|
+
NEW_STOCK = ('new_stock', 'new_stock')
|
|
37
|
+
|
|
38
|
+
# 集合竞价 高外盘买入 科创
|
|
39
|
+
HIGH_OUT_DISK_BUY_KC = ('high_out_disk_buy_kc', 'high_out_disk_buy_kc')
|
|
40
|
+
|
|
41
|
+
# 集合竞价 高外盘买入 沪深
|
|
42
|
+
HIGH_OUT_DISK_BUY_SH = ('high_out_disk_buy_sh', 'high_out_disk_buy_sh')
|
|
43
|
+
|
|
44
|
+
# 集合竞价 高外盘买入 北交所
|
|
45
|
+
HIGH_OUT_DISK_BUY_BJS = ('high_out_disk_buy_bjs', 'high_out_disk_buy_bjs')
|
|
46
|
+
|
|
47
|
+
# 所有策略
|
|
48
|
+
ALL = ('all', '所有')
|
|
49
|
+
|
|
50
|
+
def __init__(self, strategy_code, strategy_name):
|
|
51
|
+
self.strategy_name = strategy_name
|
|
52
|
+
self.strategy_code = strategy_code
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
# 获取策略分类
|
|
56
|
+
def get_strategy_classify(strategy_code, data_choose_df):
|
|
57
|
+
return data_choose_df.loc[data_choose_df['strategy_code'] == strategy_code]
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
class StrategyTimePeriod(Enum):
|
|
61
|
+
# 第一阶段
|
|
62
|
+
FIRST_PERIOD = ('first_period', 'first_period')
|
|
63
|
+
# 第二阶段
|
|
64
|
+
SECOND_PERIOD = ('second_period', 'second_period')
|
|
65
|
+
# 第三阶段
|
|
66
|
+
THIRD_PERIOD = ('third_period', 'third_period')
|
|
67
|
+
# 集合竞价阶段
|
|
68
|
+
CALL_AUCTION_PERIOD = ('call_auction_period', 'call_auction_period')
|
|
69
|
+
|
|
70
|
+
def __init__(self, time_code, time_name):
|
|
71
|
+
self.time_name = time_name
|
|
72
|
+
self.time_code = time_code
|
mns_common/db/MongodbUtil.py
CHANGED