analyser_hj3415 2.6.8__py2.py3-none-any.whl → 2.7.1__py2.py3-none-any.whl
Sign up to get free protection for your applications and to get access to all the features.
- analyser_hj3415/cli.py +115 -45
- analyser_hj3415/eval.py +948 -0
- analyser_hj3415/workroom/__init__.py +0 -0
- analyser_hj3415/workroom/lstm.py +113 -0
- analyser_hj3415/workroom/myprophet.py +58 -0
- analyser_hj3415/workroom/mysklearn.py +50 -0
- analyser_hj3415/workroom/mysklearn2.py +39 -0
- analyser_hj3415/{analysers → workroom}/score.py +0 -38
- {analyser_hj3415-2.6.8.dist-info → analyser_hj3415-2.7.1.dist-info}/METADATA +3 -3
- analyser_hj3415-2.7.1.dist-info/RECORD +16 -0
- analyser_hj3415/analysers/eval.py +0 -276
- analyser_hj3415/analysers/report.py +0 -182
- analyser_hj3415/myredis.py +0 -186
- analyser_hj3415/tools.py +0 -247
- analyser_hj3415-2.6.8.dist-info/RECORD +0 -14
- /analyser_hj3415/{trash.py → workroom/trash.py} +0 -0
- {analyser_hj3415-2.6.8.dist-info → analyser_hj3415-2.7.1.dist-info}/LICENSE +0 -0
- {analyser_hj3415-2.6.8.dist-info → analyser_hj3415-2.7.1.dist-info}/WHEEL +0 -0
- {analyser_hj3415-2.6.8.dist-info → analyser_hj3415-2.7.1.dist-info}/entry_points.txt +0 -0
analyser_hj3415/cli.py
CHANGED
@@ -1,22 +1,23 @@
|
|
1
1
|
import argparse
|
2
2
|
import os
|
3
|
+
import pprint
|
3
4
|
|
4
5
|
from utils_hj3415 import noti, utils
|
5
6
|
from utils_hj3415.helpers import SettingsManager
|
6
|
-
from analyser_hj3415.myredis import red_ranking, mil_n_score, red_n_score
|
7
7
|
from db_hj3415 import myredis
|
8
8
|
|
9
9
|
|
10
|
-
# 파일 경로 상수
|
11
|
-
SETTINGS_FILE = os.path.join(os.path.dirname(os.path.realpath(__file__)), 'settings.json')
|
12
|
-
|
13
|
-
|
14
10
|
class AnalyserSettingsManager(SettingsManager):
|
15
11
|
DEFAULT_SETTINGS = {
|
16
12
|
'EXPECT_EARN': 0.06,
|
13
|
+
'RED_RANKING_EXPECT_EARN': 0.06,
|
17
14
|
}
|
18
15
|
TITLES = DEFAULT_SETTINGS.keys()
|
19
16
|
|
17
|
+
def __init__(self):
|
18
|
+
settings_file = os.path.join(os.path.dirname(os.path.realpath(__file__)), 'settings.json')
|
19
|
+
super().__init__(settings_file)
|
20
|
+
|
20
21
|
def set_value(self, title: str, value: str):
|
21
22
|
assert title in self.TITLES, f"title 인자는 {self.TITLES} 중에 있어야 합니다."
|
22
23
|
self.settings_dict[title] = value
|
@@ -34,7 +35,7 @@ class AnalyserSettingsManager(SettingsManager):
|
|
34
35
|
|
35
36
|
|
36
37
|
def analyser_manager():
|
37
|
-
settings_manager = AnalyserSettingsManager(
|
38
|
+
settings_manager = AnalyserSettingsManager()
|
38
39
|
expect_earn_from_setting = settings_manager.get_value('EXPECT_EARN')
|
39
40
|
|
40
41
|
parser = argparse.ArgumentParser(description="Analyser Commands")
|
@@ -48,22 +49,42 @@ def analyser_manager():
|
|
48
49
|
ranking_parser.add_argument('-e', '--expect_earn', type=float, help='기대수익률 (실수 값 입력)')
|
49
50
|
ranking_parser.add_argument('-r', '--refresh', action='store_true', help='래디스 캐시를 사용하지 않고 강제로 재계산 할지')
|
50
51
|
ranking_parser.add_argument('-n', '--noti', action='store_true', help='작업 완료 후 메시지 전송 여부')
|
51
|
-
# red -
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
52
|
+
# red - get 파서
|
53
|
+
red_get_parser = red_subparser.add_parser('get', help='red get 책정 및 레디스 저장')
|
54
|
+
red_get_parser.add_argument('code', type=str, help='종목코드 or all')
|
55
|
+
red_get_parser.add_argument('-e', '--expect_earn', type=float, help='기대수익률 (실수 값 입력)')
|
56
|
+
red_get_parser.add_argument('-r', '--refresh', action='store_true', help='래디스 캐시를 사용하지 않고 강제로 재계산 할지')
|
57
|
+
red_get_parser.add_argument('-n', '--noti', action='store_true', help='작업 완료 후 메시지 전송 여부')
|
57
58
|
|
58
59
|
# mil 명령어 서브파서
|
59
60
|
mil_parser = type_subparsers.add_parser('mil', help='millennial 타입')
|
60
61
|
mil_subparser = mil_parser.add_subparsers(dest='command', help='mil 관련된 명령')
|
61
|
-
# mil -
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
62
|
+
# mil - get 파서
|
63
|
+
mil_get_parser = mil_subparser.add_parser('get', help='mil get 책정 및 레디스 저장')
|
64
|
+
mil_get_parser.add_argument('code', type=str, help='종목코드 or all')
|
65
|
+
mil_get_parser.add_argument('-e', '--expect_earn', type=float, help='기대수익률 (실수 값 입력)')
|
66
|
+
mil_get_parser.add_argument('-r', '--refresh', action='store_true', help='래디스 캐시를 사용하지 않고 강제로 재계산 할지')
|
67
|
+
mil_get_parser.add_argument('-n', '--noti', action='store_true', help='작업 완료 후 메시지 전송 여부')
|
68
|
+
|
69
|
+
# blue 명령어 서브파서
|
70
|
+
blue_parser = type_subparsers.add_parser('blue', help='Blue 타입')
|
71
|
+
blue_subparser = blue_parser.add_subparsers(dest='command', help='blue 관련된 명령')
|
72
|
+
# blue - get 파서
|
73
|
+
blue_get_parser = blue_subparser.add_parser('get', help='blue get 책정 및 레디스 저장')
|
74
|
+
blue_get_parser.add_argument('code', type=str, help='종목코드 or all')
|
75
|
+
blue_get_parser.add_argument('-e', '--expect_earn', type=float, help='기대수익률 (실수 값 입력)')
|
76
|
+
blue_get_parser.add_argument('-r', '--refresh', action='store_true', help='래디스 캐시를 사용하지 않고 강제로 재계산 할지')
|
77
|
+
blue_get_parser.add_argument('-n', '--noti', action='store_true', help='작업 완료 후 메시지 전송 여부')
|
78
|
+
|
79
|
+
# growth 명령어 서브파서
|
80
|
+
growth_parser = type_subparsers.add_parser('growth', help='Growth 타입')
|
81
|
+
growth_subparser = growth_parser.add_subparsers(dest='command', help='growth 관련된 명령')
|
82
|
+
# growth - get 파서
|
83
|
+
growth_get_parser = growth_subparser.add_parser('get', help='growth get 책정 및 레디스 저장')
|
84
|
+
growth_get_parser.add_argument('code', type=str, help='종목코드 or all')
|
85
|
+
growth_get_parser.add_argument('-e', '--expect_earn', type=float, help='기대수익률 (실수 값 입력)')
|
86
|
+
growth_get_parser.add_argument('-r', '--refresh', action='store_true', help='래디스 캐시를 사용하지 않고 강제로 재계산 할지')
|
87
|
+
growth_get_parser.add_argument('-n', '--noti', action='store_true', help='작업 완료 후 메시지 전송 여부')
|
67
88
|
|
68
89
|
# setting 명령어 서브파서
|
69
90
|
setting_parser = type_subparsers.add_parser('setting', help='Set and Get settings')
|
@@ -80,52 +101,101 @@ def analyser_manager():
|
|
80
101
|
|
81
102
|
args = parser.parse_args()
|
82
103
|
|
83
|
-
|
84
|
-
if args.command == 'score':
|
85
|
-
# 기대 수익률과 refresh 값 처리
|
86
|
-
expect_earn = float(args.expect_earn if args.expect_earn is not None else expect_earn_from_setting)
|
87
|
-
refresh = args.refresh if args.refresh else False
|
104
|
+
from analyser_hj3415 import eval
|
88
105
|
|
89
|
-
|
106
|
+
if args.type == 'red':
|
107
|
+
if args.command == 'get':
|
90
108
|
if args.code == 'all':
|
91
|
-
|
109
|
+
# 저장된 기대수익률을 불러서 임시저장
|
110
|
+
ee_orig = eval.Red.expect_earn
|
111
|
+
|
112
|
+
red = eval.Red('005930')
|
113
|
+
if args.expect_earn:
|
114
|
+
eval.Red.expect_earn = float(args.expect_earn)
|
115
|
+
|
116
|
+
print("**** Red - all codes ****")
|
92
117
|
for i, code in enumerate(myredis.Corps.list_all_codes()):
|
93
|
-
|
94
|
-
|
118
|
+
red.code = code
|
119
|
+
print(f"*** {i} / {red} ***")
|
120
|
+
pprint.pprint(red.get(args.refresh))
|
121
|
+
|
122
|
+
# 원래 저장되었던 기대수익률로 다시 복원
|
123
|
+
eval.Red.expect_earn = ee_orig
|
95
124
|
else:
|
96
125
|
assert utils.is_6digit(args.code), "code 인자는 6자리 숫자이어야 합니다."
|
97
|
-
|
126
|
+
# 저장된 기대수익률을 불러서 임시저장
|
127
|
+
ee_orig = eval.Red.expect_earn
|
128
|
+
|
129
|
+
red = eval.Red(args.code)
|
130
|
+
if args.expect_earn:
|
131
|
+
args.refresh = True
|
132
|
+
eval.Red.expect_earn = float(args.expect_earn)
|
133
|
+
|
134
|
+
print(f"*** Red - {red} ***")
|
135
|
+
pprint.pprint(red.get(args.refresh))
|
136
|
+
|
137
|
+
# 원래 저장되었던 기대수익률로 다시 복원
|
138
|
+
eval.Red.expect_earn = ee_orig
|
98
139
|
if args.noti:
|
99
|
-
noti.telegram_to('manager', f"오늘의
|
140
|
+
noti.telegram_to('manager', f"오늘의 Red({args.code})를 레디스캐시에 저장했습니다.(유효 12시간)")
|
100
141
|
|
101
142
|
elif args.command == 'ranking':
|
102
|
-
|
103
|
-
expect_earn = float(args.expect_earn if args.expect_earn is not None else expect_earn_from_setting)
|
104
|
-
refresh = args.refresh if args.refresh else False
|
105
|
-
print(expect_earn, refresh)
|
106
|
-
|
107
|
-
# red_ranking 함수 호출
|
108
|
-
result = red_ranking(expect_earn, refresh)
|
143
|
+
result = eval.Red.ranking(expect_earn=args.expect_earn, refresh=args.refresh)
|
109
144
|
print(result)
|
110
145
|
if args.noti:
|
111
146
|
noti.telegram_to('manager', "오늘의 red ranking을 레디스캐시에 저장했습니다.(유효 12시간)")
|
112
147
|
|
113
148
|
elif args.type == 'mil':
|
114
|
-
if args.command == '
|
115
|
-
|
116
|
-
|
117
|
-
|
149
|
+
if args.command == 'get':
|
150
|
+
if args.code == 'all':
|
151
|
+
mil = eval.Mil('005930')
|
152
|
+
print("**** Mil - all codes ****")
|
153
|
+
for i, code in enumerate(myredis.Corps.list_all_codes()):
|
154
|
+
mil.code = code
|
155
|
+
print(f"*** {i} / {mil} ***")
|
156
|
+
pprint.pprint(mil.get(args.refresh))
|
157
|
+
else:
|
158
|
+
assert utils.is_6digit(args.code), "code 인자는 6자리 숫자이어야 합니다."
|
159
|
+
mil = eval.Mil(args.code)
|
160
|
+
print(f"*** Mil - {mil} ***")
|
161
|
+
pprint.pprint(mil.get(args.refresh))
|
162
|
+
if args.noti:
|
163
|
+
noti.telegram_to('manager', f"오늘의 Mil({args.code})를 레디스 캐시에 저장했습니다.(유효 12시간)")
|
164
|
+
|
165
|
+
elif args.type == 'blue':
|
166
|
+
if args.command == 'get':
|
167
|
+
if args.code == 'all':
|
168
|
+
blue = eval.Blue('005930')
|
169
|
+
print("**** Blue - all codes ****")
|
170
|
+
for i, code in enumerate(myredis.Corps.list_all_codes()):
|
171
|
+
blue.code = code
|
172
|
+
print(f"*** {i} / {blue} ***")
|
173
|
+
pprint.pprint(blue.get(args.refresh))
|
174
|
+
else:
|
175
|
+
assert utils.is_6digit(args.code), "code 인자는 6자리 숫자이어야 합니다."
|
176
|
+
blue = eval.Blue(args.code)
|
177
|
+
print(f"*** Blue - {blue} ***")
|
178
|
+
pprint.pprint(blue.get(args.refresh))
|
179
|
+
if args.noti:
|
180
|
+
noti.telegram_to('manager', f"오늘의 Blue({args.code})를 레디스 캐시에 저장했습니다.(유효 12시간)")
|
118
181
|
|
182
|
+
elif args.type == 'growth':
|
183
|
+
if args.command == 'get':
|
119
184
|
if args.code == 'all':
|
120
|
-
|
185
|
+
growth = eval.Growth('005930')
|
186
|
+
print("**** Growth - all codes ****")
|
121
187
|
for i, code in enumerate(myredis.Corps.list_all_codes()):
|
122
|
-
|
123
|
-
|
188
|
+
growth.code = code
|
189
|
+
print(f"*** {i} / {growth} ***")
|
190
|
+
pprint.pprint(growth.get(args.refresh))
|
124
191
|
else:
|
125
192
|
assert utils.is_6digit(args.code), "code 인자는 6자리 숫자이어야 합니다."
|
126
|
-
|
193
|
+
growth = eval.Growth(args.code)
|
194
|
+
print(f"*** growth - {growth} ***")
|
195
|
+
pprint.pprint(growth.get(args.refresh))
|
127
196
|
if args.noti:
|
128
|
-
noti.telegram_to('manager', f"오늘의
|
197
|
+
noti.telegram_to('manager', f"오늘의 Growth({args.code})를 레디스 캐시에 저장했습니다.(유효 12시간)")
|
198
|
+
|
129
199
|
elif args.type == 'setting':
|
130
200
|
if args.command == 'set':
|
131
201
|
settings_manager.set_value(args.title, args.value)
|