mns-scheduler 1.2.8.0__py3-none-any.whl → 1.2.8.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.

@@ -44,6 +44,7 @@ def sync_all_stock(trade_date_list_df):
44
44
  )
45
45
 
46
46
  real_time_quotes_all_stocks_df = east_money_stock_api.get_real_time_quotes_all_stocks()
47
+
47
48
  # 假设数字格式为 YYYYMMDD
48
49
  real_time_quotes_all_stocks_df['list_date'] = pd.to_datetime(real_time_quotes_all_stocks_df['list_date'],
49
50
  format='%Y%m%d')
@@ -130,7 +131,7 @@ def sync_all_stock(trade_date_list_df):
130
131
  if __name__ == '__main__':
131
132
  # get_minute_data('833284.BJ', '1min', '2025-02-28 09:30:00', '2025-02-28 15:00:00')
132
133
 
133
- query_trade = {"$and": [{"trade_date": {"$gte": "2025-03-08"}}, {"trade_date": {"$lte": "2025-03-16"}}]}
134
+ query_trade = {"$and": [{"trade_date": {"$gte": "2025-03-08"}}, {"trade_date": {"$lte": "2025-03-18"}}]}
134
135
  trade_date_list_df_all = mongodb_util_27017.find_query_data('trade_date_list', query_trade)
135
136
 
136
137
  sync_all_stock(trade_date_list_df_all)
@@ -16,7 +16,7 @@ mongodb_util = MongodbUtil('27017')
16
16
 
17
17
 
18
18
  # 日线 周线 月线 成交量 筹码信息
