analyser_hj3415 2.9.18__py3-none-any.whl → 2.10.1__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.
analyser_hj3415/tsa.py CHANGED
@@ -192,6 +192,21 @@ class MyProphet:
192
192
  else:
193
193
  Exception("to 인자가 맞지 않습니다.")
194
194
 
195
+ def scoring(self) -> int:
196
+ last_real_data = self.df_real.iloc[-1]
197
+ recent_price = last_real_data['y']
198
+ recent_date = datetime.strftime(last_real_data['ds'], '%Y-%m-%d')
199
+ yhat_dict = self.get_yhat()
200
+ tsa_logger.info(f'recent_price: {recent_price}, yhat_dict: {yhat_dict}')
201
+ yhat_lower = int(yhat_dict['yhat_lower'])
202
+ deviation = int(eval.Tools.cal_deviation(recent_price, yhat_lower))
203
+ if recent_price > yhat_lower:
204
+ score = -deviation
205
+ else:
206
+ score = deviation
207
+ print(f"{self.code}/{self.name} date: {recent_date} 가격:{recent_price} 기대하한값:{yhat_lower} 편차:{deviation} score:{score}")
208
+ return score
209
+
195
210
  @classmethod
196
211
  def ranking(cls, refresh = False, expire_time_h = 24, top='all') -> OrderedDict:
197
212
  """
@@ -208,22 +223,14 @@ class MyProphet:
208
223
  def fetch_ranking() -> dict:
209
224
  data = {}
210
225
  p = MyProphet('005930')
211
- for i, code in enumerate(myredis.Corps.list_all_codes()):
226
+ for code in myredis.Corps.list_all_codes():
212
227
  try:
213
228
  p.code = code
214
229
  except ValueError:
215
230
  tsa_logger.error(f'myprophet ranking error : {code}/{myredis.Corps(code, "c101").get_name()}')
216
231
  continue
217
- last_real_data = p._preprocessing_for_prophet().iloc[-1]
218
- recent_price = last_real_data['y']
219
- recent_date = datetime.strftime(last_real_data['ds'], '%Y-%m-%d')
220
- yhat_dict = p.get_yhat()
221
- tsa_logger.info(f'recent_price: {recent_price}, yhat_dict: {yhat_dict}')
222
- yhat_lower = int(yhat_dict['yhat_lower'])
223
- if recent_price < yhat_lower:
224
- deviation = int(eval.Tools.cal_deviation(recent_price, yhat_lower))
225
- data[code] = deviation
226
- print(f"{i}.{p.code}/{p.name} date: {recent_date} 가격:{recent_price} 기대하한값:{yhat_lower} 편차:{deviation}")
232
+ score = p.scoring()
233
+ data[code] = score
227
234
  return data
228
235
 
229
236
  data_dict = myredis.Base.fetch_and_cache_data(redis_name, refresh, fetch_ranking, timer=expire_time_h * 3600)
@@ -346,12 +353,28 @@ class MyLSTM:
346
353
  y.append(data[i + time_step, 0])
347
354
  return np.array(X), np.array(y)
348
355
 
356
+
349
357
  X_train, y_train_1d = create_dataset(train_data_2d)
350
358
  X_test, y_test_1d = create_dataset(test_data_2d)
359
+ tsa_logger.debug(X_train.shape)
360
+ tsa_logger.debug(X_test.shape)
351
361
 
352
- # LSTM 모델 입력을 위해 데이터를 3차원으로 변환
353
- X_train_3d = X_train.reshape(X_train.shape[0], X_train.shape[1], 1)
354
- X_test_3d = X_test.reshape(X_test.shape[0], X_test.shape[1], 1)
362
+ try:
363
+ # LSTM 모델 입력을 위해 데이터를 3차원으로 변환
364
+ X_train_3d = X_train.reshape(X_train.shape[0], X_train.shape[1], 1)
365
+ X_test_3d = X_test.reshape(X_test.shape[0], X_test.shape[1], 1)
366
+ except IndexError:
367
+ return LSTMData(
368
+ code=self.code,
369
+ data_2d=np.array([]),
370
+ train_size=0,
371
+ train_data_2d=np.array([]),
372
+ test_data_2d=np.array([]),
373
+ X_train_3d=np.array([]),
374
+ X_test_3d=np.array([]),
375
+ y_train_1d=np.array([]),
376
+ y_test_1d=np.array([]),
377
+ )
355
378
 
356
379
  tsa_logger.debug(f'n_dim - X_train_3d : {X_train_3d.ndim}, X_test_3d : {X_test_3d.ndim}, y_train : {y_train_1d.ndim}, y_test : {y_test_1d.ndim}')
357
380
  tsa_logger.debug(f'len - X_train_3d : {len(X_train_3d)}, X_test_3d : {len(X_test_3d)}, y_train : {len(y_train_1d)}, y_test : {len(y_test_1d)}')
@@ -517,8 +540,11 @@ class MyLSTM:
517
540
  :return:
518
541
  """
