analyser_hj3415 2.6.5__tar.gz → 2.6.8__tar.gz

Sign up to get free protection for your applications and to get access to all the features.
Files changed (22) hide show
  1. {analyser_hj3415-2.6.5 → analyser_hj3415-2.6.8}/PKG-INFO +3 -3
  2. {analyser_hj3415-2.6.5 → analyser_hj3415-2.6.8}/analyser_hj3415/analysers/eval.py +9 -22
  3. {analyser_hj3415-2.6.5 → analyser_hj3415-2.6.8}/analyser_hj3415/analysers/score.py +1 -14
  4. {analyser_hj3415-2.6.5 → analyser_hj3415-2.6.8}/analyser_hj3415/cli.py +1 -1
  5. {analyser_hj3415-2.6.5 → analyser_hj3415-2.6.8}/analyser_hj3415/myredis.py +0 -1
  6. {analyser_hj3415-2.6.5 → analyser_hj3415-2.6.8}/analyser_hj3415/tools.py +0 -35
  7. {analyser_hj3415-2.6.5 → analyser_hj3415-2.6.8}/pyproject.toml +3 -3
  8. {analyser_hj3415-2.6.5 → analyser_hj3415-2.6.8}/.DS_Store +0 -0
  9. {analyser_hj3415-2.6.5 → analyser_hj3415-2.6.8}/.gitattributes +0 -0
  10. {analyser_hj3415-2.6.5 → analyser_hj3415-2.6.8}/.gitignore +0 -0
  11. {analyser_hj3415-2.6.5 → analyser_hj3415-2.6.8}/.idea/.gitignore +0 -0
  12. {analyser_hj3415-2.6.5 → analyser_hj3415-2.6.8}/.idea/analyser-hj3415.iml +0 -0
  13. {analyser_hj3415-2.6.5 → analyser_hj3415-2.6.8}/.idea/inspectionProfiles/profiles_settings.xml +0 -0
  14. {analyser_hj3415-2.6.5 → analyser_hj3415-2.6.8}/.idea/misc.xml +0 -0
  15. {analyser_hj3415-2.6.5 → analyser_hj3415-2.6.8}/.idea/modules.xml +0 -0
  16. {analyser_hj3415-2.6.5 → analyser_hj3415-2.6.8}/.idea/vcs.xml +0 -0
  17. {analyser_hj3415-2.6.5 → analyser_hj3415-2.6.8}/LICENSE +0 -0
  18. {analyser_hj3415-2.6.5 → analyser_hj3415-2.6.8}/README.md +0 -0
  19. {analyser_hj3415-2.6.5 → analyser_hj3415-2.6.8}/analyser_hj3415/.DS_Store +0 -0
  20. {analyser_hj3415-2.6.5 → analyser_hj3415-2.6.8}/analyser_hj3415/__init__.py +0 -0
  21. {analyser_hj3415-2.6.5 → analyser_hj3415-2.6.8}/analyser_hj3415/analysers/report.py +0 -0
  22. {analyser_hj3415-2.6.5 → analyser_hj3415-2.6.8}/analyser_hj3415/trash.py +0 -0
@@ -1,12 +1,12 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: analyser_hj3415
3
- Version: 2.6.5
3
+ Version: 2.6.8
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
7
7
  Classifier: License :: OSI Approved :: MIT License
8
- Requires-Dist: utils-hj3415>=2.7.0
9
- Requires-Dist: db-hj3415>=3.7.3
8
+ Requires-Dist: utils-hj3415>=2.8.0
9
+ Requires-Dist: db-hj3415>=3.8.1
10
10
  Project-URL: Home, https://www.hyungjin.kr
11
11
 
12
12
  ### analyser-hj3415
@@ -84,21 +84,6 @@ def mil(code: str) -> dict:
84
84
  '가치지표': {'FCF': fcf_dict, 'PFCF': pfcf_dict, 'PCR': pcr_dict},
85
85
  'date': [각 유효한 값의 년월값 리스트(ex- 2020/09)],
86
86
  }