19
- def calculate_k_line_info(str_day, symbol, diff_days):
19
+ def calculate_k_line_info(str_day, symbol, diff_days, stock_qfq_year_df):
20
20
  k_line_info = pd.DataFrame([[
21
21
  str_day,
22
22
  symbol, diff_days]],
@@ -27,7 +27,8 @@ def calculate_k_line_info(str_day, symbol, diff_days):
27
27
  # 交易天数
28
28
  deal_days = k_line_common_service_api.get_deal_days(str_day, symbol)
29
29
  # 处理周线 月线
30
- k_line_info = week_month_k_line_service.handle_month_week_line(k_line_info, str_day, symbol, deal_days)
30
+ k_line_info = week_month_k_line_service.handle_month_week_line(k_line_info, str_day, symbol,
31
+ deal_days, stock_qfq_year_df)
31
32
  # 处理日线
32
33
  k_line_info = daily_k_line_service.handle_day_line(k_line_info, str_day, symbol, deal_days)
33
34
  return k_line_info
@@ -14,10 +14,11 @@ from loguru import logger
14
14
  import threading
15
15
  import mns_common.component.trade_date.trade_date_common_service_api as trade_date_common_service_api
16
16
  import mns_common.component.common_service_fun_api as common_service_fun_api
17
- import mns_scheduler.k_line.sync.daily_week_month_line_sync as daily_week_month_line_sync_api
17
+ import mns_scheduler.k_line.month_week_daily.daily_week_month_line_sync as daily_week_month_line_sync_api
18
18
  import mns_scheduler.k_line.clean.k_line_info_clean_impl as k_line_info_clean_impl
19
19
  import mns_common.utils.data_frame_util as data_frame_util
20
20
  import mns_common.component.company.company_common_service_api as company_common_service_api
21
+ import mns_common.constant.db_name_constant as db_name_constant
21
22
 
22
23
  K_LINE_CLEAN_DB_NAME = 'k_line_clean_fail_name'
23
24
 
@@ -67,7 +68,14 @@ def sync_k_line_info(str_day, symbol_list):
67
68
 
68
69
  diff_days = list(company_info_df['diff_days'])[0]
69
70
 
70
- k_line_result = k_line_info_clean_impl.calculate_k_line_info(str_day, symbol, diff_days)
71
+ now_year = int(str_day[0:4])
72
+ last_year = now_year - 1
73
+
74
+ query_year_line = {'symbol': symbol, 'year': {"$in": [str(now_year), str(last_year)]}}
75
+ stock_qfq_year_df = mongodb_util.find_query_data(db_name_constant.STOCK_QFQ_YEAR, query_year_line)
76
+
77
+ k_line_result = k_line_info_clean_impl.calculate_k_line_info(str_day, symbol, diff_days,
78
+ stock_qfq_year_df)
71
79
  save_k_line_data(symbol, str_day, k_line_result)
72
80
  if result_k_line_list_df is None:
73
81
  result_k_line_list_df = k_line_result
@@ -87,15 +95,23 @@ def handle_fail_data(str_day, real_time_quotes_now):
87
95
  k_line_fail_df = mongodb_util.find_query_data(K_LINE_CLEAN_DB_NAME, query)
88
96
  if data_frame_util.is_not_empty(k_line_fail_df):
89
97
  fail_data_df = real_time_quotes_now.loc[real_time_quotes_now['symbol'].isin(k_line_fail_df['symbol'])]
90
- single_threaded_sync_task(fail_data_df, str_day, 88)
98
+ now_year = int(str_day[0:4])
99
+ last_year = now_year - 1
100
+
101
+ query_year_line = {'year': {"$in": [str(now_year), str(last_year)]}}
102
+ stock_qfq_year_df = mongodb_util.find_query_data(db_name_constant.STOCK_QFQ_YEAR, query_year_line)
103
+ single_threaded_sync_task(fail_data_df, str_day, 88, stock_qfq_year_df)
91
104
 
92
105
 
93
106
  # 多线程同步任务
94
107
  def multi_threaded_k_line_sync(str_day):
95
108
  # 退市代码
96
- de_list_company_symbols = company_common_service_api.get_de_list_company()
109
+
110
+ de_list_company_df = mongodb_util.find_all_data(db_name_constant.DE_LIST_STOCK)
111
+ de_list_company_df = de_list_company_df.loc[de_list_company_df['de_list_date'] < str_day]
97
112
  real_time_quotes_now = east_money_stock_api.get_real_time_quotes_all_stocks()
98
- real_time_quotes_now = real_time_quotes_now.loc[~(real_time_quotes_now['symbol'].isin(de_list_company_symbols))]
113
+ real_time_quotes_now = real_time_quotes_now.loc[
114
+ ~(real_time_quotes_now['symbol'].isin(de_list_company_df['symbol']))]
99
115
 
100
116
  # 将list_date列中的所有NaN值设置为99990909
101
117
  real_time_quotes_now['list_date'].fillna(20990909.0, inplace=True)
@@ -113,6 +129,13 @@ def multi_threaded_k_line_sync(str_day):
113
129
  real_time_quotes_now = common_service_fun_api.exclude_b_symbol(real_time_quotes_now.copy())
114
130
  # exclude amount==0 symbol
115
131
  real_time_quotes_now = common_service_fun_api.exclude_amount_zero_stock(real_time_quotes_now)
132
+
133
+ now_year = int(str_day[0:4])
134
+ last_year = now_year - 1
135
+
136
+ query_year_line = {'year': {"$in": [str(now_year), str(last_year)]}}
137
+ stock_qfq_year_df = mongodb_util.find_query_data(db_name_constant.STOCK_QFQ_YEAR, query_year_line)
138
+
116
139
  total_count = real_time_quotes_now.shape[0]
117
140
  global result
118
141
  result = pd.DataFrame() # 重新初始化 result 变量
@@ -127,7 +150,7 @@ def multi_threaded_k_line_sync(str_day):
127
150
  begin_count = page * MAX_PAGE_NUMBER
128
151
  page_df = real_time_quotes_now.iloc[begin_count:end_count]
129
152
 
130
- thread = threading.Thread(target=single_threaded_sync_task, args=(page_df, str_day, page))
153
+ thread = threading.Thread(target=single_threaded_sync_task, args=(page_df, str_day, page, stock_qfq_year_df))
131
154
  threads.append(thread)
132
155
  thread.start()
133
156
 
@@ -141,11 +164,12 @@ def multi_threaded_k_line_sync(str_day):
141
164
 
142
165
 
143
166
  # 单线程同步任务
144
- def single_threaded_sync_task(page_df, str_day, page):
167
+ def single_threaded_sync_task(page_df, str_day, page, stock_qfq_year_df):
145
168
  global result
146
169
  for stock_one in page_df.itertuples():
147
170
  try:
148
- k_line_df = k_line_info_clean_impl.calculate_k_line_info(str_day, stock_one.symbol, stock_one.diff_days)
171
+ k_line_df = k_line_info_clean_impl.calculate_k_line_info(str_day, stock_one.symbol, stock_one.diff_days,
172
+ stock_qfq_year_df)
149
173
  save_k_line_data(stock_one.symbol, str_day, k_line_df)
150
174
  if k_line_df is None:
151
175
  result = k_line_df
@@ -174,5 +198,3 @@ def create_k_line_index():
174
198
  mongodb_util.create_index('k_line_info', [("symbol", 1)])
175
199
  mongodb_util.create_index('k_line_info', [("str_day", 1)])
176
200
  mongodb_util.create_index('k_line_info', [("str_day", 1), ("symbol", 1)])
177
-
178
-
@@ -16,14 +16,13 @@ mongodb_util = MongodbUtil('27017')
16
16
 
17
17
 
18
18
  # 处理月线 周线 todo 暂时简单计算周线之和
19
- def handle_month_week_line(k_line_info, str_day, symbol, deal_days):
19
+ def handle_month_week_line(k_line_info, str_day, symbol, deal_days,
20
+ stock_qfq_year_df):
20
21
  sub_stock_new_max_deal_days = stock_type_classify_param['sub_new_stock_max_deal_days']
21
22
  if deal_days > sub_stock_new_max_deal_days:
22
- k_line_info['last_year_chg'] = 0
23
- k_line_info['now_year_chg'] = 0
24
23
  k_line_info = handle_month_line(k_line_info, str_day, symbol)
25
24
  k_line_info = handle_week_line(k_line_info, str_day, symbol)
26
-
25
+ k_line_info = set_year_k_line(k_line_info, symbol, stock_qfq_year_df, str_day)
27
26
  else:
28
27
  k_line_info['week01'] = 0
29
28
  k_line_info['week02'] = 0
@@ -39,14 +38,44 @@ def handle_month_week_line(k_line_info, str_day, symbol, deal_days):
39
38
  k_line_info['month02'] = 0
40
39
  k_line_info['month01_date'] = '19890729'
41
40
  k_line_info['month02_date'] = '19890729'
42
-
41
+ k_line_info['now_year_chg'] = 0
43
42
  k_line_info['last_year_chg'] = 0
43
+
44
+ return k_line_info
45
+
46
+
47
+ # 年线数据设置
48
+ def set_year_k_line(k_line_info, symbol, stock_qfq_year_df, str_day):
49
+ now_year = int(str_day[0:4])
50
+ last_year = str(now_year - 1)
51
+ stock_qfq_now_year_df = stock_qfq_year_df.loc[(stock_qfq_year_df['symbol'] == symbol)
52
+ & (stock_qfq_year_df['year'] == str(now_year))]
53
+ if data_frame_util.is_empty(stock_qfq_now_year_df):
44
54
  k_line_info['now_year_chg'] = 0
55
+ k_line_info['now_year_open_from_high_chg'] = 0
56
+ k_line_info['now_year_low_from_high_chg'] = 0
57
+ else:
58
+ k_line_info['now_year_chg'] = list(stock_qfq_now_year_df['chg'])[0]
59
+ k_line_info['now_year_open_from_high_chg'] = list(stock_qfq_now_year_df['open_to_high_pct'])[0]
60
+ k_line_info['now_year_low_from_high_chg'] = list(stock_qfq_now_year_df['low_to_high_pct'])[0]
61
+
62
+ stock_qfq_last_year_df = stock_qfq_year_df.loc[(stock_qfq_year_df['symbol'] == symbol)
63
+ & (stock_qfq_year_df['year'] == last_year)]
64
+
65
+ if data_frame_util.is_empty(stock_qfq_last_year_df):
66
+ k_line_info['last_year_chg'] = 0
67
+ k_line_info['last_year_open_from_high_chg'] = 0
68
+ k_line_info['last_year_low_from_high_chg'] = 0
69
+ else:
70
+ k_line_info['last_year_chg'] = list(stock_qfq_last_year_df['chg'])[0]
71
+ k_line_info['last_year_open_from_high_chg'] = list(stock_qfq_last_year_df['open_to_high_pct'])[0]
72
+ k_line_info['last_year_low_from_high_chg'] = list(stock_qfq_last_year_df['low_to_high_pct'])[0]
45
73
 
46
74
  return k_line_info
47
75
 
76
+ # 处理月线
77
+
48
78
 
49
- # 处理月线
50
79
  def handle_month_line(k_line_info, str_day, symbol):
51
80
  now_year = int(str_day[0:4])
52
81
  last_year = str(now_year - 1)
@@ -54,7 +83,7 @@ def handle_month_line(k_line_info, str_day, symbol):
54
83
  now_month_begin_day = str_day[0:7] + '-01'
55
84
 
56
85
  last_year_begin_day = last_year + '-01-01'
57
- now_year_begin_day = str(now_year) + '-01-01'
86
+ # now_year_begin_day = str(now_year) + '-01-01'
58
87
 
59
88
  query = {"symbol": symbol,
60
89
  'date': {"$gte": date_handle_util.no_slash_date(last_year_begin_day)}}
@@ -67,11 +96,11 @@ def handle_month_line(k_line_info, str_day, symbol):
67
96
  stock_hfq_monthly_all = stock_hfq_monthly_all.loc[
68
97
  stock_hfq_monthly_all['date'] <= date_handle_util.no_slash_date(now_month_begin_day)]
69
98
 
70
- stock_hfq_monthly_last_year = stock_hfq_monthly_all.loc[
71
- stock_hfq_monthly_all['date'] < date_handle_util.no_slash_date(now_year_begin_day)]
72
-
73
- stock_hfq_monthly_now_year = stock_hfq_monthly_all.loc[
74
- stock_hfq_monthly_all['date'] > date_handle_util.no_slash_date(now_year_begin_day)]
99
+ # stock_hfq_monthly_last_year = stock_hfq_monthly_all.loc[
100
+ # stock_hfq_monthly_all['date'] < date_handle_util.no_slash_date(now_year_begin_day)]
101
+ #
102
+ # stock_hfq_monthly_now_year = stock_hfq_monthly_all.loc[
103
+ # stock_hfq_monthly_all['date'] > date_handle_util.no_slash_date(now_year_begin_day)]
75
104
 
76
105
  # 最近两个月k线
77
106
  before_two_month_stock_hfq_monthly = stock_hfq_monthly_all.iloc[0:2]
@@ -99,34 +128,34 @@ def handle_month_line(k_line_info, str_day, symbol):
99
128
  open_price = before_two_month_stock_hfq_monthly.iloc[1].last_price
100
129
  sum_chg = round((close_price - open_price) * 100 / open_price, 2)
101
130
  k_line_info['sum_month'] = sum_chg
102
-
103
- last_year_month_number = stock_hfq_monthly_last_year.shape[0]
104
- if last_year_month_number == 0:
105
- k_line_info['last_year_chg'] = 0
106
- elif last_year_month_number == 1:
107
- k_line_info['last_year_chg'] = stock_hfq_monthly_last_year.iloc[0].chg
108
- else:
109
- # chg_list = list(stock_hfq_monthly_last_year['chg'])
110
- # # 将列表中的每个元素加上1
111
- # updated_list = [round((x / 100) + 1, 2) for x in chg_list]
112
- #
113
- # # 使用 functools.reduce 将列表中的所有元素相乘
114
- # last_year_chg = functools.reduce(lambda x, y: x * y, updated_list)
115
- close_price = stock_hfq_monthly_last_year.iloc[0].close
116
- open_price = stock_hfq_monthly_last_year.iloc[last_year_month_number - 1].last_price
117
- last_year_chg = round((close_price - open_price) * 100 / open_price, 2)
118
- k_line_info['last_year_chg'] = last_year_chg
119
-
120
- now_year_month_number = stock_hfq_monthly_now_year.shape[0]
121
- if now_year_month_number == 0:
122
- k_line_info['now_year_chg'] = 0
123
- elif now_year_month_number == 1:
124
- k_line_info['now_year_chg'] = stock_hfq_monthly_now_year.iloc[0].chg
125
- else:
126
- close_price = stock_hfq_monthly_now_year.iloc[0].close
127
- open_price = stock_hfq_monthly_now_year.iloc[now_year_month_number - 1].last_price
128
- last_year_chg = round((close_price - open_price) * 100 / open_price, 2)
129
- k_line_info['now_year_chg'] = last_year_chg
131
+ #
132
+ # last_year_month_number = stock_hfq_monthly_last_year.shape[0]
133
+ # if last_year_month_number == 0:
134
+ # k_line_info['last_year_chg'] = 0
135
+ # elif last_year_month_number == 1:
136
+ # k_line_info['last_year_chg'] = stock_hfq_monthly_last_year.iloc[0].chg
137
+ # else:
138
+ # # chg_list = list(stock_hfq_monthly_last_year['chg'])
139
+ # # # 将列表中的每个元素加上1
140
+ # # updated_list = [round((x / 100) + 1, 2) for x in chg_list]
141
+ # #
142
+ # # # 使用 functools.reduce 将列表中的所有元素相乘
143
+ # # last_year_chg = functools.reduce(lambda x, y: x * y, updated_list)
144
+ # close_price = stock_hfq_monthly_last_year.iloc[0].close
145
+ # open_price = stock_hfq_monthly_last_year.iloc[last_year_month_number - 1].last_price
146
+ # last_year_chg = round((close_price - open_price) * 100 / open_price, 2)
147
+ # k_line_info['last_year_chg'] = last_year_chg
148
+ #
149
+ # now_year_month_number = stock_hfq_monthly_now_year.shape[0]
150
+ # if now_year_month_number == 0:
151
+ # k_line_info['now_year_chg'] = 0
152
+ # elif now_year_month_number == 1:
153
+ # k_line_info['now_year_chg'] = stock_hfq_monthly_now_year.iloc[0].chg
154
+ # else:
155
+ # close_price = stock_hfq_monthly_now_year.iloc[0].close
156
+ # open_price = stock_hfq_monthly_now_year.iloc[now_year_month_number - 1].last_price
157
+ # last_year_chg = round((close_price - open_price) * 100 / open_price, 2)
158
+ # k_line_info['now_year_chg'] = last_year_chg
130
159
 
131
160
  return k_line_info
132
161
 
@@ -13,7 +13,7 @@ mongodb_util = MongodbUtil('27017')
13
13
 
14
14
 
15
15
  def clean_history_data():
16
- query = {"$and": [{"trade_date": {"$gte": '2023-11-06'}}, {"trade_date": {"$lte": '2025-02-05'}}]}
16
+ query = {"$and": [{"trade_date": {"$gte": '2023-11-06'}}, {"trade_date": {"$lte": '2025-03-21'}}]}
17
17
  trade_date_list_df = mongodb_util.find_query_data('trade_date_list', query)
18
18
  trade_date_list_df = trade_date_list_df.sort_values(by=['trade_date'], ascending=False)
19
19
  for trade_data_one in trade_date_list_df.itertuples():
@@ -28,7 +28,8 @@ if __name__ == '__main__':
28
28
  # k_line_info_clean_task.sync_k_line_info('2025-02-21', None)
29
29
  # k_line_info_clean_task.sync_k_line_info('2024-12-19', ['600992'])
30
30
  # clean_history_data()
31
- k_line_info_clean_task.sync_k_line_info('2025-03-18', None)
31
+ k_line_info_clean_task.sync_k_line_info('2025-03-11', None)
32
+ k_line_info_clean_task.sync_k_line_info('2025-03-13', None)
32
33
 
33
34
  # 001389 001359
34
35
  # k_line_info_clean_task.sync_k_line_info('2025-02-14', None)
@@ -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,69 @@
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
+
9
+ from loguru import logger
10
+ import mns_common.api.em.east_money_stock_api as east_money_stock_api
11
+ from mns_common.db.MongodbUtil import MongodbUtil
12
+ import mns_common.component.common_service_fun_api as common_service_fun_api
13
+ import mns_common.constant.db_name_constant as db_name_constant
14
+ import mns_common.api.xueqiu.xue_qiu_k_line_api as xue_qiu_k_line_api
15
+
16
+ mongodb_util = MongodbUtil('27017')
17
+
18
+
19
+ def sync_year_k_line():
20
+ global symbol_prefix
21
+ col_name = db_name_constant.STOCK_QFQ_YEAR
22
+ real_time_quotes_all_stocks_df = east_money_stock_api.get_real_time_quotes_all_stocks()
23
+ real_time_quotes_all_stocks_df = common_service_fun_api.classify_symbol(real_time_quotes_all_stocks_df)
24
+ for stock_one in real_time_quotes_all_stocks_df.itertuples():
25
+ symbol = stock_one.symbol
26
+ try:
27
+ classification = stock_one.classification
28
+ if classification in ['H', 'K']:
29
+ symbol_prefix = 'SH' + symbol
30
+ elif classification in ['S', 'C']:
31
+ symbol_prefix = 'SZ' + symbol
32
+ elif classification in ['X']:
33
+ symbol_prefix = 'BJ' + symbol
34
+
35
+ year_k_line_df = xue_qiu_k_line_api.get_xue_qiu_k_line(symbol_prefix, 'year')
36
+ year_k_line_df = year_k_line_df[[
37
+ 'volume',
38
+ 'open',
39
+ 'high',
40
+ 'low',
41
+ 'close',
42
+ 'chg',
43
+ 'percent',
44
+ 'turnoverrate',
45
+ 'amount',
46
+ 'str_day'
47
+ ]]
48
+ year_k_line_df['year'] = year_k_line_df['str_day'].str[:4]
49
+
50
+ year_k_line_df["open_to_high_pct"] = (
51
+ (year_k_line_df["high"] - year_k_line_df["open"]) / year_k_line_df["open"] * 100).round(2)
52
+
53
+ year_k_line_df["low_to_high_pct"] = (
54
+ (year_k_line_df["high"] - year_k_line_df["low"]) / year_k_line_df["low"] * 100).round(2)
55
+ year_k_line_df = year_k_line_df.rename(columns={
56
+ "percent": "chg",
57
+ "chg": "chg_price",
58
+ "turnoverrate": "exchange"
59
+ })
60
+ year_k_line_df['symbol'] = symbol
61
+ year_k_line_df['_id'] = symbol + '_' + year_k_line_df['year']
62
+ mongodb_util.save_mongo(year_k_line_df, col_name)
63
+ logger.info("同步年线数据完成:{},{}", symbol, stock_one.name)
64
+ except BaseException as e:
65
+ logger.error("同步年线数据异常:{},{}", symbol, e)
66
+
67
+
68
+ if __name__ == '__main__':
69
+ sync_year_k_line()
@@ -7,7 +7,7 @@ project_path = file_path[0:end]
7
7
  sys.path.append(project_path)
8
8
  import mns_common.api.em.east_money_stock_api as east_money_stock_api
9
9
  import mns_common.component.common_service_fun_api as common_service_fun_api
10
- import mns_scheduler.k_line.sync.daily_week_month_line_sync as daily_week_month_line_sync
10
+ import mns_scheduler.k_line.month_week_daily.daily_week_month_line_sync as daily_week_month_line_sync
11
11
  from datetime import datetime
12
12
  import mns_scheduler.zt.zt_pool.em_zt_pool_sync_api as em_zt_pool_sync_api
13
13
  import mns_scheduler.zt.high_chg.sync_high_chg_pool_service as sync_high_chg_pool_service
@@ -15,7 +15,7 @@ import mns_scheduler.dt.stock_dt_pool_sync as stock_dt_pool_sync_api
15
15
  import mns_scheduler.zb.stock_zb_pool_sync as stock_zb_pool_sync_api
16
16
  import mns_common.component.trade_date.trade_date_common_service_api as trade_date_common_service_api
17
17
  import mns_common.utils.date_handle_util as date_handle_util
18
- import mns_scheduler.k_line.sync.daily_week_month_line_sync as daily_week_month_line_sync_api
18
+ import mns_scheduler.k_line.month_week_daily.daily_week_month_line_sync as daily_week_month_line_sync_api
19
19
  import mns_scheduler.company_info.announce.company_announce_sync_service as company_announce_sync_service
20
20
  import mns_scheduler.db.col_move_service as col_move_service
21
21
  import mns_scheduler.db.db_status as db_status_api
@@ -55,6 +55,7 @@ import mns_scheduler.hk.hk_company_info_sync_service_api as hk_company_info_sync
55
55
  import mns_scheduler.zt.zt_pool.update_null_zt_reason_api as update_null_zt_reason_api
56
56
  import mns_scheduler.trade.tfp.stock_tfp_info_sync as stock_tfp_info_sync
57
57
  import mns_scheduler.industry.ths.ths_industry_sync_service as ths_industry_sync_service
58
+ import mns_scheduler.k_line.year_quarter.year_quarter_line_sync as year_quarter_line_sync
58
59
  import mns_scheduler.db.task_handle_service as task_handle_service
59
60
  import mns_scheduler.extraIncome.one_minute.one_minute_sync_task as one_minute_sync_task
60
61
 
@@ -412,6 +413,7 @@ def sync_stock_tfp():
412
413
  stock_tfp_info_sync.sync_stock_tfp(str_day)
413
414
 
414
415
 
416
+ # 同步同花顺行业信息
415
417
  def sync_ths_industry_info():
416
418
  logger.info("同步同花顺行业信息开始")
417
419
  ths_industry_sync_service.sync_ths_industry_index()
@@ -419,11 +421,18 @@ def sync_ths_industry_info():
419
421
  logger.info("同步同花顺行业信息完成")
420
422
 
421
423
 
424
+ # 同步1分钟交易数据
422
425
  def sync_one_minute_data():
423
426
  logger.info("同步1分钟交易数据")
424
427
  one_minute_sync_task.sync_one_minute_data()
425
428
 
426
429
 
430
+ # 同步年线数据
431
+ def sync_year_k_line():
432
+ logger.info("同步年线数据")
433
+ year_quarter_line_sync.sync_year_k_line()
434
+
435
+
427
436
  # # 定义BlockingScheduler
428
437
  blockingScheduler = BlockingScheduler()
429
438
  # sync_trade_date 同步交易日期
@@ -568,6 +577,9 @@ blockingScheduler.add_job(sync_ths_industry_info, 'cron', hour='17,22', minute='
568
577
  # 同步一分钟交易数据
569
578
  blockingScheduler.add_job(sync_one_minute_data, 'cron', hour='17,22', minute='55')
570
579
 
580
+ # 同步年线数据
581
+ blockingScheduler.add_job(sync_year_k_line, 'cron', hour='18,23', minute='55')
582
+
571
583
  # 同步新公告信息 感觉没有必要同步 直接连接过去查看
572
584
  # blockingScheduler.add_job(sync_company_announce, 'cron', hour='07,18,23', minute='33')
573
585
 
@@ -1,4 +1,4 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: mns-scheduler
3
- Version: 1.2.8.0
3
+ Version: 1.2.8.2
4
4
 
@@ -68,7 +68,7 @@ mns_scheduler/extraIncome/one_minute/stock/stock_one_minute_sync_task.py,sha256=
68
68
  mns_scheduler/extraIncome/temp/__init__.py,sha256=wEg73KlZo-dU0yKGwpA1C2y6LZm4IBb94tNda1tqLeg,163
69
69
  mns_scheduler/extraIncome/temp/tu_share_data_etf_sync.py,sha256=XBsLl4o1Ras1zUQBkJ2BAgWtPebqAf9VUu_kLEisGmQ,4464
70
70
  mns_scheduler/extraIncome/temp/tu_share_data_kzz_sync.py,sha256=A2Aa4TB2mgTHiDlW9_UpB0mdRCR_1sOTaPZKs-IBbXc,4850
71
- mns_scheduler/extraIncome/temp/tu_share_data_stock_sync.py,sha256=s3KufWFevrnoCRfAWfOgLCqbBAbhueQelG-2Dy016cY,6248
71
+ mns_scheduler/extraIncome/temp/tu_share_data_stock_sync.py,sha256=pSYrWf87xEUYipVd1Mnwh31DqT-uKJugMaCHM5KDElY,6250
72
72
  mns_scheduler/extraIncome/temp/tu_share_zhi_shu_sync_api.py,sha256=sAvfsIObHWsapgJP8o2YTL4D1XZiWa2tGguM6B6bgyQ,4169
73
73
  mns_scheduler/finance/__init__.py,sha256=wEg73KlZo-dU0yKGwpA1C2y6LZm4IBb94tNda1tqLeg,163
74
74
  mns_scheduler/finance/em_financial_asset_liability_sync_service_api.py,sha256=kEZQZkxB7RF7UPH4DmHoRWfEKgI61ZN8BcNOzmBUoV0,19417
@@ -89,21 +89,23 @@ mns_scheduler/irm/api/sh_stock_sns_sse_info_api.py,sha256=iXy_FukyyQ_ZcU1WcT_DSp
89
89
  mns_scheduler/irm/api/sz_stock_sns_sse_info_api.py,sha256=6iZpdQ1pARchL3kV-oEVPDc9Ja0ciQBjBntVmxseeNE,6199
90
90
  mns_scheduler/k_line/__init__.py,sha256=ffZXFCLFdIwOsbxnw__u1MbQYh9yz7Bs8UMP6VF0X2M,161
91
91
  mns_scheduler/k_line/clean/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
92
- mns_scheduler/k_line/clean/k_line_info_clean_impl.py,sha256=2GgRc9Nb9wXMueoZhl9egYzjQP_NPhBCvj-XYcTlG9w,1238
93
- mns_scheduler/k_line/clean/k_line_info_clean_task.py,sha256=pBfW0XOJJrqjtQq9c63ooyXIr68nUkaVg0g-Ke8LFhs,7623
92
+ mns_scheduler/k_line/clean/k_line_info_clean_impl.py,sha256=ZTnSpQ2zKnNPWCkHKPJkLdkxVK29szgufxNV6uvXG7s,1344
93
+ mns_scheduler/k_line/clean/k_line_info_clean_task.py,sha256=oRE6hjeJMYS-FZolkEgURKDuDAJteMR5EMzHi1CIHIs,8896
94
94
  mns_scheduler/k_line/clean/daily/__init__.py,sha256=wEg73KlZo-dU0yKGwpA1C2y6LZm4IBb94tNda1tqLeg,163
95
95
  mns_scheduler/k_line/clean/daily/daily_k_line_clean_common_service.py,sha256=ZOqaiQuOSFJsKZSW8GEQf1UkveKvg66f-bsHGAybvAM,20447
96
96
  mns_scheduler/k_line/clean/daily/daily_k_line_service.py,sha256=AmnswvYlkO0gadMongt089WKWXdd-Cnku5AO0HSgDG0,6906
97
97
  mns_scheduler/k_line/clean/week_month/__init__.py,sha256=wEg73KlZo-dU0yKGwpA1C2y6LZm4IBb94tNda1tqLeg,163
98
- mns_scheduler/k_line/clean/week_month/normal_week_month_k_line_service.py,sha256=HNfKhrmvgAPPMqRAyv_95wlOKdBCjyVqd3zzCIxTI4c,8127
98
+ mns_scheduler/k_line/clean/week_month/normal_week_month_k_line_service.py,sha256=1fFtnNtOFQ53aKSvH8taduNn-kE654RRyjYWvhuyaxc,9864
99
99
  mns_scheduler/k_line/clean/week_month/sub_new_week_month_k_line_service.py,sha256=LIdY5e9U45Qtoc7Sqm1zVqaZIwh_NBOT84HL3Ye10pw,5526
100
100
  mns_scheduler/k_line/hot_stocks/__init__.py,sha256=wEg73KlZo-dU0yKGwpA1C2y6LZm4IBb94tNda1tqLeg,163
101
101
  mns_scheduler/k_line/hot_stocks/recent_hot_stocks_clean_service.py,sha256=whm-pYhAd_7OKurIw2cteBwWse5vVXS88lcrTbbcSaE,2628
102
- mns_scheduler/k_line/sync/__init__.py,sha256=ffZXFCLFdIwOsbxnw__u1MbQYh9yz7Bs8UMP6VF0X2M,161
103
- mns_scheduler/k_line/sync/bfq_k_line_sync.py,sha256=RC887GGTOal_MpGzJvZVlfQI2m3vK_L5xVBjKV9SCyg,4218
104
- mns_scheduler/k_line/sync/daily_week_month_line_sync.py,sha256=czNFTSx-1_xJF4BmfiY7SSxrfMESqjITmTyZL_AlyVo,6026
102
+ mns_scheduler/k_line/month_week_daily/__init__.py,sha256=ffZXFCLFdIwOsbxnw__u1MbQYh9yz7Bs8UMP6VF0X2M,161
103
+ mns_scheduler/k_line/month_week_daily/bfq_k_line_sync.py,sha256=RC887GGTOal_MpGzJvZVlfQI2m3vK_L5xVBjKV9SCyg,4218
104
+ mns_scheduler/k_line/month_week_daily/daily_week_month_line_sync.py,sha256=czNFTSx-1_xJF4BmfiY7SSxrfMESqjITmTyZL_AlyVo,6026
105
105
  mns_scheduler/k_line/test/__init__.py,sha256=wEg73KlZo-dU0yKGwpA1C2y6LZm4IBb94tNda1tqLeg,163
106
- mns_scheduler/k_line/test/k_line_info_clean_his_data.py,sha256=mXnvUWNzSZxBeuZcDygRCUuJV9kW4mmstKAas1dZ2tY,1473
106
+ mns_scheduler/k_line/test/k_line_info_clean_his_data.py,sha256=MGMiu0wQj-zAmnxGqxeTdCIr-6D_DqwK_lDR9BONW14,1538
107
+ mns_scheduler/k_line/year_quarter/__init__.py,sha256=wEg73KlZo-dU0yKGwpA1C2y6LZm4IBb94tNda1tqLeg,163
108
+ mns_scheduler/k_line/year_quarter/year_quarter_line_sync.py,sha256=t7tCrjrdz4xB_0hqi5kNi9klDCk4Giymy_eWVaF0sG8,2769
107
109
  mns_scheduler/kpl/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
108
110
  mns_scheduler/kpl/selection/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
109
111
  mns_scheduler/kpl/selection/index/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
@@ -168,14 +170,14 @@ mns_scheduler/zt/script/__init__.py,sha256=wEg73KlZo-dU0yKGwpA1C2y6LZm4IBb94tNda
168
170
  mns_scheduler/zt/script/fix_error_deal_day.py,sha256=n54pom24wCQAiHKjnVZACizb97iGWaEYtADM9R1z69g,1624
169
171
  mns_scheduler/zt/script/kcx_high_chg_open_his_data_handle.py,sha256=EVJrQoyujH1V6ifmZCJiqzuLx4xin2pfxLJ-bYT1Cxw,5571
170
172
  mns_scheduler/zt/script/sync_high_chg_pool_his_data.py,sha256=yQcICTburhpdAmMOBe6XOuNW4eN462LxBq97BJhr11g,1685
171
- mns_scheduler/zt/script/sync_now_higt_chg_zt.py,sha256=bhoIGDWTI3w0YKVfIAVNHWpUrYqJYDMGPt-1i3d_Zmw,1850
173
+ mns_scheduler/zt/script/sync_now_higt_chg_zt.py,sha256=GLAyXQJ3bnFBe3a5qI-tXnr-gKhOyNagTeGxNn4MZmU,1862
172
174
  mns_scheduler/zt/zt_pool/__init__.py,sha256=Tyvi_iQlv3jz59EdH67Mycnt9CSixcWPQoJwu55bOq0,165
173
175
  mns_scheduler/zt/zt_pool/em_zt_pool_sync_api.py,sha256=A5YiAWYdbAxhlTTJ8pOStZrBbfnLF_RhntyYvN0neO8,11109
174
176
  mns_scheduler/zt/zt_pool/ths_zt_pool_sync_api.py,sha256=3OGBmWEX6G-fTuONgoB6Lu5xX0JNaWiP5FWMHIlIf-Y,10647
175
177
  mns_scheduler/zt/zt_pool/update_null_zt_reason_api.py,sha256=1uoiR2Uw46kDfjkvNg2US5rd_4OIkYO3872gIJOufUY,2135
176
178
  mns_scheduler/zz_task/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
177
- mns_scheduler/zz_task/data_sync_task.py,sha256=e0sxvOmtCskkJZxGkQyT0D9AuLcGjzlJljg22zAsYm4,23507
178
- mns_scheduler-1.2.8.0.dist-info/METADATA,sha256=p83V9HUrsSu1RfC6oafDGMumi9KVpHJMhdmrfEgEmko,64
179
- mns_scheduler-1.2.8.0.dist-info/WHEEL,sha256=tZoeGjtWxWRfdplE7E3d45VPlLNQnvbKiYnx7gwAy8A,92
180
- mns_scheduler-1.2.8.0.dist-info/top_level.txt,sha256=PXQDFBGR1pWmsUbH5yiLAh71P5HZODTRED0zJ8CCgOc,14
181
- mns_scheduler-1.2.8.0.dist-info/RECORD,,
179
+ mns_scheduler/zz_task/data_sync_task.py,sha256=kcdAVUh0uJoRVprqIMXgTfLKlVEWFTG6VQ7Fx7-Wj_Y,23911
180
+ mns_scheduler-1.2.8.2.dist-info/METADATA,sha256=mSkaF-NYKFbIx0BiouTiTifsBvwHVdp848B_9IDtyL0,64
181
+ mns_scheduler-1.2.8.2.dist-info/WHEEL,sha256=tZoeGjtWxWRfdplE7E3d45VPlLNQnvbKiYnx7gwAy8A,92
182
+ mns_scheduler-1.2.8.2.dist-info/top_level.txt,sha256=PXQDFBGR1pWmsUbH5yiLAh71P5HZODTRED0zJ8CCgOc,14
183
+ mns_scheduler-1.2.8.2.dist-info/RECORD,,