mns-scheduler 1.2.5.0__py3-none-any.whl → 1.2.5.2__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-scheduler might be problematic. Click here for more details.

@@ -70,7 +70,7 @@ def sync_col_move(str_day):
70
70
  try:
71
71
  db_export('127.0.0.1:27017', str_day)
72
72
  db_import('127.0.0.1:27019', str_day)
73
- # delete_exist_data(str_day)
73
+ delete_exist_data(str_day)
74
74
  except BaseException as e:
75
75
  logger.error("备份数据出现错误:{}", e)
76
76
 
@@ -115,5 +115,5 @@ if __name__ == '__main__':
115
115
 
116
116
  trade_date_list = mongodb_util.find_query_data('trade_date_list', query_trade)
117
117
  for trade_one in trade_date_list.itertuples():
118
- trade_date = trade_one.trade_date
119
- sync_col_move(trade_date)
118
+ trade_date_move = trade_one.trade_date
119
+ sync_col_move(trade_date_move)
@@ -15,6 +15,7 @@ remote_mongodb_util = RemoteMongodbUtil('27017')
15
15
  local_mongodb_util = LocalMongodbUtil('27017')
16
16
 
17
17
  col_list = [
18
+ 'company_info',
18
19
  'company_remark_info',
19
20
  'company_holding_info',
20
21
  'industry_concept_remark',
@@ -0,0 +1,36 @@
1
+ import sys
2
+ import os
3
+
4
+ file_path = os.path.abspath(__file__)
5
+ end = file_path.index('mns') + 16
6
+ project_path = file_path[0:end]
7
+ sys.path.append(project_path)
8
+ from mns_common.db.MongodbUtil import MongodbUtil
9
+ from loguru import logger
10
+
11
+ mongodb_util_27017 = MongodbUtil('27017')
12
+ mongodb_util_27019 = MongodbUtil('27019')
13
+
14
+
15
+ def update_col_data():
16
+ query = {"$and": [{'trade_date': {'$lte': '2024-05-23'}},
17
+ {'trade_date': {'$gte': '2022-07-02'}}]}
18
+ trade_date_list_df = mongodb_util_27017.find_query_data('trade_date_list', query)
19
+ trade_date_list_df = trade_date_list_df.sort_values(by=['trade_date'], ascending=True)
20
+ for trade_one in trade_date_list_df.itertuples():
21
+ col_name = 'realtime_quotes_now_' + trade_one.trade_date
22
+ new_values = {'$unset': {
23
+ 'classification': '',
24
+ 'medium_order_net_inflow': '',
25
+ 'small_order_net_inflow': '',
26
+ 'str_day': '',
27
+ 'list_date': '',
28
+ 'amount_level': '',
29
+ 'name': '', 'industry': '', 'concept': ''}}
30
+
31
+ mongodb_util_27019.update_many({}, new_values, col_name)
32
+ logger.info("完成集合数据更新:{}", col_name)
33
+
34
+
35
+ if __name__ == '__main__':
36
+ update_col_data()
@@ -200,23 +200,23 @@ def calculate_exchange_and_k_line_avg_param(stock_qfq_daily):
200
200
 
201
201
  # 收盘价格与均线差值
202
202
  stock_qfq_daily['close_difference_five'] = round(
203
- 100 * (stock_qfq_daily['close'] - stock_qfq_daily['avg_five']) / stock_qfq_daily['close'],
203
+ 100 * (stock_qfq_daily['close'] - stock_qfq_daily['avg_five']) / stock_qfq_daily['avg_five'],
204
204
  2)
205
205
 
206
206
  stock_qfq_daily['close_difference_ten'] = round(
207
- 100 * (stock_qfq_daily['close'] - stock_qfq_daily['avg_ten']) / stock_qfq_daily['close'],
207
+ 100 * (stock_qfq_daily['close'] - stock_qfq_daily['avg_ten']) / stock_qfq_daily['avg_ten'],
208
208
  2)
209
209
 
210
210
  stock_qfq_daily['close_difference_twenty'] = round(
211
- 100 * (stock_qfq_daily['close'] - stock_qfq_daily['avg_twenty']) / stock_qfq_daily['close'],
211
+ 100 * (stock_qfq_daily['close'] - stock_qfq_daily['avg_twenty']) / stock_qfq_daily['avg_twenty'],
212
212
  2)
213
213
 
214
214
  stock_qfq_daily['close_difference_thirty'] = round(
215
- 100 * (stock_qfq_daily['close'] - stock_qfq_daily['avg_thirty']) / stock_qfq_daily['close'],
215
+ 100 * (stock_qfq_daily['close'] - stock_qfq_daily['avg_thirty']) / stock_qfq_daily['avg_thirty'],
216
216
  2)
217
217
 
218
218
  stock_qfq_daily['close_difference_sixty'] = round(
219
- 100 * (stock_qfq_daily['close'] - stock_qfq_daily['avg_sixty']) / stock_qfq_daily['close'],
219
+ 100 * (stock_qfq_daily['close'] - stock_qfq_daily['avg_sixty']) / stock_qfq_daily['avg_sixty'],
220
220
  2)
221
221
 
222
222
  stock_qfq_daily = stock_qfq_daily[[
@@ -26,5 +26,5 @@ def clean_history_data():
26
26
 
27
27
  if __name__ == '__main__':
28
28
  # 001389 001359
29
- k_line_info_clean_task.sync_k_line_info('2024-07-12', ['300784'])
29
+ k_line_info_clean_task.sync_k_line_info('2025-01-22', ['301099'])
30
30
  # clean_history_data()
@@ -0,0 +1,7 @@
1
+ import sys
2
+ import os
3
+
4
+ file_path = os.path.abspath(__file__)
5
+ end = file_path.index('mns') + 16
6
+ project_path = file_path[0:end]
7
+ sys.path.append(project_path)
@@ -0,0 +1,131 @@
1
+ import sys
2
+ import os
3
+
4
+ file_path = os.path.abspath(__file__)
5
+ end = file_path.index('mns') + 16
6
+ project_path = file_path[0:end]
7
+ sys.path.append(project_path)
8
+ from bypy import ByPy
9
+ from mns_common.db.MongodbUtil import MongodbUtil
10
+ import tempfile
11
+ from loguru import logger
12
+ import akshare as ak
13
+
14
+ mongodb_util = MongodbUtil('27017')
15
+
16
+ import subprocess
17
+
18
+
19
+ def get_file_list(path):
20
+ """
21
+ 获取百度网盘指定路径下的文件列表
22
+ :param path: 百度网盘中的路径,例如 '/我的资源'
23
+ :return: 文件列表
24
+ """
25
+ try:
26
+ # 调用 bypy list 命令
27
+ result = subprocess.run(['bypy', 'list', path], capture_output=True, text=True, check=True)
28
+
29
+ # 输出结果
30
+ if result.returncode == 0:
31
+ file_list = result.stdout.splitlines() # 按行分割结果
32
+ return file_list
33
+ else:
34
+ logger.error("获取文件路径异常:{}", result.stderr)
35
+ return []
36
+ except subprocess.CalledProcessError as e:
37
+ logger.error("获取文件路径异常:{}", e)
38
+ return []
39
+
40
+
41
+ def upload_to_baidu(file_name, folder_name, data_df):
42
+ bp = ByPy()
43
+ file_name = file_name + '.csv'
44
+ with tempfile.NamedTemporaryFile(mode='w', suffix='.csv', delete=False) as temp_file:
45
+ data_df.to_csv(temp_file, index=False)
46
+ temp_file_path = temp_file.name # 获取临时文件的路径
47
+
48
+ # 上传临时文件到百度云
49
+ remote_path = f'/{folder_name}/{file_name}'
50
+ result = bp.upload(temp_file_path, remote_path)
51
+ if result == 0:
52
+ logger.info("上传成功:{}", file_name)
53
+ else:
54
+ logger.error("上传失败:{}", file_name)
55
+ return result
56
+
57
+
58
+ def mkdir_baidu_new_folder(remote_path):
59
+ bp = ByPy()
60
+ try:
61
+ # 调用 mkdir 方法创建文件夹
62
+ result = bp.mkdir(remote_path)
63
+
64
+ if result == 0:
65
+ logger.info("成功创建文件夹:{}", remote_path)
66
+ else:
67
+ logger.error("创建文件夹失败:{}", result)
68
+
69
+ except Exception as e:
70
+ logger.error("创建文件夹失败:{}", e)
71
+
72
+
73
+ def del_baidu_old_folder(remote_path):
74
+ bp = ByPy()
75
+ try:
76
+ # 调用 mkdir 方法创建文件夹
77
+ result = bp.delete(remote_path)
78
+
79
+ if result == 0:
80
+ logger.info("成功删除文件夹:{}", remote_path)
81
+ else:
82
+ logger.error("删除文件夹失败:{}", result)
83
+
84
+ except Exception as e:
85
+ logger.error("删除文件夹失败:{}", e)
86
+
87
+
88
+ if __name__ == '__main__':
89
+ folder_name1 = '/美股/不复权日线'
90
+ mkdir_baidu_new_folder(folder_name1)
91
+ # get_file_list(folder_name1)
92
+ stock_us_spot_em_df = ak.stock_us_spot_em()
93
+ stock_us_spot_em_df = stock_us_spot_em_df.rename(columns={
94
+ "序号": "index",
95
+ "代码": "symbol",
96
+ "名称": "name",
97
+ "涨跌额": "change_price",
98
+ "涨跌幅": "chg",
99
+ "开盘价": "open",
100
+ "最高价": "high",
101
+ "最低价": "low",
102
+ "最新价": "now_price",
103
+ "昨收价": "last_price",
104
+ "总市值": "total_mv",
105
+ "市盈率": "pe",
106
+ "成交量": "volume",
107
+ "成交额": "amount",
108
+ "振幅": "pct_chg",
109
+ "换手率": "exchange"
110
+ })
111
+ stock_us_spot_em_df = stock_us_spot_em_df.sort_values(by=['amount'], ascending=False)
112
+ stock_us_spot_em_df = stock_us_spot_em_df.fillna(0)
113
+ stock_us_spot_em_df = stock_us_spot_em_df.loc[stock_us_spot_em_df['total_mv'] != 0]
114
+ for stock_one in stock_us_spot_em_df.itertuples():
115
+ try:
116
+ symbol = stock_one.symbol
117
+ name = stock_one.name
118
+ query = {'symbol': symbol, 'amount': {"$gt": 0}}
119
+ us_stock_bfq_daily_df_one = mongodb_util.find_query_data('us_stock_bfq_daily', query)
120
+ del us_stock_bfq_daily_df_one['_id']
121
+ del us_stock_bfq_daily_df_one['name']
122
+ file_name_one = name + '_' + symbol
123
+ upload_to_baidu(file_name_one, folder_name1, us_stock_bfq_daily_df_one)
124
+
125
+ except BaseException as e:
126
+ logger.error("同步数据发生异常:{}", e)
127
+
128
+ # data_df = mongodb_util.find_query_data('us_stock_bfq_daily', query={'name': file_name1})
129
+ # upload_to_baidu(file_name1, folder_name1, data_df)
130
+
131
+
@@ -0,0 +1,91 @@
1
+ import akshare as ak
2
+ import pandas as pd
3
+ from mns_common.db.MongodbUtil import MongodbUtil
4
+
5
+ mongodb_util = MongodbUtil('27017')
6
+
7
+
8
+ def us_stock():
9
+ # 输入参数
10
+ symbol = input("请输入股票代码(all:全量(时间很长),特定代码:106.TTE):")
11
+ start_date = input("请输入开始日期(格式:YYYYMMDD):")
12
+ end_date = input("请输入结束日期(格式:YYYYMMDD):")
13
+ fq = input("请输入复权信息(前复权:qfq,不复权:bfq,后复权:hfq):")
14
+ k_line_period = input("请输入k线周期(日线:daily,周线:weekly,月线:monthly):")
15
+ db_name = "us_stock_" + fq + "_" + k_line_period
16
+ if fq == 'bfq':
17
+ fq = ''
18
+ if symbol != 'all':
19
+ # 获取股票历史数据
20
+ stock_us_hist_df = ak.stock_us_hist(symbol=symbol,
21
+ period=k_line_period,
22
+ start_date=start_date,
23
+ end_date=end_date,
24
+ adjust=fq)
25
+ # 保存数据到 CSV 文件
26
+ stock_us_hist_df.to_csv(f"{symbol}_historical_data.csv", index=False)
27
+ print(f"数据已保存到 {symbol}_historical_data.csv")
28
+ else:
29
+ stock_us_spot_em_df = ak.stock_us_spot_em()
30
+ stock_us_spot_em_df = stock_us_spot_em_df.rename(columns={
31
+ "序号": "index",
32
+ "代码": "symbol",
33
+ "名称": "name",
34
+ "涨跌额": "change_price",
35
+ "涨跌幅": "chg",
36
+ "开盘价": "open",
37
+ "最高价": "high",
38
+ "最低价": "low",
39
+ "最新价": "now_price",
40
+ "昨收价": "last_price",
41
+ "总市值": "total_mv",
42
+ "市盈率": "pe",
43
+ "成交量": "volume",
44
+ "成交额": "amount",
45
+ "振幅": "pct_chg",
46
+ "换手率": "exchange"
47
+ })
48
+ stock_us_spot_em_df = stock_us_spot_em_df.sort_values(by=['amount'], ascending=False)
49
+ stock_us_spot_em_df = stock_us_spot_em_df.fillna(0)
50
+ stock_us_spot_em_df = stock_us_spot_em_df.loc[stock_us_spot_em_df['total_mv'] != 0]
51
+
52
+ k_line_result = pd.DataFrame()
53
+
54
+ for stock_us_one in stock_us_spot_em_df.itertuples():
55
+ try:
56
+ # 获取股票历史数据
57
+ stock_us_hist_df = ak.stock_us_hist(symbol=stock_us_one.symbol,
58
+ period=k_line_period,
59
+ start_date=start_date,
60
+ end_date=end_date,
61
+ adjust=fq)
62
+ stock_us_hist_df = stock_us_hist_df.rename(columns={
63
+ "日期": "date",
64
+ "涨跌额": "change_price",
65
+ "涨跌幅": "chg",
66
+ "开盘": "open",
67
+ "最高": "high",
68
+ "最低": "low",
69
+ "收盘": "close",
70
+ "成交量": "volume",
71
+ "成交额": "amount",
72
+ "振幅": "pct_chg",
73
+ "换手率": "exchange"
74
+ })
75
+
76
+ k_line_result = pd.concat([stock_us_hist_df, k_line_result])
77
+ stock_us_hist_df['_id'] = stock_us_one.symbol + '_' + stock_us_hist_df['date']
78
+ stock_us_hist_df['symbol'] = stock_us_one.symbol
79
+ stock_us_hist_df['name'] = stock_us_one.name
80
+ mongodb_util.insert_mongo(stock_us_hist_df, db_name)
81
+ print(f"同步k线数据到: {stock_us_one.name}")
82
+ except BaseException as e:
83
+ print(f"同步数据发生异常: {stock_us_one.name}, {e}")
84
+
85
+ # 保存数据到 CSV 文件
86
+ k_line_result.to_csv(f"{symbol}_historical_data.csv", index=False)
87
+ print(f"数据已保存到 {symbol}_historical_data.csv")
88
+
89
+
90
+ if __name__ == "__main__":
91
+ us_stock()
@@ -0,0 +1,39 @@
1
+ import sys
2
+ import os
3
+
4
+ file_path = os.path.abspath(__file__)
5
+ end = file_path.index('mns') + 16
6
+ project_path = file_path[0:end]
7
+ sys.path.append(project_path)
8
+ import akshare as ak
9
+
10
+
11
+ def sync_us_company_info():
12
+ stock_us_spot_em_df = ak.stock_us_spot_em()
13
+ stock_us_spot_em_df = stock_us_spot_em_df.rename(columns={
14
+ "序号": "index",
15
+ "代码": "symbol",
16
+ "名称": "name",
17
+ "涨跌额": "change_price",
18
+ "涨跌幅": "chg",
19
+ "开盘价": "open",
20
+ "最高价": "high",
21
+ "最低价": "low",
22
+ "最新价": "now_price",
23
+ "昨收价": "last_price",
24
+ "总市值": "total_mv",
25
+ "市盈率": "pe",
26
+ "成交量": "volume",
27
+ "成交额": "amount",
28
+ "振幅": "pct_chg",
29
+ "换手率": "exchange"
30
+ })
31
+ stock_us_spot_em_df = stock_us_spot_em_df.sort_values(by=['amount'], ascending=False)
32
+ stock_us_spot_em_df = stock_us_spot_em_df.fillna(0)
33
+ stock_us_spot_em_df = stock_us_spot_em_df.loc[stock_us_spot_em_df['total_mv']!=0]
34
+ stock_us_spot_em_df.to_csv('us_stock.csv', index=False)
35
+ return stock_us_spot_em_df
36
+
37
+
38
+ if __name__ == '__main__':
39
+ sync_us_company_info()
@@ -0,0 +1,41 @@
1
+ import sys
2
+ import os
3
+
4
+ file_path = os.path.abspath(__file__)
5
+ end = file_path.index('mns') + 16
6
+ project_path = file_path[0:end]
7
+ sys.path.append(project_path)
8
+ from mns_common.db.MongodbUtil import MongodbUtil
9
+ from loguru import logger
10
+ import mns_common.utils.date_handle_util as date_handle_util
11
+ mongodb_util = MongodbUtil('27017')
12
+
13
+ from mns_scheduler.db.script.sync.remote_mongo_util import RemoteMongodbUtil
14
+
15
+
16
+ remote_mongodb_util = RemoteMongodbUtil('27017')
17
+
18
+
19
+ def fix_error_deal_days(db_name):
20
+ realtime_quotes_now_zt_new_kc_open_df = mongodb_util.find_query_data(db_name, {})
21
+ realtime_quotes_now_zt_new_kc_open_df['id_key'] = realtime_quotes_now_zt_new_kc_open_df['_id']
22
+ for stock_one in realtime_quotes_now_zt_new_kc_open_df.itertuples():
23
+ try:
24
+ symbol = stock_one.symbol
25
+ str_day = stock_one.str_day
26
+ query = {'symbol': symbol, 'date': {"$lt": date_handle_util.no_slash_date(str_day)}}
27
+ deal_days = mongodb_util.count(query, 'stock_qfq_daily')
28
+ new_values = {"$set": {"deal_days": deal_days}}
29
+ id_key = stock_one.id_key
30
+ update_query = {'_id': id_key}
31
+ mongodb_util.update_many(update_query, new_values, db_name)
32
+ logger.info("更新到:{},{}", symbol, str_day)
33
+ except BaseException as e:
34
+ logger.error("出现异常:{},{},{}", symbol, str_day, e)
35
+
36
+
37
+ if __name__ == '__main__':
38
+ # db_name_0 = 'realtime_quotes_now_zt_new_kc_open'
39
+ db_name_01 = 'stock_high_chg_pool'
40
+ # fix_error_deal_days(db_name_0)
41
+ fix_error_deal_days(db_name_01)
@@ -36,4 +36,4 @@ def sync_his_zt_pool_data(begin_day, end_day):
36
36
 
37
37
 
38
38
  if __name__ == '__main__':
39
- sync_high_chg_pool_service.sync_stock_high_chg_pool_list('2024-12-26', None)
39
+ sync_high_chg_pool_service.sync_stock_high_chg_pool_list('2025-01-09', None)
@@ -1,4 +1,4 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: mns-scheduler
3
- Version: 1.2.5.0
3
+ Version: 1.2.5.2
4
4
 
@@ -1,6 +1,4 @@
1
1
  mns_scheduler/__init__.py,sha256=_nhtk1b00OsMAiqRATNrb3HD44RmgjSG5jqS-QLNMrQ,130
2
- mns_scheduler/2014-2015-test/2014_2015_chg_statistics.py,sha256=u7QaSs764ZGXi3iLf0tX2VJzKWVlhmOG-3iPX8sZsnQ,3889
3
- mns_scheduler/2014-2015-test/__init__.py,sha256=wEg73KlZo-dU0yKGwpA1C2y6LZm4IBb94tNda1tqLeg,163
4
2
  mns_scheduler/big_deal/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
5
3
  mns_scheduler/big_deal/ths_big_deal_sync.py,sha256=aMFj-_pLprh4vGjSSzmr_tlYoPA0L4Lm0SkLRkQwIiw,4564
6
4
  mns_scheduler/company_info/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
@@ -33,16 +31,18 @@ mns_scheduler/concept/ths/update_concept_info/__init__.py,sha256=QWBdZwBCvQw8aS4
33
31
  mns_scheduler/concept/ths/update_concept_info/sync_one_concept_all_symbols_api.py,sha256=wwuLfjj9AnFcHP-oQPC5AhpwgZ8IsPiNUh-Z6swcngA,1380
34
32
  mns_scheduler/concept/ths/update_concept_info/sync_one_symbol_all_concepts_api.py,sha256=3KT-FTG337KWufTrllp_4QZv3U-UBEomUcx77t0x_eQ,9410
35
33
  mns_scheduler/db/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
36
- mns_scheduler/db/col_move_service.py,sha256=tyWth-68MVs3lc6PTW-2SygD98_4_qUaCYZ6tX1JUp8,4230
34
+ mns_scheduler/db/col_move_service.py,sha256=9pOrHJ6rQuMPQdGFho1IJMEy2xvpQ20iku3p20MuAhg,4238
37
35
  mns_scheduler/db/db_status.py,sha256=e5eW5ZSm5J7tHvmxxhFmFdbZb2_oB_SAcdcFqc4KDmw,733
38
36
  mns_scheduler/db/real_time_task_check.py,sha256=bf3Ov6fLL332u7yWyDC3ZLvVWhM6W9i47LapkfP1w7c,4902
39
37
  mns_scheduler/db/script/__init__.py,sha256=wEg73KlZo-dU0yKGwpA1C2y6LZm4IBb94tNda1tqLeg,163
40
38
  mns_scheduler/db/script/col_move_script.py,sha256=0WNv0xbnPPKTME2_WMEPSGNT0DUWC7hS4mJ2VeNgc08,1163
41
39
  mns_scheduler/db/script/sync/__init__.py,sha256=wEg73KlZo-dU0yKGwpA1C2y6LZm4IBb94tNda1tqLeg,163
42
40
  mns_scheduler/db/script/sync/local_mongo_util.py,sha256=MFG-S7aUBLKe4tkhKNklUzpiZef2n078YXd39dfOMy0,7540
43
- mns_scheduler/db/script/sync/remote_data_sync_to_local.py,sha256=7fp2L6TkY2mdBZb0m_oQbWQsp8QjvKhKOH6h_xU0jwI,1652
41
+ mns_scheduler/db/script/sync/remote_data_sync_to_local.py,sha256=2iGs-WTPt9hJK9IJLX5ChUTaWiKEpx0MikBsF-6Mp_o,1673
44
42
  mns_scheduler/db/script/sync/remote_mongo_util.py,sha256=-BCR2zeQ9z0zeZg6wO0aCS4bGnsGIohFRH7QR8XXJSo,10966
45
43
  mns_scheduler/db/script/sync/sync_hui_ce_test_data.py,sha256=Ei7RDlLbdUvywW901uxxvaHpqrJZFxCQX4FKFHpyoNc,2062
44
+ mns_scheduler/db/script/update/__init__.py,sha256=wEg73KlZo-dU0yKGwpA1C2y6LZm4IBb94tNda1tqLeg,163
45
+ mns_scheduler/db/script/update/update_col_field.py,sha256=2XeiKodVgR19IgJKMXZmM7MOLgeUyli15qo58gtYHY8,1274
46
46
  mns_scheduler/debt/__init__.py,sha256=wEg73KlZo-dU0yKGwpA1C2y6LZm4IBb94tNda1tqLeg,163
47
47
  mns_scheduler/debt/kzz_bond_info_sync.py,sha256=3o0Y4FBxP3AOXwf7Z7jVO1N_DcqxeOVqcgMM3y7E4uo,1336
48
48
  mns_scheduler/dt/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
@@ -69,7 +69,7 @@ mns_scheduler/k_line/clean/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlI
69
69
  mns_scheduler/k_line/clean/k_line_info_clean_impl.py,sha256=2GgRc9Nb9wXMueoZhl9egYzjQP_NPhBCvj-XYcTlG9w,1238
70
70
  mns_scheduler/k_line/clean/k_line_info_clean_task.py,sha256=ey6xTXAxxXh8_8cPzsWmUtVmG8Sd7jXFbpRpTrFrLDo,7622
71
71
  mns_scheduler/k_line/clean/daily/__init__.py,sha256=wEg73KlZo-dU0yKGwpA1C2y6LZm4IBb94tNda1tqLeg,163
72
- mns_scheduler/k_line/clean/daily/daily_k_line_clean_common_service.py,sha256=j00d0LFZIjl5iabYnDOvU-aGRHgUI8mVaH__RmR0ZM8,18385
72
+ mns_scheduler/k_line/clean/daily/daily_k_line_clean_common_service.py,sha256=lT_KOhph9qLQGBoy7THU7SuPLQLQQlaNzTf2cMKnnNY,18404
73
73
  mns_scheduler/k_line/clean/daily/daily_k_line_service.py,sha256=BOzE5smjgJyUPdNvV4CUmN2phHT1VCtusosq7uhrGCw,6654
74
74
  mns_scheduler/k_line/clean/week_month/__init__.py,sha256=wEg73KlZo-dU0yKGwpA1C2y6LZm4IBb94tNda1tqLeg,163
75
75
  mns_scheduler/k_line/clean/week_month/normal_week_month_k_line_service.py,sha256=4qInTtReDd77Jzb7ngme8yXHRd6INSbSCq84lhS3ScI,4862
@@ -80,7 +80,7 @@ mns_scheduler/k_line/sync/__init__.py,sha256=ffZXFCLFdIwOsbxnw__u1MbQYh9yz7Bs8UM
80
80
  mns_scheduler/k_line/sync/bfq_k_line_sync.py,sha256=i2NNdp4uVa-kiqQvOaY6odd8-DmQtlejeMXeVklKOIs,4067
81
81
  mns_scheduler/k_line/sync/daily_week_month_line_sync.py,sha256=SHAvMkDW-2TKEC4wWkMdiOQWa4Ktc0Umm59OlceK1dg,5795
82
82
  mns_scheduler/k_line/test/__init__.py,sha256=wEg73KlZo-dU0yKGwpA1C2y6LZm4IBb94tNda1tqLeg,163
83
- mns_scheduler/k_line/test/k_line_info_clean_his_data.py,sha256=2s0UW2dHGS_k25Rl9CeB7XZtbYRxWaHSp9Se5Okk7EI,1173
83
+ mns_scheduler/k_line/test/k_line_info_clean_his_data.py,sha256=6_KKdFSRdkA9LnkkCc72Y1ILKdLY-VuKvMlHBetSSU8,1173
84
84
  mns_scheduler/kpl/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
85
85
  mns_scheduler/kpl/selection/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
86
86
  mns_scheduler/kpl/selection/index/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
@@ -125,6 +125,10 @@ mns_scheduler/trade/task/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImy
125
125
  mns_scheduler/trade/task/trader_task_service.py,sha256=xBqByakfCO2ruWXuWWsRPJtZ_oCLXLgaOHDiLdD4SVw,1560
126
126
  mns_scheduler/trade/tfp/__init__.py,sha256=wEg73KlZo-dU0yKGwpA1C2y6LZm4IBb94tNda1tqLeg,163
127
127
  mns_scheduler/trade/tfp/stock_tfp_info_sync.py,sha256=KqZlnzKvAGVJXHJfy_aP0KhP91A5wB2C7Sa98QP3_3o,2440
128
+ mns_scheduler/us/__init__.py,sha256=wEg73KlZo-dU0yKGwpA1C2y6LZm4IBb94tNda1tqLeg,163
129
+ mns_scheduler/us/baidu_yun_pan_handle_service.py,sha256=XAEDmyFMnQyD0qQKbA1axQTzQh0kd9mTSvMyeIglgF4,4219
130
+ mns_scheduler/us/k_line.py,sha256=0F6IR1WCtREGFjLfL6Mcu5gAhNY2yaAshRlXTUE-0Sg,4100
131
+ mns_scheduler/us/us_company_info_sync_service_api.py,sha256=fyCtBb1OX6NdD9OhgMU_Dy80dEepJ3w4BF2g9S5j9yc,1227
128
132
  mns_scheduler/zb/__init__.py,sha256=Tyvi_iQlv3jz59EdH67Mycnt9CSixcWPQoJwu55bOq0,165
129
133
  mns_scheduler/zb/stock_zb_pool_sync.py,sha256=LLL7TgqdhEwGsfOmox5VJt9eveVvWsD4jJqC5LO0oGY,1974
130
134
  mns_scheduler/zt/__init__.py,sha256=Rzolrn2R5RZIj-eOmu9KcL6oZBY9Wjz_uBFXPlzirQc,1641
@@ -138,8 +142,9 @@ mns_scheduler/zt/high_chg/sync_high_chg_real_time_quotes_service.py,sha256=IvP8t
138
142
  mns_scheduler/zt/open_data/__init__.py,sha256=Tyvi_iQlv3jz59EdH67Mycnt9CSixcWPQoJwu55bOq0,165
139
143
  mns_scheduler/zt/open_data/kcx_high_chg_open_data_sync.py,sha256=wZiqOre2UK9CxIR7dDk11DmqRY3n2_eE2pe0JfmMcjk,11616
140
144
  mns_scheduler/zt/script/__init__.py,sha256=wEg73KlZo-dU0yKGwpA1C2y6LZm4IBb94tNda1tqLeg,163
145
+ mns_scheduler/zt/script/fix_error_deal_day.py,sha256=n54pom24wCQAiHKjnVZACizb97iGWaEYtADM9R1z69g,1624
141
146
  mns_scheduler/zt/script/kcx_high_chg_open_his_data_handle.py,sha256=aTrYgshcccoHv-6yoxwbO6GRtntOfeIQjfjEE_vrz3k,5571
142
- mns_scheduler/zt/script/sync_high_chg_pool_his_data.py,sha256=HCq9syhqMPdRRrbtwVx_MVEfCvgtufUX5onIQw8F_GA,1685
147
+ mns_scheduler/zt/script/sync_high_chg_pool_his_data.py,sha256=umPuYaXBXVUWkiGT-7svUuHMKCqjcRpzd-3JZZU3nwk,1685
143
148
  mns_scheduler/zt/script/sync_now_higt_chg_zt.py,sha256=bhoIGDWTI3w0YKVfIAVNHWpUrYqJYDMGPt-1i3d_Zmw,1850
144
149
  mns_scheduler/zt/zt_pool/__init__.py,sha256=Tyvi_iQlv3jz59EdH67Mycnt9CSixcWPQoJwu55bOq0,165
145
150
  mns_scheduler/zt/zt_pool/em_zt_pool_sync_api.py,sha256=A5YiAWYdbAxhlTTJ8pOStZrBbfnLF_RhntyYvN0neO8,11109
@@ -147,7 +152,7 @@ mns_scheduler/zt/zt_pool/ths_zt_pool_sync_api.py,sha256=Sy39T-yFwLSIIoSZqQzS-6-W
147
152
  mns_scheduler/zt/zt_pool/update_null_zt_reason_api.py,sha256=1uoiR2Uw46kDfjkvNg2US5rd_4OIkYO3872gIJOufUY,2135
148
153
  mns_scheduler/zz_task/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
149
154
  mns_scheduler/zz_task/data_sync_task.py,sha256=Muq8lILGn6ShNoaJc97f5lU65Ql8nW63NlxUjGnIZOA,21669
150
- mns_scheduler-1.2.5.0.dist-info/METADATA,sha256=Vy7wUVIdmNHTfLBjZtaCaMCR4n7PokG5EIbzcacd7CA,64
151
- mns_scheduler-1.2.5.0.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
152
- mns_scheduler-1.2.5.0.dist-info/top_level.txt,sha256=PXQDFBGR1pWmsUbH5yiLAh71P5HZODTRED0zJ8CCgOc,14
153
- mns_scheduler-1.2.5.0.dist-info/RECORD,,
155
+ mns_scheduler-1.2.5.2.dist-info/METADATA,sha256=6B-ow5BwaOULFp4E6lLGIZMZg_EjH8PL5R_YOCIcKHg,64
156
+ mns_scheduler-1.2.5.2.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
157
+ mns_scheduler-1.2.5.2.dist-info/top_level.txt,sha256=PXQDFBGR1pWmsUbH5yiLAh71P5HZODTRED0zJ8CCgOc,14
158
+ mns_scheduler-1.2.5.2.dist-info/RECORD,,
@@ -1,87 +0,0 @@
1
- import sys
2
- import os
3
-
4
- file_path = os.path.abspath(__file__)
5
- end = file_path.index('mns') + 16
6
- project_path = file_path[0:end]
7
- sys.path.append(project_path)
8
- import mns_common.api.em.east_money_stock_api as east_money_stock_api
9
- import mns_common.constant.db_name_constant as db_name_constant
10
- from mns_common.db.MongodbUtil import MongodbUtil
11
- from loguru import logger
12
- import mns_common.component.company.company_common_service_new_api as company_common_service_new_api
13
- import mns_common.utils.date_handle_util as date_handle_util
14
- import mns_common.api.akshare.k_line_api as k_line_api
15
-
16
- mongodb_util = MongodbUtil('27017')
17
-
18
-
19
- def history_high_chg(symbol_param):
20
- company_info_df = company_common_service_new_api.get_company_info_info()
21
- begin_date = '20140722'
22
- end_date = '20150615'
23
-
24
- real_time_quotes_all_stocks_df = east_money_stock_api.get_real_time_quotes_all_stocks()
25
- if symbol_param is not None:
26
- real_time_quotes_all_stocks_df = real_time_quotes_all_stocks_df.loc[
27
- real_time_quotes_all_stocks_df['symbol'] == symbol_param]
28
- real_time_quotes_all_stocks_list_date_before = real_time_quotes_all_stocks_df.loc[
29
- real_time_quotes_all_stocks_df['list_date'] < 20150615]
30
-
31
- for company_one in real_time_quotes_all_stocks_list_date_before.itertuples():
32
- try:
33
-
34
- symbol = company_one.symbol
35
- stock_qfq_daily_df = k_line_api.stock_zh_a_hist(symbol=symbol, period='daily',
36
- start_date=date_handle_util.no_slash_date(begin_date),
37
- end_date=date_handle_util.no_slash_date(end_date),
38
- adjust='hfq')
39
-
40
- if stock_qfq_daily_df.shape[0] < 100:
41
- continue
42
- logger.error("新股或者交易时间不足{}:{}", symbol, company_one.name)
43
- stock_qfq_daily_df = stock_qfq_daily_df.sort_values(by=['date'], ascending=True)
44
- first_row = stock_qfq_daily_df.iloc[0]
45
-
46
- open_price = first_row.open
47
-
48
- last_row = stock_qfq_daily_df.iloc[-1]
49
-
50
- close_price = last_row.close
51
-
52
- sum_chg = round((close_price - open_price) * 100 / open_price, 2)
53
-
54
- company_info_df_one = company_info_df.loc[company_info_df['_id'] == symbol]
55
- if company_info_df_one.shape[0] > 0:
56
- company_info_df_one['sum_chg'] = sum_chg
57
- company_info_df_one['name'] = company_one.name
58
- company_info_df_one = company_info_df_one[
59
- ['_id',
60
- 'name',
61
- 'sum_chg',
62
- 'industry',
63
- 'first_sw_industry',
64
- 'second_sw_industry',
65
- 'third_sw_industry',
66
- 'em_industry',
67
- 'list_date',
68
- 'ths_concept_list_info',
69
- 'kpl_plate_name',
70
- 'kpl_plate_list_info',
71
- 'company_type']]
72
- mongodb_util.save_mongo(company_info_df_one, '2014-2015-chg-statistics')
73
- else:
74
- logger.error("该股票已经退市{}:{}", symbol, company_one.name)
75
- except BaseException as e:
76
- logger.error("出现异常{}:{}", symbol, e)
77
-
78
-
79
- if __name__ == '__main__':
80
- symbol_test = None
81
-
82
- # qfq_k_line_df = k_line_api.stock_zh_a_hist(symbol=symbol_test, period='daily',
83
- # start_date=date_handle_util.no_slash_date('1990-12-19'),
84
- # end_date=date_handle_util.no_slash_date('2990-12-19'),
85
- # adjust='hfq')
86
-
87
- history_high_chg(symbol_test)