기금넷 공식사이트 - 펀드 투자 - 하이브리드\주식 펀드의 상승 및 하락 추세를 실시간으로 확인할 수 있는 방법이 있나요? 인덱스 펀드와 동일합니다.

하이브리드\주식 펀드의 상승 및 하락 추세를 실시간으로 확인할 수 있는 방법이 있나요? 인덱스 펀드와 동일합니다.

아래 예시로는 주로 주식코드를 사용하겠습니다. 실시간으로 펀드코드로 변경도 가능하니 주의하세요!

Ref===>tushare

시스템: Ubuntu 15.04 Python:2.7 환경 패키지: Anaconda, 오락용...

Python을 배우고 있습니다. 최근에 주식 거래 방법을 배우고 싶어서 기본적인 지식을 익힌 후 주식 관련 데모를 해보고 가장 먼저 해결해야 할 문제는 물론 데이터 수집입니다.

인터넷을 검색하고 친구로부터 일부 코드 조각을 읽었으며 API에서 데이터를 요청하는 형식이 대략 다음과 같다는 것을 알게 되었습니다: ', 'ifeng': 'ifeng.com'}

URL_ERROR_MSG = '얻는데 실패했습니다. 네트워크 상태를 확인하세요. 혹은 API 포트 URL이 일치하지 않습니다! '

get_hist_data.py

# -*- 코딩: utf-8 -*-

"""

목에 생성됨 Jul 23 09:15:40 2015

@author: jet

"""

const를 ct로 가져오기

pandas를 다음으로 가져오기 pd

json 가져오기

from urllib2 import urlopen,Request

def get_hist_data(code = None, start = None, end = None, ktype = 'D' ):

"""

기능:

개별 주식의 과거 거래 데이터 가져오기

---------

p>

입력:

---------

코드:문자열

예: 601989

start:string

시작 날짜 형식: YYYY-MM-DD. 비어 있으면 API에서 제공하는 가장 빠른 날짜 데이터를 가져옵니다.

end:string

종료 날짜 형식: YYYY-MM-DD. 비어 있으면 최신 거래일 데이터를 가져옵니다.

ktype: 문자열(기본값=D, 함수 내에서 자동으로 대문자로 통합됨) )

데이터 유형 D =일간 K라인, W=주간 K라인, M=월간 K라인, 5=5분, 15=15분

30=30 분, 60=60분?

출력:

---------

DataFrame

날짜 날짜

p>

시초가

최고가

종가

최저가

상승 또는 감소?

p_chg 증가 또는 감소

ma5 5일 평균 가격

ma10 10일 평균 가격

ma20 20일 평균 가격

vma5 5일 평균 거래량

vma10 10일 평균 거래량

vma20 20일 평균 거래량

회전율( 색인에 이 항목이 없습니다)

"""?

code = code_to_APIcode(code.upper())

ktype = ktype.upper()

url = ''?

url = get_url (ktype, 코드)?

print(url)

js = json. load(ping_API(url))

cols = []

if len(js['record'][0]) == 14:

cols = ct.INDEX_DAY_PRICE_COLS

그 외:

cols = ct.DAY_PRICE_COLS

df = pd.DataFrame(js['record'], columns=cols)

ct.K_TYPE_KEY에 ktype이 있는 경우:

df = df.applymap(lambda x:x.replace(u',', u''))

for col in cols[1:]:

df[col]=df [col].astype(float)

start가 None이 아닌 경우:

df = df [df.date >= start]

end가 None이 아닌 경우:

df = df[df.date <= end]

df = df.set_index('date')

df를 반환하시겠습니까?

def code_to_APIcode(code):

"""

함수 :

입력한 주식 코드가 맞는지 확인하고, 맞으면 사용된 API에 해당하는 주식 코드를 반환합니다.

"""

print(code)

ct.INDEX_KEY에 코드가 있는 경우:

ct.INDEX_LIST [코드]를 반환합니다.

else:

if len(code) != 6:

IOError('코드 입력 오류!')

else:

코드[:1]인 경우 'sh%s'%code를 반환합니다. ['5', '6'] else 'sz%s'%code

def get_url(ktype, code):

"""

함수 :

입력한 K-line type이 맞는지 확인하고 맞으면 url을 반환

"""?

if ktype in ct .K_TYPE_KEY:

url = ct.DAY_PRICE_URL % (ct.PAGE_TYPE['http'], ct.PAGE_DOMAIN[ 'ifeng'],

ct.K_TYPE[ktype], 코드 )

URL 반환

ct.K_TYPE_MIN_KEY의 elif ktype:

url = ct.MIN_PRICE_URL % (ct.PAGE_TYPE['http'], ct.PAGE_DOMAIN ['ifeng'],

code, ktype)

URL 반환

else:

IOError('ktype 입력 오류 발생! ')

def ping_API(url):

"""

기능:

링크가 있는 경우 API에 데이터 요청 보내기 정상이면 데이터가 반환됩니다.

"""

text = ''

try:

req = Request(url )

text = urlopen(req,timeout=10).read()?

if len(text) < 15:

IOError('no data!')?

예외는 e:

print(e)

else:

텍스트 반환

으로 제외합니다.

#테스트 입장

print(get_hist_data('601989','2015-07-11','2015-07-22' ))