analyser_hj3415 2.9.3__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- analyser_hj3415/.DS_Store +0 -0
- analyser_hj3415/__init__.py +0 -0
- analyser_hj3415/cli.py +234 -0
- analyser_hj3415/eval.py +960 -0
- analyser_hj3415/tsa.py +620 -0
- analyser_hj3415/workroom/__init__.py +0 -0
- analyser_hj3415/workroom/mysklearn.py +50 -0
- analyser_hj3415/workroom/mysklearn2.py +39 -0
- analyser_hj3415/workroom/score.py +342 -0
- analyser_hj3415/workroom/trash.py +289 -0
- analyser_hj3415-2.9.3.dist-info/METADATA +232 -0
- analyser_hj3415-2.9.3.dist-info/RECORD +14 -0
- analyser_hj3415-2.9.3.dist-info/WHEEL +4 -0
- analyser_hj3415-2.9.3.dist-info/entry_points.txt +3 -0
@@ -0,0 +1,232 @@
|
|
1
|
+
Metadata-Version: 2.1
|
2
|
+
Name: analyser_hj3415
|
3
|
+
Version: 2.9.3
|
4
|
+
Summary: Stock analyser and database processing programs
|
5
|
+
Requires-Python: >=3.6
|
6
|
+
Description-Content-Type: text/markdown
|
7
|
+
Requires-Dist: utils-hj3415>=2.9.2
|
8
|
+
Requires-Dist: db-hj3415>=4.0.3
|
9
|
+
Requires-Dist: scikit-learn>=1.5.2
|
10
|
+
Requires-Dist: plotly>=5.24.1
|
11
|
+
Requires-Dist: yfinance>=0.2.44
|
12
|
+
Requires-Dist: prophet>=1.1.6
|
13
|
+
Requires-Dist: kaleido>=0.2.1
|
14
|
+
Requires-Dist: matplotlib>=3.9.2
|
15
|
+
|
16
|
+
### analyser-hj3415
|
17
|
+
|
18
|
+
#### Introduction
|
19
|
+
analyser_hj3415 manage the database.
|
20
|
+
|
21
|
+
---
|
22
|
+
#### Requirements
|
23
|
+
|
24
|
+
pandas>=2.2.2
|
25
|
+
pymongo>=4.8.0
|
26
|
+
sqlalchemy>=2.0.31
|
27
|
+
utils-hj3415>=2.0.1
|
28
|
+
scraper-hj3415>=2.0.0
|
29
|
+
|
30
|
+
---
|
31
|
+
#### API
|
32
|
+
|
33
|
+
---
|
34
|
+
#### Install
|
35
|
+
|
36
|
+
|
37
|
+
---
|
38
|
+
#### Composition
|
39
|
+
analyser_hj3415 모듈은 세가지 파트로 구성되어 있습니다.
|
40
|
+
|
41
|
+
1. setting 모듈
|
42
|
+
setting 모듈은 데이터베이스를 활성화하고 주소를 설정하는 역할을 합니다.
|
43
|
+
데이터베이스의 주소와 활성화 여부를 파일에 저장합니다.
|
44
|
+
|
45
|
+
```python
|
46
|
+
from analyser_hj3415 import setting
|
47
|
+
|
48
|
+
# 현재 데이터 베이스 상태를 DbSetting 클래스 형식으로 반환한다.
|
49
|
+
db_setting = setting.load_df()
|
50
|
+
|
51
|
+
# 현재 데이터베이스 상태 출력
|
52
|
+
print(db_setting)
|
53
|
+
|
54
|
+
# 몽고db 주소 변경 (2가지 방식)
|
55
|
+
setting.chg_mongo_addr('mongodb://192.168.0.173:27017')
|
56
|
+
db_setting.mongo_addr = 'mongodb://192.168.0.173:27017'
|
57
|
+
|
58
|
+
# sqlite3 주소 변경 (2가지 방식)
|
59
|
+
setting.chg_sqlite3_path('/home/hj3415/Stock/_db')
|
60
|
+
db_setting.sqlite3_path = '/home/hj3415/Stock/_db'
|
61
|
+
|
62
|
+
# 데이터베이스를 기본값으로 설정합니다.
|
63
|
+
# DEF_MONGO_ADDR = 'mongodb://localhost:27017'
|
64
|
+
# DEF_WIN_SQLITE3_PATH = 'C:\\_db'
|
65
|
+
# DEF_LINUX_SQLITE3_PATH = '/home/hj3415/Stock/_db'
|
66
|
+
setting.set_default()
|
67
|
+
|
68
|
+
# 각 데이터베이스 사용 설정
|
69
|
+
setting.turn_on_mongo()
|
70
|
+
setting.turn_off_mongo()
|
71
|
+
setting.turn_off_sqlite3()
|
72
|
+
setting.turn_on_sqlite3()
|
73
|
+
```
|
74
|
+
|
75
|
+
2. mongo 모듈
|
76
|
+
몽고db를 데이터베이스로 사용할 경우를 위한 함수들의 모듈입니다.
|
77
|
+
현재는 몽고db를 비활성화 할 경우 올바로 작동하지 않기 때문에 디폴트 데이터베이스 입니다.
|
78
|
+
|
79
|
+
1) Base 클래스
|
80
|
+
|
81
|
+
모든 데이터베이스 클래스의 기반 클래스로 실제 직접 사용하지 않음.
|
82
|
+
|
83
|
+
```python
|
84
|
+
from analyser_hj3415.mongo import Base
|
85
|
+
base = Base(db='mi', col='kospi')
|
86
|
+
|
87
|
+
# db 주소를 변경함. 단 파일에 저장되는 것이 아니라 클래스 내부에서 일시적으로 설정하는 것임
|
88
|
+
base.chg_addr('mongodb://192.168.0.173:27017')
|
89
|
+
|
90
|
+
# 현재 설정된 db 주소, db 명, 컬렉션을 반환함.
|
91
|
+
base.get_status()
|
92
|
+
# ('mongodb://192.168.0.173:27017', 'mi', 'kospi')
|
93
|
+
|
94
|
+
# 데이터 베이스 관리 함수
|
95
|
+
base.get_all_db()
|
96
|
+
```
|
97
|
+
|
98
|
+
2 - 1) Corps 클래스
|
99
|
+
|
100
|
+
DB 내에서 종목에 관련된 기반클래스로 db명은 6자리 숫자 코드명임.
|
101
|
+
|
102
|
+
```python
|
103
|
+
from analyser_hj3415.mongo import Corps
|
104
|
+
|
105
|
+
corps = Corps(code='005930', page='c101')
|
106
|
+
|
107
|
+
# 코드를 변경함. 6자리 숫자인지 확인 후 설정함.
|
108
|
+
corps.chg_code('005490')
|
109
|
+
|
110
|
+
# 페이지를 변경함. 페이지명의 유효성 확인 후 설정함.
|
111
|
+
# ('c101', 'c104y', 'c104q', 'c106', 'c108', 'c103손익계산서q', 'c103재무상태표q', 'c103현금흐름표q', 'c103손익계산서y', 'c103재무상태표y', 'c103현금흐름표y', 'dart')
|
112
|
+
corps.chg_page(page='c108')
|
113
|
+
|
114
|
+
# 데이터 베이스 관리 함수
|
115
|
+
corps.get_all_codes()
|
116
|
+
corps.del_all_codes()
|
117
|
+
corps.drop_corp(code='005930')
|
118
|
+
corps.get_all_pages()
|
119
|
+
corps.drop_all_pages(code='005930')
|
120
|
+
corps.drop_page(code='005930', page='c101')
|
121
|
+
corps.get_all_item()
|
122
|
+
```
|
123
|
+
|
124
|
+
2 - 2) MI 클래스
|
125
|
+
|
126
|
+
DB 내에서 Market index 관련 클래스
|
127
|
+
|
128
|
+
```python
|
129
|
+
from analyser_hj3415.mongo import MI
|
130
|
+
mi = MI(index='kospi')
|
131
|
+
|
132
|
+
# 인덱스를 변경함. 인덱스명의 유효성 확인 후 설정
|
133
|
+
# ('aud', 'chf', 'gbond3y', 'gold', 'silver', 'kosdaq', 'kospi', 'sp500', 'usdkrw', 'wti', 'avgper', 'yieldgap', 'usdidx')
|
134
|
+
mi.chg_index(index='gold')
|
135
|
+
|
136
|
+
# 저장된 가장 최근 값 반환
|
137
|
+
mi.get_recent()
|
138
|
+
|
139
|
+
# 데이터를 저장함.
|
140
|
+
mi.save(mi_dict={'date': '2021.07.21', 'value': '1154.50'})
|
141
|
+
|
142
|
+
# 데이터 베이스 관리 함수
|
143
|
+
mi.get_all_indexes()
|
144
|
+
mi.drop_all_indexes()
|
145
|
+
mi.drop_index(index='silver')
|
146
|
+
mi.get_all_item()
|
147
|
+
```
|
148
|
+
|
149
|
+
2 - 3) DartByDate 클래스
|
150
|
+
|
151
|
+
dart_hj3415의 dart 모듈에서 dart 데이터프레임을 추출하면 각 날짜별 컬렉션으로 저장하는 클래스
|
152
|
+
|
153
|
+
```python
|
154
|
+
from dart_hj3415 import dart
|
155
|
+
from analyser_hj3415.mongo import DartByDate
|
156
|
+
|
157
|
+
date = '20210812'
|
158
|
+
dart_db = DartByDate(date=date)
|
159
|
+
|
160
|
+
# 오늘 날짜의 dart 데이터프레임을 추출하여 데이터베이스에 저장
|
161
|
+
df = dart.get_df(edate=date)
|
162
|
+
dart_db.save(df)
|
163
|
+
|
164
|
+
# 공시 데이터를 데이터프레임으로 반환한다.
|
165
|
+
dart_db.get_data()
|
166
|
+
dart_db.get_data(title='임원ㆍ주요주주특정증권등소유상황보고서')
|
167
|
+
```
|
168
|
+
|
169
|
+
2 - 4) EvalByDate 클래스
|
170
|
+
|
171
|
+
eval_hj3415의 eval 모듈에서 eval 데이터프레임을 추출하여 저장하거나 불러올때 사용.
|
172
|
+
(실제로 eval_hj3415.eval.make_today_eval_df()에서 오늘자 데이터프레임을 항상 저장한다)
|
173
|
+
|
174
|
+
```python
|
175
|
+
import pandas as pd
|
176
|
+
import datetime
|
177
|
+
from analyser_hj3415.mongo import EvalByDate
|
178
|
+
|
179
|
+
today_str = datetime.datetime.today().strftime('%Y%m%d')
|
180
|
+
eval_db = EvalByDate(date=today_str)
|
181
|
+
|
182
|
+
# 오늘 날짜의 dart 데이터프레임을 추출하여 데이터베이스에 저장
|
183
|
+
eval_db.save(pd.DataFrame())
|
184
|
+
|
185
|
+
# 공시 데이터를 데이터프레임으로 반환한다.
|
186
|
+
eval_db.get_data()
|
187
|
+
```
|
188
|
+
|
189
|
+
2 - 5) Noti 클래스
|
190
|
+
|
191
|
+
dart_hj3415의 analysis 모듈에서 공시를 분석하여 의미있는 공시를 노티하고 노티한 기록을 저장하는 클래스
|
192
|
+
|
193
|
+
```python
|
194
|
+
from analyser_hj3415.mongo import Noti
|
195
|
+
noti_db = Noti()
|
196
|
+
|
197
|
+
# 저장이 필요한 노티 데이터를 딕셔너리로 전달하여 데이터베이스에 저장
|
198
|
+
data = {'code': '005930',
|
199
|
+
'rcept_no': '20210514000624',
|
200
|
+
'rcept_dt': '20210514',
|
201
|
+
'report_nm': '임원ㆍ주요주주특정증권등소유상황보고서',
|
202
|
+
'point': 2,
|
203
|
+
'text': '등기임원이 1.0억 이상 구매하지 않음.'}
|
204
|
+
noti_db.save(noti_dict=data)
|
205
|
+
|
206
|
+
# 오래된 노티 데이터를 정리하는 함수
|
207
|
+
noti_db.cleaning_data(days_ago=15)
|
208
|
+
```
|
209
|
+
|
210
|
+
3) Corps
|
211
|
+
|
212
|
+
C101 페이지 관리 클래스
|
213
|
+
|
214
|
+
```python
|
215
|
+
from analyser_hj3415.mongo import C101
|
216
|
+
c101 = C101(code='005930')
|
217
|
+
...
|
218
|
+
```
|
219
|
+
|
220
|
+
구현 클래스는 C101, C108, C106, C103, C104
|
221
|
+
|
222
|
+
3. sqlite 모듈
|
223
|
+
sqlite3를 데이테베이스로 사용할 경우를 위한 함수들의 모듈입니다.
|
224
|
+
현재 sqlite3는 사용하지 않기 때문에 작동하지 않습니다.
|
225
|
+
|
226
|
+
```python
|
227
|
+
from analyser_hj3415 import sqlite
|
228
|
+
|
229
|
+
```
|
230
|
+
---
|
231
|
+
|
232
|
+
|
@@ -0,0 +1,14 @@
|
|
1
|
+
analyser_hj3415/.DS_Store,sha256=S5yjTP1issWmV5kF2CFjGHm5OJHgkuTaZHuxjIwSkfc,6148
|
2
|
+
analyser_hj3415/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
3
|
+
analyser_hj3415/cli.py,sha256=EW0-lIrpZHNNeDKksxC4qDBCiHPkYMGMHsZhAg6VsS8,12870
|
4
|
+
analyser_hj3415/eval.py,sha256=WWIvB4BebjW9GNGcF8rMd-MLL-lPXUBOH01_FpSq95I,38811
|
5
|
+
analyser_hj3415/tsa.py,sha256=rjhQ-JOXXQaTm8xY6o1KNkuycVGtxLPp3X1Z5jcSE14,25249
|
6
|
+
analyser_hj3415/workroom/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
7
|
+
analyser_hj3415/workroom/mysklearn.py,sha256=wJXKz5MqqTzADdG2mqRMMzc_G9RzwYjj5_j4gyOopxQ,2030
|
8
|
+
analyser_hj3415/workroom/mysklearn2.py,sha256=1lIy6EWEQHkOzDS-av8U0zQH6DuCLKWMI73dnJx5KRs,1495
|
9
|
+
analyser_hj3415/workroom/score.py,sha256=P6nHBJYmyhigGtT4qna4BmNtvt4B93b7SKyzdstJK24,17376
|
10
|
+
analyser_hj3415/workroom/trash.py,sha256=zF-W0piqkGr66UP6-iybo9EXh2gO0RP6R1FnIpsGkl8,12262
|
11
|
+
analyser_hj3415-2.9.3.dist-info/entry_points.txt,sha256=ZfjPnJuH8SzvhE9vftIPMBIofsc65IAWYOhqOC_L5ck,65
|
12
|
+
analyser_hj3415-2.9.3.dist-info/WHEEL,sha256=EZbGkh7Ie4PoZfRQ8I0ZuP9VklN_TvcZ6DSE5Uar4z4,81
|
13
|
+
analyser_hj3415-2.9.3.dist-info/METADATA,sha256=t3Efk2jKXtwR33FsmRkOw6Fr6jZ7Vj0zXkGJ-ZOnrhM,6490
|
14
|
+
analyser_hj3415-2.9.3.dist-info/RECORD,,
|