87
-
88
- FCF는 영업현금흐름에서 자본적 지출(유·무형투자 비용)을 차감한 순수한 현금력이라 할 수 있다.
89
- 말 그대로 자유롭게(Free) 사용할 수 있는 여윳돈을 뜻한다.
90
- 잉여현금흐름이 플러스라면 미래의 투자나 채무상환에 쓸 재원이 늘어난 것이다.
91
- CAPEX(Capital expenditures)는 미래의 이윤을 창출하기 위해 지출된 비용을 말한다.
92
- 이는 기업이 고정자산을 구매하거나, 유효수명이 당회계년도를 초과하는 기존의 고정자산에 대한 투자에 돈이 사용될 때 발생한다.
93
-
94
- 잉여현금흐름이 마이너스일때는 설비투자가 많은 시기라 주가가 약세이며 이후 설비투자 마무리되면서 주가가 상승할수 있다.
95
- 주가는 잉여현금흐름이 증가할때 상승하는 경향이 있다.
96
- fcf = 영업현금흐름 - capex
97
-
98
- 가치지표평가
99
- price to fcf 계산
100
- https://www.investopedia.com/terms/p/pricetofreecashflow.asp
101
- pcr보다 정확하게 주식의 가치를 평가할수 있음. 10배이하 추천
102
87
  """
103
88
  c103q = myredis.C103(code, 'c103현금흐름표q')
104
89
  c104q = myredis.C104(code, 'c104q')
@@ -114,12 +99,12 @@ def mil(code: str) -> dict:
114
99
  d3, 영업활동현금흐름 = c103q.sum_recent_4q('영업활동으로인한현금흐름')
115
100
 
116
101
  d4, roic = c104q.sum_recent_4q('ROIC')
117
- _, roic_dict = c104q.find_with_yoy('ROIC')
102
+ _, roic_dict = c104q.find_without_yoy('ROIC')
118
103
  d5, roe = c104q.latest_value_pop2('ROE')
119
104
  roe106 = c106q.find('ROE')
120
105
  d6, roa = c104q.latest_value_pop2('ROA')
121
106
 
122
- _, pcr_dict = c104q.find_with_yoy('PCR')
107
+ _, pcr_dict = c104q.find_without_yoy('PCR')
123
108
 
124
109
  try:
125
110
  주주수익률 = round((재무활동현금흐름 / marketcap억 * -100), 2)
@@ -186,10 +171,11 @@ def blue(code: str) -> dict:
186
171
  logger.debug(f'유동비율 {유동비율} / [{d1}]')
187
172
 
188
173
  c104y = myredis.C104(code, 'c104y')
189
- _, dict이자보상배율y = c104y.find_with_yoy('이자보상배율')
190
- _, dict순운전자본회전율y = c104y.find_with_yoy('순운전자본회전율')
191
- _, dict재고자산회전율y = c104y.find_with_yoy('재고자산회전율')
192
- _, dict순부채비율y = c104y.find_with_yoy('순부채비율')
174
+ c106q_재고자산회전율 = myredis.C106.make_like_c106(code, 'c104q', '재고자산회전율')
175
+ _, dict이자보상배율y = c104y.find_without_yoy('이자보상배율')
176
+ _, dict순운전자본회전율y = c104y.find_without_yoy('순운전자본회전율')
177
+ _, dict재고자산회전율y = c104y.find_without_yoy('재고자산회전율')
178
+ _, dict순부채비율y = c104y.find_without_yoy('순부채비율')
193
179
 
194
180
  c104q = myredis.C104(code, 'c104q')
195
181
  d6, 이자보상배율q = c104q.latest_value_pop2('이자보상배율')
@@ -216,6 +202,7 @@ def blue(code: str) -> dict:
216
202
  '이자보상배율': (이자보상배율q, dict이자보상배율y),
217
203
  '순운전자본회전율': (순운전자본회전율q, dict순운전자본회전율y),
218
204
  '재고자산회전율': (재고자산회전율q, dict재고자산회전율y),
205
+ 'c106q_재고자산회전율': c106q_재고자산회전율,
219
206
  '순부채비율': (순부채비율q, dict순부채비율y),
220
207
  'date': tools.set_data(d1, d6, d7, d8, d9), # ''값을 제거하고 리스트로 바꾼다.
221
208
  }
@@ -236,7 +223,7 @@ def growth(code: str) -> dict:
236
223
  c104y = myredis.C104(code, 'c104y')
237
224
  c106y = myredis.C106(code, 'c106y')
238
225
 
239
- _, dict매출액증가율y = c104y.find_with_yoy('매출액증가율')
226
+ _, dict매출액증가율y = c104y.find_without_yoy('매출액증가율')
240
227
 
241
228
  c104q = myredis.C104(code, 'c104q')
242
229
  d2, 매출액증가율q = c104q.latest_value_pop2('매출액증가율')
@@ -171,20 +171,6 @@ def blue(code: str) -> Tuple[int, int, int, int, int]:
171
171
  tuple : 유동비율, 이자보상배율, 순부채비율, 순운전자본회전율, 재고자산회전율 평가 포인트
172
172
 
173
173
  Notes:
174
- <유동비율>
175
- 100미만이면 주의하나 현금흐름창출력이 좋으면 괜찮을수 있다.
176
- 만약 100%이하면 유동자산에 추정영업현금흐름을 더해서 다시계산해보아 기회를 준다.
177
- <이자보상배율>
178
- 이자보상배율 영업이익/이자비용으로 1이면 자금사정빡빡 5이상이면 양호
179
- <순운전자금회전율>
180
- 순운전자금 => 기업활동을 하기 위해 필요한 자금 (매출채권 + 재고자산 - 매입채무)
181
- 순운전자본회전율은 매출액/순운전자본으로 일정비율이 유지되는것이 좋으며 너무 작아지면 순운전자본이 많아졌다는 의미로 재고나 외상이 쌓인다는 뜻
182
- <재고자산회전율>
183
- 재고자산회전율은 매출액/재고자산으로 회전율이 낮을수록 재고가 많다는 이야기이므로 불리 전년도등과 비교해서 큰차이 발생하면 알람.
184
- 재고자산회전율이 작아지면 재고가 쌓인다는뜻
185
- <순부채비율>
186
- 부채비율은 업종마다 달라 일괄비교 어려우나 순부채 비율이 20%이하인것이 좋고 꾸준히 늘어나지 않는것이 좋다.
187
- 순부채 비율이 30%이상이면 좋치 않다.
188
174
  """
