analyser_hj3415 2.10.0__tar.gz → 2.10.1__tar.gz

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: analyser_hj3415
3
- Version: 2.10.0
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
@@ -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)
@@ -5,7 +5,7 @@ build-backend = "flit_core.buildapi"
5
5
 
6
6
  [project]
7
7
  name = "analyser_hj3415"
8
- version = "2.10.0"
8
+ version = "2.10.1"
9
9
  description = "Stock analyser and database processing programs"
10
10
  readme = "README.md"
11
11
  requires-python = ">=3.6"