analyser_hj3415 2.6.5__py2.py3-none-any.whl → 2.6.8__py2.py3-none-any.whl
Sign up to get free protection for your applications and to get access to all the features.
- analyser_hj3415/analysers/eval.py +9 -22
- analyser_hj3415/analysers/score.py +1 -14
- analyser_hj3415/cli.py +1 -1
- analyser_hj3415/myredis.py +0 -1
- analyser_hj3415/tools.py +0 -35
- {analyser_hj3415-2.6.5.dist-info → analyser_hj3415-2.6.8.dist-info}/METADATA +3 -3
- analyser_hj3415-2.6.8.dist-info/RECORD +14 -0
- analyser_hj3415-2.6.5.dist-info/RECORD +0 -14
- {analyser_hj3415-2.6.5.dist-info → analyser_hj3415-2.6.8.dist-info}/LICENSE +0 -0
- {analyser_hj3415-2.6.5.dist-info → analyser_hj3415-2.6.8.dist-info}/WHEEL +0 -0
- {analyser_hj3415-2.6.5.dist-info → analyser_hj3415-2.6.8.dist-info}/entry_points.txt +0 -0
@@ -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.
|
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.
|
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
|
-
|
190
|
-
_, dict
|
191
|
-
_, dict
|
192
|
-
_, dict
|
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.
|
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
|
|
analyser_hj3415/cli.py
CHANGED
@@ -2,7 +2,7 @@ import argparse
|
|
2
2
|
import os
|
3
3
|
|
4
4
|
from utils_hj3415 import noti, utils
|
5
|
-
from utils_hj3415.
|
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
|
|
analyser_hj3415/myredis.py
CHANGED
analyser_hj3415/tools.py
CHANGED
@@ -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
|
|
@@ -1,12 +1,12 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: analyser_hj3415
|
3
|
-
Version: 2.6.
|
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.
|
9
|
-
Requires-Dist: db-hj3415>=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
|
@@ -0,0 +1,14 @@
|
|
1
|
+
analyser_hj3415/.DS_Store,sha256=qr9-0FPn5CFKe6kEu8_dWCNhzQ0sN7bwQgffKsaJEEo,6148
|
2
|
+
analyser_hj3415/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
3
|
+
analyser_hj3415/cli.py,sha256=eLo3U2VpBXVFwCCwxvge-nLc6wEeWWCbcORHRFELAFs,7356
|
4
|
+
analyser_hj3415/myredis.py,sha256=e9WH9Vbyph3jsA1TO9KWjow6-wxct4vLwINjRVHw1IQ,9609
|
5
|
+
analyser_hj3415/tools.py,sha256=lyfvmze9e4lGqgimuVOXUbgt7YNaJ7h8PpC7dWaaW94,10942
|
6
|
+
analyser_hj3415/trash.py,sha256=zF-W0piqkGr66UP6-iybo9EXh2gO0RP6R1FnIpsGkl8,12262
|
7
|
+
analyser_hj3415/analysers/eval.py,sha256=Ihx1UiNbrUUPgaZLNvbWQfO_aAwlB9vxREXJl7HNA_c,12072
|
8
|
+
analyser_hj3415/analysers/report.py,sha256=yY-AeDHOqDPrm4lpvZv3NPTJK1Z7lKsjoO5ck8AP6u4,9007
|
9
|
+
analyser_hj3415/analysers/score.py,sha256=8dlnYu-iQiwY-pkKH4N05MVanVGVsOajmryVR9_BYMI,18534
|
10
|
+
analyser_hj3415-2.6.8.dist-info/entry_points.txt,sha256=ZfjPnJuH8SzvhE9vftIPMBIofsc65IAWYOhqOC_L5ck,65
|
11
|
+
analyser_hj3415-2.6.8.dist-info/LICENSE,sha256=QVKTp0dTnB5xG8RLgG17LwSWCKNEzYoVVM6KjoCPKc0,1079
|
12
|
+
analyser_hj3415-2.6.8.dist-info/WHEEL,sha256=Sgu64hAMa6g5FdzHxXv9Xdse9yxpGGMeagVtPMWpJQY,99
|
13
|
+
analyser_hj3415-2.6.8.dist-info/METADATA,sha256=cXfIcA1mrmJ2lLnnEG7xU8kBhS0G2E8H4LfiPy01r-g,6417
|
14
|
+
analyser_hj3415-2.6.8.dist-info/RECORD,,
|
@@ -1,14 +0,0 @@
|
|
1
|
-
analyser_hj3415/.DS_Store,sha256=qr9-0FPn5CFKe6kEu8_dWCNhzQ0sN7bwQgffKsaJEEo,6148
|
2
|
-
analyser_hj3415/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
3
|
-
analyser_hj3415/cli.py,sha256=WORsQ4va2__sSMVlweUEq-rpTqvwsAiIGqFk8Xdaw8I,7354
|
4
|
-
analyser_hj3415/myredis.py,sha256=PUFMgLUToNHcfBjO272B_hy0xh8FDNm3SfcKsUthlWs,9640
|
5
|
-
analyser_hj3415/tools.py,sha256=m0zs-nFfpxuLaDh22EwsYJSgBirfSVmge8a6fvxRq60,13753
|
6
|
-
analyser_hj3415/trash.py,sha256=zF-W0piqkGr66UP6-iybo9EXh2gO0RP6R1FnIpsGkl8,12262
|
7
|
-
analyser_hj3415/analysers/eval.py,sha256=6RaKmoE4PGIIKjC5wfQwEXuUzOn7nYY9Dbh9i5v1xaU,12989
|
8
|
-
analyser_hj3415/analysers/report.py,sha256=yY-AeDHOqDPrm4lpvZv3NPTJK1Z7lKsjoO5ck8AP6u4,9007
|
9
|
-
analyser_hj3415/analysers/score.py,sha256=_TbU0Zgr14qT5tC-5o5Hphg94TJkZQo_p8AP10GDZQg,19772
|
10
|
-
analyser_hj3415-2.6.5.dist-info/entry_points.txt,sha256=ZfjPnJuH8SzvhE9vftIPMBIofsc65IAWYOhqOC_L5ck,65
|
11
|
-
analyser_hj3415-2.6.5.dist-info/LICENSE,sha256=QVKTp0dTnB5xG8RLgG17LwSWCKNEzYoVVM6KjoCPKc0,1079
|
12
|
-
analyser_hj3415-2.6.5.dist-info/WHEEL,sha256=Sgu64hAMa6g5FdzHxXv9Xdse9yxpGGMeagVtPMWpJQY,99
|
13
|
-
analyser_hj3415-2.6.5.dist-info/METADATA,sha256=LLjXKq60UmVax-HLkuM73uXFpymjCokNQGVu6bAVysA,6417
|
14
|
-
analyser_hj3415-2.6.5.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|