티스토리 뷰
목적 : KOSPI와 KOSDAQ에서 거래됐던 1분 단위 주식 데이터를 이용하여 어느 종목이 일간 변동폭이 큰지 또는 작은지를 판단하여 1일 거래 시 최적의 수익 구조를 얻고자 함.
분석 결과
- I01 : 전 시간 대(1분 전) 고점 대비 현 시간 대 고점 사이의 증가분
- I02 : 전 시간 대(1분 전) 저점 대비 현 시간 대 고점 사이의 증가분
- I03 : 전 시간 대(1분 전) 고점 대비 현 시간 대 고점 사이의 증가분
- I04 : 전 시간 대(1분 전) 저점 대비 현 시간 대 저점 사이의 증가분
- D01 : 전 시간 대(1분 전) 고점 대비 현 시간 대 고점 사이의 감소분
- D02 : 전 시간 대(1분 전) 저점 대비 현 시간 대 고점 사이의 감소분
- D03 : 전 시간 대(1분 전) 고점 대비 현 시간 대 고점 사이의 감소분
- D04 : 전 시간 대(1분 전) 저점 대비 현 시간 대 저점 사이의 감소분
def AnalyzeData_10080(self, datas, yesterPrice=None):
if not datas: return None
if len(datas) < 180:
print('Not enough data number')
#return None
if not yesterPrice:
yesterPrice = datas[0]['curr']
low1 = datas[0]['low']
high1 = datas[0]['high']
Increase01 = 0
Increase02 = 0
Increase03 = 0
Increase04 = 0
Decrease01 = 0
Decrease02 = 0
Decrease03 = 0
Decrease04 = 0
Amplitude = 0
count1 = 0
valid30min = True
valid60min = True
for data1 in datas:
if valid30min and (data1['time']>='093000'):
valid30min = False
Increase01_30 = Increase01
Increase02_30 = Increase02
Increase03_30 = Increase03
Increase04_30 = Increase04
Decrease01_30 = Decrease01
Decrease02_30 = Decrease02
Decrease03_30 = Decrease03
Decrease04_30 = Decrease04
Count_30 = count1
Amplitude_30 = Amplitude
if valid60min and (data1['time']>='100000'):
valid60min = False
Increase01_60 = Increase01
Increase02_60 = Increase02
Increase03_60 = Increase03
Increase04_60 = Increase04
Decrease01_60 = Decrease01
Decrease02_60 = Decrease02
Decrease03_60 = Decrease03
Decrease04_60 = Decrease04
Count_60 = count1
Amplitude_60 = Amplitude
Diff01 = data1['high'] - high1
Diff02 = data1['high'] - low1
Diff03 = data1['low'] - high1
Diff04 = data1['low'] - low1
Diff05 = data1['high'] - data1['low']
if Diff01 > 0: Increase01 += Diff01
if Diff02 > 0: Increase02 += Diff02
if Diff03 > 0: Increase03 += Diff03
if Diff04 > 0: Increase04 += Diff04
if Diff01 < 0: Decrease01 -= Diff01
if Diff02 < 0: Decrease02 -= Diff02
if Diff03 < 0: Decrease03 -= Diff03
if Diff04 < 0: Decrease04 -= Diff04
Amplitude += Diff05
high1 = data1['high']
low1 = data1['low']
count1 += 1
try:
if Increase01_30 < 0:
Increase01_30 = Increase01
except:
Increase01_30 = Increase01
Increase02_30 = Increase02
Increase03_30 = Increase03
Increase04_30 = Increase04
Decrease01_30 = Decrease01
Decrease02_30 = Decrease02
Decrease03_30 = Decrease03
Decrease04_30 = Decrease04
Count_30 = count1
Amplitude_30 = Amplitude
try:
if Increase01_60 < 0:
Increase01_60 = Increase01
except:
Increase01_60 = Increase01
Increase02_60 = Increase02
Increase03_60 = Increase03
Increase04_60 = Increase04
Decrease01_60 = Decrease01
Decrease02_60 = Decrease02
Decrease03_60 = Decrease03
Decrease04_60 = Decrease04
Count_60 = count1
Amplitude_60 = Amplitude
ret1 = {
'I01': format(Increase01/yesterPrice, '.3f'),
'I02': format(Increase02/yesterPrice, '.3f'),
'I03': format(Increase03/yesterPrice, '.3f'),
'I04': format(Increase04/yesterPrice, '.3f'),
'D01': format(Decrease01/yesterPrice, '.3f'),
'D02': format(Decrease02/yesterPrice, '.3f'),
'D03': format(Decrease03/yesterPrice, '.3f'),
'D04': format(Decrease04/yesterPrice, '.3f'),
'Amp': format(Amplitude/yesterPrice, '.3f'),
'I01_30': format(Increase01_30/yesterPrice, '.3f'),
'I02_30': format(Increase02_30/yesterPrice, '.3f'),
'I03_30': format(Increase03_30/yesterPrice, '.3f'),
'I04_30': format(Increase04_30/yesterPrice, '.3f'),
'D01_30': format(Decrease01_30/yesterPrice, '.3f'),
'D02_30': format(Decrease02_30/yesterPrice, '.3f'),
'D03_30': format(Decrease03_30/yesterPrice, '.3f'),
'D04_30': format(Decrease04_30/yesterPrice, '.3f'),
'Amp_30': format(Amplitude_30/yesterPrice, '.3f'),
'Cn_60': Count_60,
'I01_60': format(Increase01_60/yesterPrice, '.3f'),
'I02_60': format(Increase02_60/yesterPrice, '.3f'),
'I03_60': format(Increase03_60/yesterPrice, '.3f'),
'I04_60': format(Increase04_60/yesterPrice, '.3f'),
'D01_60': format(Decrease01_60/yesterPrice, '.3f'),
'D02_60': format(Decrease02_60/yesterPrice, '.3f'),
'D03_60': format(Decrease03_60/yesterPrice, '.3f'),
'D04_60': format(Decrease04_60/yesterPrice, '.3f'),
'Amp_60': format(Amplitude_60/yesterPrice, '.3f'),
'Cn_30': Count_30,
'Cn': count1
}
return ret1
반응형
'SWDesk' 카테고리의 다른 글
[Python] 알람 메시지 보내기 (0) | 2021.10.02 |
---|---|
[Python] 주식 1일 데이터 가져오기 (0) | 2021.09.25 |
[Python] 1분 데이터 가져오기 (0) | 2021.09.11 |
[Python] 최근 신규 키워드 찾아서 표시하기 (2) | 2021.08.27 |
[Python] datetime 예제 (0) | 2021.08.24 |
반응형
250x250
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- ServantClock
- DYOV
- 아두이노
- 치매
- 심심풀이
- 빌리언트
- 둎
- 오블완
- 전압
- 배프
- 전류
- BSC
- bilient
- 심심풀이치매방지기
- 허들
- 혁신과허들
- 혁신
- Video
- arduino
- Decorator
- Innovation&Hurdles
- image
- 티스토리챌린지
- 치매방지
- Innovations
- 전압전류모니터링
- badp
- Hurdles
- 절연형
- Innovations&Hurdles
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
글 보관함