이러면 안 되는거 알면서도..
업무시간에 심심풀이로 짜본 코드 ㅎㅎㅎ
종목명을 바꾸면, 변동성 돌파의 측면에서 내일의 적정 매수가격을 알려줌. ㅋㅋㅋㅋ
일봉 기준임.
import pandas_datareader.data as web
from pandas import Series
class test:
def __init__(self,code):
metaData=web.DataReader(code,'yahoo')
self.prcInfo=metaData[metaData['Volume'] != 0]
self.noise=[]
self.myVol=0.7
# 가격정보 가져오기
def getPrcInfo(self):
self.highPrc=self.prcInfo['High']
self.lowPrc=self.prcInfo['Low']
self.openPrc=self.prcInfo['Open']
self.closePrc=self.prcInfo['Close']
self.range()
self.getVol()
self.getNoise()
self.buyPrc()
# 평균변동성 데이터
self.test()
# 하루 고저촉
def range(self):
self.range=self.highPrc-self.lowPrc
# 변동성
def getVol(self):
# 하루 변동성.
self.volList=(self.range/self.openPrc)*100
# 5일 평균변동성
self.avg5vol = self.volList.rolling(window=5).mean()
def getNoise(self):
# 몸통구하기
self.body=self.closePrc-self.openPrc
# 하루노이즈
self.noise= 1 - (abs(self.body) / self.range)
# 5일 평균 노이즈
self.avg5noise= self.noise.rolling(window=5).mean()
#내일 변동성 돌파 매수가격
def buyPrc(self):
self.buyPrc=(self.range[-1]*self.avg5noise[-1])
# 테스트영역
def test(self):
# print()
print("당일 종가는 %d 고 내일 시가+%d 가격 돌파시 매수 " % (self.closePrc[-1], self.buyPrc))
# 코드실행
if __name__=="__main__":
# 코드넘버 000660
result=test("000660.KS")
showRslt=result.getPrcInfo()
'포트폴리오 > 작업물' 카테고리의 다른 글
[ 2018.03~2018.12 ] tradekorea.com online-exhibition 코딩작업 (0) | 2018.11.23 |
---|