1. 미래부 


A. 미래부 > 미래 컨텐츠 > 주간 동향

   ex) [주간동향] 제90호 과학기술&ICT 동향, 2017.3.20, 과학기술전략과

B. 미래부 > 미래 컨텐츠 > 간행물 




2. KISTEP

http://www.kistep.re.kr/c3/sub2_2.jsp




NIPA 

한국 정보화 진흥원


Posted by finance

댓글을 달아 주세요

본 자료는 위키독스에서 가져왔습니다.[각주:1]

 

######################################################################################################
########## fileName: subDS.py
######################################################################################################

from pandas import DataFrame
import win32com

### stockChart ###
def subStockChart(m_Code, m_NumHist):
    stockChart = win32com.client.Dispatch("CpSysDib.StockChart")
    stockChart.SetInputValue(0, m_Code)    # 대신증권 종목 코드
    stockChart.SetInputValue(1, ord('2'))    # 요청 구분 (개수로 요청)
    stockChart.SetInputValue(4, m_NumHist)     # 요청개수
    stockChart.SetInputValue(5, [0,2,3,4,5]) # 날짜, 시가, 고가, 저가, 종가
    stockChart.SetInputValue(6, ord('D'))    # 차트 구분 (일)

    ## 데이터 호출
    stockChart.BlockRequest()
    num = stockChart.GetHeaderValue(3)
    data=[]
    for i in range(num):
        tempData ={}
        tempData['Date']=(stockChart.GetDataValue(0,i))
        tempData['Open']=float(format(stockChart.GetDataValue(1,i), '.2f')) # 선물값이 오류수정
        tempData['High']=float(format(stockChart.GetDataValue(2,i), '.2f'))
        tempData['Low']=float(format(stockChart.GetDataValue(3,i), '.2f'))
        tempData['Close']=float(format(stockChart.GetDataValue(4,i), '.2f'))
        data.append(tempData)

    ## dataframe으로 전환   
    resultDf = DataFrame(data, columns=['Date', 'Open', 'High', 'Low', 'Close'])
    return resultDf

대신증권의 사이보스플러스와 연결해서, 데이터를 호출하는 함수를 만들었다.

이제 데이터를 불러와서 출력해보자.

 ######################################################################################################
 ########## fileName: practice01.py
 ######################################################################################################

from pandas import DataFrame
from subDS import subStockChart # 위에 작성한 subStockChart 불러오기

if __name__ == "__main__":
    ### 자료가져오기
    code ='A005930' # 삼성전자 종목코드 
    numHist =100 #과거 100일치 데이터 
    df=subStockChart(code, numHist)
    print(df)

subDS.py에서 stockChart를 이용한 데이터 호출을 작성하였다. 이를 통해서 우리는 매우 간단하게 삼성전자의 과거 데이터를 가져왔다.

만약에 현대자동차 주가가 필요하다면, code ='A005380'로 변경하면 된다. 종목코드는 이용하고 있는 증권사 HTS에서 주식 현재가를 보면 나온다.


그럼 이번에는 화면에 출력이 아닌 파일 형태로 저장해보자.

 ######################################################################################################
 ########## fileName: practice02.py 파일로 저장히기 
 ######################################################################################################

from pandas import DataFrame
from subDS import subStockChart # 위에 작성한 subStockChart 불러오기

if __name__ == "__main__":
    ### 자료가져오기
    code ='A005930' # 삼성전자 종목코드 
    numHist =100 #과거 100일치 데이터 
    df=subStockChart(code, numHist)
    df.to_csv('stockData.csv') # csv파일 형태로 저장하기 
    #df.to_csv('stockData.txt') #text 파일 형태로 저장하기         
    #print(df)
  1. https://wikidocs.net/3297 [본문으로]
Posted by finance

댓글을 달아 주세요

  1. metal0 2015.12.12 20:17  댓글주소  수정/삭제  댓글쓰기

    많은 도움이 됐습니다 감사감사


import matplotlib.pyplot as plt
sz = len(cumProfit)
x= [i for i in reversed(range(sz))]
plt.plot(x, cumProfit)

tempX = [int(sz*(i+1)/11) for i in reversed(range(10))]
for i in tempX:
tempX2 = (varDate[tempX].values.tolist())
plt.xticks(tempX, tempX2)

plt.xlabel('Date')
plt.ylabel('cum')
plt.title('KOSPI')
plt.show()


