본문 바로가기

포트폴리오/작업물

심심풀이 코드

이러면 안 되는거 알면서도..

업무시간에 심심풀이로 짜본 코드 ㅎㅎㅎ

종목명을 바꾸면, 변동성 돌파의 측면에서 내일의 적정 매수가격을 알려줌. ㅋㅋㅋㅋ 

일봉 기준임.

	
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()