analyser_hj3415 2.9.17__py3-none-any.whl → 2.10.0__py3-none-any.whl

Sign up to get free protection for your applications and to get access to all the features.
analyser_hj3415/tsa.py CHANGED
@@ -290,7 +290,7 @@ class MyLSTM:
290
290
  @code.setter
291
291
  def code(self, code: str):
292
292
  assert utils.is_6digit(code), f'Invalid value : {code}'
293
- tsa_logger.info(f'change code : {self.code} -> {code}')
293
+ tsa_logger.debug(f'change code : {self.code} -> {code}')
294
294
 
295
295
  self._code = code
296
296
  self.name = myredis.Corps(code, 'c101').get_name()
@@ -346,12 +346,28 @@ class MyLSTM:
346
346
  y.append(data[i + time_step, 0])
347
347
  return np.array(X), np.array(y)
348
348
 
349
+
349
350
  X_train, y_train_1d = create_dataset(train_data_2d)
350
351
  X_test, y_test_1d = create_dataset(test_data_2d)
352
+ tsa_logger.debug(X_train.shape)
353
+ tsa_logger.debug(X_test.shape)
351
354
 
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)
355
+ try:
356
+ # LSTM 모델 입력을 위해 데이터를 3차원으로 변환
357
+ X_train_3d = X_train.reshape(X_train.shape[0], X_train.shape[1], 1)
358
+ X_test_3d = X_test.reshape(X_test.shape[0], X_test.shape[1], 1)
359
+ except IndexError:
360
+ return LSTMData(
361
+ code=self.code,
362
+ data_2d=np.array([]),
363
+ train_size=0,
364
+ train_data_2d=np.array([]),
365
+ test_data_2d=np.array([]),
366
+ X_train_3d=np.array([]),
367
+ X_test_3d=np.array([]),
368
+ y_train_1d=np.array([]),
369
+ y_test_1d=np.array([]),
370
+ )
355
371
 
356
372
  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
373
  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 +533,11 @@ class MyLSTM:
517
533
  :return:
518
534
  """
519
535
  # 앙상블 테스트와 채점
520
- _, _, ensemble_future_predictions_2d = self.ensemble_training(
536
+ try:
537
+ _, _, ensemble_future_predictions_2d = self.ensemble_training(
521
538
  num=num_in)
539
+ except IndexError:
540
+ return [], []
522
541
 
523
542
  """if grading:
524
543
  lstm_grade = self.grading(ensemble_train_predictions_2d, ensemble_test_predictions_2d)
@@ -671,17 +690,14 @@ class MyLSTM:
671
690
  plt.title('Stock Price Prediction with LSTM Ensemble')
672
691
  plt.show()"""
673
692
 
674
- def is_up(self)-> Optional[bool]:
693
+ def is_up(self)-> bool:
675
694
  # 튜플의 [0]은 날짜 [1]은 값 배열
676
- if myredis.Base.exists(f'{self.code}_mylstm_predictions'):
677
- data = self.get_final_predictions(refresh=False, expire_time_h=24)[1]
678
- # 데이터를 1D 배열로 변환
679
- flattened_data = data.flatten()
680
- tsa_logger.debug(f"flattened_data : {flattened_data}")
681
- # 증가 여부 확인
682
- return all(flattened_data[i] < flattened_data[i + 1] for i in range(len(flattened_data) - 1))
683
- else:
684
- return None
695
+ data = self.get_final_predictions(refresh=False, expire_time_h=24)[1]
696
+ # 데이터를 1D 배열로 변환
697
+ flattened_data = data.flatten()
698
+ tsa_logger.debug(f"flattened_data : {flattened_data}")
699
+ # 증가 여부 확인
700
+ return all(flattened_data[i] < flattened_data[i + 1] for i in range(len(flattened_data) - 1))
685
701
 
686
702
  @staticmethod
687
703
  def caching_based_on_prophet_ranking(refresh: bool, expire_time_h: int, top=20):
@@ -1,11 +1,11 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: analyser_hj3415
3
- Version: 2.9.17
3
+ Version: 2.10.0
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=BF5vwZuVljYfOrlYXQ7Rq4Y7akDaPNyAaVM9u-oA8Y8,28020
4
+ analyser_hj3415/tsa.py,sha256=v8Fbw4FaJCQh-_0WmfTIWmXwwjLtlPZYPUuP5pgSb3c,28496
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.17.dist-info/entry_points.txt,sha256=ZfjPnJuH8SzvhE9vftIPMBIofsc65IAWYOhqOC_L5ck,65
11
- analyser_hj3415-2.9.17.dist-info/WHEEL,sha256=CpUCUxeHQbRN5UGRQHYRJorO5Af-Qy_fHMctcQ8DSGI,82
12
- analyser_hj3415-2.9.17.dist-info/METADATA,sha256=N4vzLnFH3ijzzI1d9f54k_G1326v6NqDGcJ86qs2fdM,6777
13
- analyser_hj3415-2.9.17.dist-info/RECORD,,
10
+ analyser_hj3415-2.10.0.dist-info/entry_points.txt,sha256=ZfjPnJuH8SzvhE9vftIPMBIofsc65IAWYOhqOC_L5ck,65
11
+ analyser_hj3415-2.10.0.dist-info/WHEEL,sha256=CpUCUxeHQbRN5UGRQHYRJorO5Af-Qy_fHMctcQ8DSGI,82
12
+ analyser_hj3415-2.10.0.dist-info/METADATA,sha256=--9EvHsGT9Rhe7DmIKSQwedfdX25sN38PYvtt0_BXWU,6777
13
+ analyser_hj3415-2.10.0.dist-info/RECORD,,