189
175
  def _calc_point_with_std(data: dict) -> int:
190
176
  """표준편차를 통해 점수를 계산하는 내부 함수
@@ -285,6 +271,7 @@ def blue(code: str) -> Tuple[int, int, int, int, int]:
285
271
  # 재고자산회전율이 작아지면 재고가 쌓인다는뜻
286
272
  _, dict_y = 재고자산회전율
287
273
  p = _calc_point_with_std(data=dict_y)
274
+ # 라이벌기업과 비교점수 추가
288
275
  logger.debug(f'재고자산회전율평가 point : {p}')
289
276
  return p
290
277
 
@@ -2,7 +2,7 @@ import argparse
2
2
  import os
3
3
 
4
4
  from utils_hj3415 import noti, utils
5
- from utils_hj3415.utils import SettingsManager
5
+ from utils_hj3415.helpers import SettingsManager
6
6
  from analyser_hj3415.myredis import red_ranking, mil_n_score, red_n_score
7
7
  from db_hj3415 import myredis
8
8
 
@@ -2,7 +2,6 @@ from analyser_hj3415.analysers import eval, score
2
2
  from typing import Dict, Tuple
3
3
  from collections import OrderedDict
4
4
  from db_hj3415 import myredis as db_myredis
5
- from utils_hj3415 import utils
6
5
 
7
6
  page = '.analyser'
8
7
  myredis_base = db_myredis.Base()
@@ -167,27 +167,6 @@ def calc유동비율(code: str, pop_count: int) -> Tuple[str, float]:
167
167
  return 유동비율date, 유동비율value
168
168
 
169
169
 
170
- """
171
- FCF는 “Free Cash Flow”의 약자로, 한국어로는 “자유 현금 흐름”이라고 합니다. FCF는 기업이 운영 활동을 통해 창출한 현금 중에서 영업 및 자본적 지출을
172
- 제외하고 남은 현금을 의미합니다. 이는 기업의 재무 건전성을 평가하는 중요한 지표로 사용됩니다. 자유 현금 흐름은 기업이 부채를 상환하고, 배당금을 지급하며,
173
- 추가적인 투자를 할 수 있는 자금을 나타냅니다.
174
-
175
- FCF의 중요성
176
-
177
- 1. 재무 건전성 평가: FCF는 기업이 실제로 얼마나 많은 현금을 창출하고 있는지를 보여줍니다. 이는 기업의 재무 건전성을 평가하는 데 중요한 지표입니다.
178
- 2. 투자 결정: 투자자들은 FCF를 통해 기업의 성장 가능성을 평가하고, 투자 결정을 내리는 데 참고합니다.
179
- 3. 배당 지급 능력: FCF는 기업이 주주들에게 배당금을 지급할 수 있는 능력을 나타냅니다.
180
- 4. 부채 상환: 기업은 FCF를 이용해 부채를 상환하고, 재무 구조를 개선할 수 있습니다.
181
-
182
- CAPEX는 “Capital Expenditures”의 약자로, 한국어로는 “자본적 지출”이라고 합니다. CAPEX는 기업이 장기 자산을 구입하거나 유지하는 데 사용하는
183
- 비용을 의미합니다. 이는 기업이 장기적인 성장을 위해 자산을 확장, 업그레이드 또는 유지하는 데 필요한 비용입니다. 이러한 자산에는 부동산, 건물, 기계,
184
- 장비 등이 포함됩니다.
185
-
186
- CAPEX가 거의 없거나 아예 없는 업종에서도 자유 현금 흐름(Free Cash Flow, FCF)을 계산할 수 있습니다. CAPEX가 없는 경우,
187
- 계산식에서 CAPEX 부분을 0으로 처리하면 됩니다.
188
- """
189
-
190
-
191
170
  def findFCF(code: str) -> dict:
192
171
  """