Posted by finance

댓글을 달아 주세요

### main_t3341.py


from pandas import DataFrame, ExcelWriter

import sys
sys.path.append("D:\python")
import xing
import xingLogin
import time

def GetData(market, choice):
XAQuery =xing.XAQuery_t3341()
XAQuery.SetFieldData(market, choice)
XAQuery.Request()
return XAQuery.dataReturn

if __name__ == '__main__':
### 로그인
xingLogin.login()
data=GetData('1', 'a')
df=DataFrame(data, columns=['rank', 'hname', 'salesgrowth', 'operatingincomegrowt', 'ordinaryincomegrowth', 'liabilitytoequity', 'enterpriseratio', 'eps', 'bps', 'roe', 'shcode', 'per', 'pbr', 'peg'])
df.to_csv('kospi.csv')

time.sleep(1)

data2=GetData('2', 'a')
print(data)
df2=DataFrame(data2) #columns=['Date', 'Open', 'High', 'Low', 'Close'])
df.to_csv('kosdaq.csv')



### xing.py

class XAQuery_t3341():
def __init__(self):
self.event = win32com.client.DispatchWithEvents("XA_DataSet.XAQuery", XAQueryEvents)
self.event.parent = proxy(self)
self.flag = False
self.event.LoadFromResFile("Res\\t3341.res")
def Request(self,bNext=False):
self.event.Request(bNext)
self.flag = True
while self.flag:
pythoncom.PumpWaitingMessages()
def SetFieldData(self, market, choice):
self.event.SetFieldData('t3341InBlock','gubun', 0, market) #0:전체, 1:코스피, 2:코스닥
self.event.SetFieldData('t3341InBlock','gubun1', 0, choice) #1,매출증가액, ~9
self.event.SetFieldData('t3341InBlock','gubun2', 0, '1')
self.event.SetFieldData('t3341InBlock','idx', 0, ' ')

def GetFieldData(self,szBlockName,szFieldName,nOccur=-1):
if nOccur == -1:
return self.event.GetFieldData(szBlockName,szFieldName)
else:
return self.event.GetFieldData(szBlockName,szFieldName,nOccur)

def OnReceive(self):
self.dataReturn = []
self.idx = self.event.GetFieldData('t3341OutBlock','idx',0)

nCount = self.event.GetBlockCount('t3341OutBlock1')
for i in range(nCount):
data = {}
data['rank'] = self.GetFieldData('t3341OutBlock1','rank',i)
data['hname'] = str(self.GetFieldData('t3341OutBlock1','hname',i))
data['salesgrowth'] = float(self.GetFieldData('t3341OutBlock1','salesgrowth',i))
data['operatingincomegrowt'] = float(self.GetFieldData('t3341OutBlock1','operatingincomegrowt',i))
data['ordinaryincomegrowth'] = float(self.GetFieldData('t3341OutBlock1','ordinaryincomegrowth',i))
data['liabilitytoequity'] = float(self.GetFieldData('t3341OutBlock1','liabilitytoequity',i))
data['enterpriseratio'] = float(self.GetFieldData('t3341OutBlock1','enterpriseratio',i))
data['eps'] = float(self.GetFieldData('t3341OutBlock1','eps',i))
data['bps'] = float(self.GetFieldData('t3341OutBlock1','bps',i))
data['roe'] = float(self.GetFieldData('t3341OutBlock1','roe',i))
data['shcode'] = str(self.GetFieldData('t3341OutBlock1','shcode',i))
data['per'] = float(self.GetFieldData('t3341OutBlock1','per',i))
data['pbr'] = float(self.GetFieldData('t3341OutBlock1','pbr',i))
data['peg'] = float(self.GetFieldData('t3341OutBlock1','peg',i))

self.dataReturn.append(data)


Posted by finance

댓글을 달아 주세요

import sqlite3 as sq
import pandas.io.sql as pd_sql
from pandas import DataFrame

if __name__ == '__main__':
## DB 연결
con = sq.connect("D:\\\python\\derivative\\signal.db")
cur = con.cursor()

sql= 'select name from sqlite_master where type = "table"';
pd_sql.execute(sql, con)

df=pd_sql.read_sql(sql, con, index_col=None)
print(df['name'])

DataFrame.to_csv(df, 'test1.txt', header=None, index=None, mode='a')

con.commit()
con.close()


Posted by finance

댓글을 달아 주세요