519
542
  # 앙상블 테스트와 채점
520
- _, _, ensemble_future_predictions_2d = self.ensemble_training(
543
+ try:
544
+ _, _, ensemble_future_predictions_2d = self.ensemble_training(
521
545
  num=num_in)
546
+ except IndexError:
547
+ return [], []
522
548
 
523
549
  """if grading:
524
550
  lstm_grade = self.grading(ensemble_train_predictions_2d, ensemble_test_predictions_2d)
@@ -1,11 +1,11 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: analyser_hj3415
3
- Version: 2.9.18
3
+ Version: 2.10.1
4
4
  Summary: Stock analyser and database processing programs
5
5
  Requires-Python: >=3.6
6
6
  Description-Content-Type: text/markdown
7
- Requires-Dist: utils-hj3415>=2.9.2
8
- Requires-Dist: db-hj3415>=4.1.4
7
+ Requires-Dist: utils-hj3415>=2.9.4
8
+ Requires-Dist: db-hj3415>=4.2.3
9
9
  Requires-Dist: scikit-learn>=1.5.2
10
10
  Requires-Dist: plotly>=5.24.1
11
11
  Requires-Dist: yfinance>=0.2.44
@@ -1,13 +1,13 @@
1
1
  analyser_hj3415/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
2
  analyser_hj3415/cli.py,sha256=a4oUwfPFEdd3r2Fq2EMHBITcp6lbXUjZvVWvCHIvCUQ,12540
3
3
  analyser_hj3415/eval.py,sha256=eNrcbpVyj7SZJevWqatlj_gJ2EQTmLZAz2nPG5qNv6k,38811
4
- analyser_hj3415/tsa.py,sha256=A4iFhNGXAuxEvW-Jn6lpMY7JJyKil4Q0XYA31-dUOXg,27882
4
+ analyser_hj3415/tsa.py,sha256=gbpS4ZXgHYlN1MggqA3UUiTkmz8-WvYkxto_yjQt13g,28558
5
5
  analyser_hj3415/workroom/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
6
6
  analyser_hj3415/workroom/mysklearn.py,sha256=wJXKz5MqqTzADdG2mqRMMzc_G9RzwYjj5_j4gyOopxQ,2030
7
7
  analyser_hj3415/workroom/mysklearn2.py,sha256=1lIy6EWEQHkOzDS-av8U0zQH6DuCLKWMI73dnJx5KRs,1495
8
8
  analyser_hj3415/workroom/score.py,sha256=P6nHBJYmyhigGtT4qna4BmNtvt4B93b7SKyzdstJK24,17376
9
9
  analyser_hj3415/workroom/trash.py,sha256=zF-W0piqkGr66UP6-iybo9EXh2gO0RP6R1FnIpsGkl8,12262
10
- analyser_hj3415-2.9.18.dist-info/entry_points.txt,sha256=ZfjPnJuH8SzvhE9vftIPMBIofsc65IAWYOhqOC_L5ck,65
11
- analyser_hj3415-2.9.18.dist-info/WHEEL,sha256=CpUCUxeHQbRN5UGRQHYRJorO5Af-Qy_fHMctcQ8DSGI,82
12
- analyser_hj3415-2.9.18.dist-info/METADATA,sha256=ZVd22jJkK5iLGAv_SbiiXI3OefzIy69M4ifg2YtgQVQ,6777
13
- analyser_hj3415-2.9.18.dist-info/RECORD,,
10
+ analyser_hj3415-2.10.1.dist-info/entry_points.txt,sha256=ZfjPnJuH8SzvhE9vftIPMBIofsc65IAWYOhqOC_L5ck,65
11
+ analyser_hj3415-2.10.1.dist-info/WHEEL,sha256=CpUCUxeHQbRN5UGRQHYRJorO5Af-Qy_fHMctcQ8DSGI,82
12
+ analyser_hj3415-2.10.1.dist-info/METADATA,sha256=HDWRHN49PtQQ0rzT2L9QObehx9r1E773C0vj2hQfcIc,6777
13
+ analyser_hj3415-2.10.1.dist-info/RECORD,,