analyser_hj3415 2.8.0__tar.gz → 2.8.2__tar.gz

Sign up to get free protection for your applications and to get access to all the features.
Files changed (24) hide show
  1. {analyser_hj3415-2.8.0 → analyser_hj3415-2.8.2}/PKG-INFO +1 -1
  2. {analyser_hj3415-2.8.0 → analyser_hj3415-2.8.2}/analyser_hj3415/cli.py +9 -0
  3. {analyser_hj3415-2.8.0 → analyser_hj3415-2.8.2}/analyser_hj3415/tsa.py +9 -6
  4. {analyser_hj3415-2.8.0 → analyser_hj3415-2.8.2}/analyser_hj3415/workroom/lstm.py +2 -0
  5. {analyser_hj3415-2.8.0 → analyser_hj3415-2.8.2}/pyproject.toml +1 -1
  6. {analyser_hj3415-2.8.0 → analyser_hj3415-2.8.2}/.DS_Store +0 -0
  7. {analyser_hj3415-2.8.0 → analyser_hj3415-2.8.2}/.gitattributes +0 -0
  8. {analyser_hj3415-2.8.0 → analyser_hj3415-2.8.2}/.gitignore +0 -0
  9. {analyser_hj3415-2.8.0 → analyser_hj3415-2.8.2}/.idea/.gitignore +0 -0
  10. {analyser_hj3415-2.8.0 → analyser_hj3415-2.8.2}/.idea/analyser-hj3415.iml +0 -0
  11. {analyser_hj3415-2.8.0 → analyser_hj3415-2.8.2}/.idea/inspectionProfiles/profiles_settings.xml +0 -0
  12. {analyser_hj3415-2.8.0 → analyser_hj3415-2.8.2}/.idea/misc.xml +0 -0
  13. {analyser_hj3415-2.8.0 → analyser_hj3415-2.8.2}/.idea/modules.xml +0 -0
  14. {analyser_hj3415-2.8.0 → analyser_hj3415-2.8.2}/.idea/vcs.xml +0 -0
  15. {analyser_hj3415-2.8.0 → analyser_hj3415-2.8.2}/LICENSE +0 -0
  16. {analyser_hj3415-2.8.0 → analyser_hj3415-2.8.2}/README.md +0 -0
  17. {analyser_hj3415-2.8.0 → analyser_hj3415-2.8.2}/analyser_hj3415/.DS_Store +0 -0
  18. {analyser_hj3415-2.8.0 → analyser_hj3415-2.8.2}/analyser_hj3415/__init__.py +0 -0
  19. {analyser_hj3415-2.8.0 → analyser_hj3415-2.8.2}/analyser_hj3415/eval.py +0 -0
  20. {analyser_hj3415-2.8.0 → analyser_hj3415-2.8.2}/analyser_hj3415/workroom/__init__.py +0 -0
  21. {analyser_hj3415-2.8.0 → analyser_hj3415-2.8.2}/analyser_hj3415/workroom/mysklearn.py +0 -0
  22. {analyser_hj3415-2.8.0 → analyser_hj3415-2.8.2}/analyser_hj3415/workroom/mysklearn2.py +0 -0
  23. {analyser_hj3415-2.8.0 → analyser_hj3415-2.8.2}/analyser_hj3415/workroom/score.py +0 -0
  24. {analyser_hj3415-2.8.0 → analyser_hj3415-2.8.2}/analyser_hj3415/workroom/trash.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: analyser_hj3415
3
- Version: 2.8.0
3
+ Version: 2.8.2
4
4
  Summary: Stock analyser and database processing programs
5
5
  Author-email: Hyungjin Kim <hj3415@gmail.com>
6
6
  Description-Content-Type: text/markdown
@@ -41,6 +41,15 @@ def analyser_manager():
41
41
  parser = argparse.ArgumentParser(description="Analyser Commands")
42
42
  type_subparsers = parser.add_subparsers(dest='type', help='분석 타입')
43
43
 
44
+ # tsa 명령어 서브파서
45
+ tsa_parser = type_subparsers.add_parser('tsa', help='Time serial analysis 타입')
46
+ tsa_subparser = tsa_parser.add_subparsers(dest='command', help='tsa 관련된 명령')
47
+ # red - ranking 파서
48
+ ranking_parser = red_subparser.add_parser('ranking', help='red 랭킹 책정 및 레디스 저장')
49
+ ranking_parser.add_argument('-e', '--expect_earn', type=float, help='기대수익률 (실수 값 입력)')
50
+ ranking_parser.add_argument('-r', '--refresh', action='store_true', help='래디스 캐시를 사용하지 않고 강제로 재계산 할지')
51
+ ranking_parser.add_argument('-n', '--noti', action='store_true', help='작업 완료 후 메시지 전송 여부')
52
+
44
53
  # red 명령어 서브파서