193
172
  FCF 계산
@@ -229,20 +208,6 @@ def findFCF(code: str) -> dict:
229
208
  return dict(sorted(r_dict.items(), reverse=False))
230
209
 
231
210
 
232
- """
233
- PFCF의 중요성
234
- 1. 기업 가치 평가: PFCF는 기업이 창출하는 현금 흐름에 비해 주가가 적정한지 평가하는 데 사용됩니다. 낮은 PFCF는 주가가 상대적으로 저평가되었음을 나타낼
235
- 수 있고, 높은 PFCF는 주가가 상대적으로 고평가되었음을 나타낼 수 있습니다.
236
- 2. 투자 결정: 투자자들은 PFCF를 사용하여 현금 흐름 창출 능력 대비 주가가 매력적인지를 판단하고, 투자 결정을 내리는 데 참고합니다.
237
- 3. 비교 분석: 같은 산업 내 다른 기업들과 비교하여, 어느 기업이 더 효율적으로 현금 흐름을 창출하는지를 평가할 수 있습니다.
238
-
239
- PFCF의 한계
240
-
241
- •산업 특성: PFCF는 산업마다 적정한 수준이 다를 수 있습니다. 예를 들어, 기술 산업과 제조 산업의 적정 PFCF는 다를 수 있습니다.
242
- •일회성 항목: 특정 연도의 일회성 비용이나 수익이 FCF에 영향을 미칠 수 있으며, 이는 PFCF 계산에 왜곡을 가져올 수 있습니다.
243
- """
244
-
245
-
246
211
  def findPFCF(code: str) -> dict:
247
212
  """Price to Free Cash Flow Ratio(주가 대비 자유 현금 흐름 비율)계산
248
213
 
@@ -4,15 +4,15 @@ build-backend = "flit_core.buildapi"
4
4
 
5
5
  [project]
6
6
  name = "analyser_hj3415"
7
- version = "2.6.5"
7
+ version = "2.6.8"
8
8
  authors = [{name = "Hyungjin Kim", email = "hj3415@gmail.com"}]
9
9
  description = "Stock analyser and database processing programs"
10
10
  readme = "README.md"
11
11
  license = {file = "LICENSE"}
12
12
  classifiers = ["License :: OSI Approved :: MIT License"]
13
13
  dependencies = [
14
- "utils-hj3415>=2.7.0",
15
- "db-hj3415>=3.7.3",
14
+ "utils-hj3415>=2.8.0",
15
+ "db-hj3415>=3.8.1",
16
16
  ]
17
17
 
18
18
  [project.scripts]
File without changes