45
54
  red_parser = type_subparsers.add_parser('red', help='red 타입')
46
55
  red_subparser = red_parser.add_subparsers(dest='command', help='red 관련된 명령')
@@ -105,12 +105,13 @@ class MyProphet:
105
105
 
106
106
  def get_yhat(self) -> dict:
107
107
  """
108
- 예측하는 첫째날의 예측 데이터를 반환한다.
108
+ 최근 날짜의 예측데이터를 반환한다.
109
109
  :return: {'ds':..., 'yhat':.., 'yhat_lower':.., 'yhat_upper':..,}
110
110
  """
111
111
  df = self.df_forecast
112
- analyser_logger.debug(df)
113
- yhat_dict = df.iloc[0][['ds', 'yhat_lower', 'yhat_upper', 'yhat']].to_dict()
112
+ last_real_date = self.df_real.iloc[-1]['ds']
113
+ analyser_logger.info(last_real_date)
114
+ yhat_dict = df[df['ds']==last_real_date].iloc[0][['ds', 'yhat_lower', 'yhat_upper', 'yhat']].to_dict()
114
115
  analyser_logger.info(yhat_dict)
115
116
  return yhat_dict
116
117
 
@@ -135,7 +136,7 @@ class MyProphet:
135
136
  go.Scatter(x=self.df_forecast['ds'], y=self.df_forecast['yhat_lower'], fill='tonexty', mode='lines', name='하한'))
136
137
 
137
138
  fig.update_layout(
138
- title=f'{self.code} {self.name} 주가 예측 그래프(prophet)',
139
+ # title=f'{self.code} {self.name} 주가 예측 그래프(prophet)',
139
140
  xaxis_title='일자',
140
141
  yaxis_title='주가(원)',
141
142
  xaxis = dict(
@@ -186,14 +187,16 @@ class MyProphet:
186
187
  p = MyProphet('005930')
187
188
  for i, code in enumerate(myredis.Corps.list_all_codes()):
188
189
  p.code = code
189
- recent_price = p._preprocessing_for_prophet().iloc[-1]['y']
190
+ last_real_data = p._preprocessing_for_prophet().iloc[-1]
191
+ recent_price = last_real_data['y']
192
+ recent_date = datetime.strftime(last_real_data['ds'], '%Y-%m-%d')
190
193
  yhat_dict = p.get_yhat()
191
194
  analyser_logger.info(f'recent_price: {recent_price}, yhat_dict: {yhat_dict}')
192
195
  yhat_lower = int(yhat_dict['yhat_lower'])
193
196
  if recent_price < yhat_lower:
194
197
  deviation = int(eval.Tools.cal_deviation(recent_price, yhat_lower))
195
198
  data[code] = deviation
196
- print(f"{i}.{p.code}/{p.name} 최근가격:{recent_price} 기대하한값:{yhat_lower} 편차:{deviation}")
199
+ print(f"{i}.{p.code}/{p.name} date: {recent_date} 가격:{recent_price} 기대하한값:{yhat_lower} 편차:{deviation}")
197
200
  return data
198
201
 
199
202
  data_dict = myredis.Base.fetch_and_cache_data(redis_name, refresh, fetch_ranking, timer=expire_time)
@@ -15,6 +15,8 @@ stock_data = yf.download('259960.KS', start='2020-01-01', end='2024-10-11')
15
15
  # 하이닉스 주식 데이터 가져오기 (KOSPI 상장)
16
16
  #stock_data = yf.download('000660.KS', start='2019-01-01', end='2024-10-11')
17
17
 
18
+ stock_data = yf.download('004490.KS', start='2020-01-01', end='2024-10-15')
19
+
18
20
 
19
21
  # 2. 필요한 열만 선택 (종가만 사용)
20
22
  data = stock_data['Close'].values.reshape(-1, 1)
@@ -4,7 +4,7 @@ build-backend = "flit_core.buildapi"
4
4
 
5
5
  [project]
6
6
  name = "analyser_hj3415"
7
- version = "2.8.0"
7
+ version = "2.8.2"
8
8
  authors = [{name = "Hyungjin Kim", email = "hj3415@gmail.com"}]
9
9
  description = "Stock analyser and database processing programs"
10
10
  readme = "README.md"
File without changes