Ref = = = = => 투사레
시스템: Ubuntu15.04 파이썬: 2.7 환경팩: Anaconda, 엔터테인먼트 전용. ...
요즘 파이썬 언어를 배우고 있는데 주식 투기를 배우고 싶어요. 그래서 기초지식을 공부한 후 주식 관련 시범 연습을 할 예정이다. 가장 먼저 해결해야 할 문제는 당연히 데이터 수집이다.
나는 인터넷을 검색해 보았고, 몇몇 친구들의 코드 조각을 보았는데, API 요청 데이터의 형식은',' ifeng': 'ifeng.com'}
URL_ERROR_MSG =' 가져오기에 실패했습니다. 네트워크 상태를 확인하거나 API 포트 URL 이 일치하지 않습니다!'
_ 히스토리 _ 데이터. py 가져오기
#-*-인코딩: UTF-8 -*-
"""
2007 년 7 월 23 일 목요일 09: 15:40 20 15 에 설립되었습니다
@ 작성자: jet
"""
상수를 연락처 유형으로 가져옵니다
판다를 PD 로 수입하다
Json 가져오기
Urllib2 에서 urlopen 가져오기, 요청
Def get_hist_data(code = None, start = None, end = None, ktype = 'D'):
"""
기능:
주식 역사 거래 데이터를 얻다.
--
입력:
--
코드: 문자열
주식 코드 (예: 60 1989).
시작: 문자열
시작 날짜 형식: YYYY-MM-DD 가 비어 있을 때 API 에서 제공한 가장 이른 날짜 데이터를 가져옵니다.
끝: 문자열
종료 날짜 형식: YYYY-MM-DD 가 비어 있을 때 최근 거래일 데이터를 가져옵니다.
Ktype:string (기본값 =D, 함수가 자동으로 대문자로 통합)
데이터 유형 D= 일 Kline, W= 주 Kline, M= 월 Kline, 5=5 분, 15= 15 분.
30=30 분, 60=60 분?
출력:
--
데이터 프레임
날짜 날짜
개장가격
최고가
파장 가격
최저가격
Chg 가 오르락내리락?
P_chg 오르락 내리락
Ma5 5 일 평균 가격
Ma 10 10 일 평균 가격
Ma20 20 일 평균 가격
VMA5 의 5 일 평균
Vma 10 일 평균
Vma20 20 일 평균
회전율 (이 지수에는 이 항목이 없음)
""?
Code = code _ to _ API code (code.upper ())
Ktype = ktype.upper ()
Url = \ "\"?
Url = get_url(ktype, 코드)?
인쇄 (URL)
Js = json.loads(ping_API(url))
Cols = []
Iflen (js ['record'] [0]) = =14:
Cols = CT 입니다. 지수 _ 일 _ 가격 _ 열
그렇지 않은 경우:
Cols = CT 입니다. 일일 가격 열
Df = PD 입니다. DataFrame(js['record'], columns=cols)
Ct 에 ktype 이 있다면. K_TYPE_KEY:
Df = df.applymap (람bda x: x.replace (u',', u''))
열에 있는 열의 경우 [1:]:
Df[col]=df[col] 입니다. As 유형 (부동 소수점)
시작이 없음이 아닌 경우:
Df = df [df.date > = 시작]
End 가 None 이 아닌 경우:
Df = df [df.date < = 종료]
Df = df.set_index('date')
Df 를 돌려줄까?
Def code_to_APIcode (코드):
"""
기능:
입력한 주식 코드가 정확한지 확인하고, 정확하면 API 에서 사용하는 주식 코드를 반환합니다.
"""
인쇄 (코드)
Ct 의 if 코드입니다. INDEX_KEY:
Ct 를 반환합니다. INDEX _ LIST[ 코드]
그렇지 않은 경우:
If len (코드)! = 6:
IOError 발생 ('코드 입력 오류!'' ) 을 참조하십시오
그렇지 않은 경우:
코드 [: 1] 가 ['5',' 6'] else 'sz%s'%code 에 있다면' sh%s'%code 를 반환합니다
Def get_url(ktype, 코드):
"""
기능:
입력된 Kline 유형이 올바른지 확인하고 올바른 경우 URL 을 반환합니다.
""?
Ct 에 ktype 이 있다면. K_TYPE_KEY:
Url = CT 입니다. 일일 가격 URL%. PAGE_TYPE['http'], ct. PAGE_DOMAIN['ifeng'],
Ct. K_TYPE[ktype], 코드)
Url 을 반환합니다
연락처 유형의 elif ktype 입니다. K_TYPE_MIN_KEY:
Url = CT 입니다. 최저 가격 URL%. PAGE_TYPE['http'], ct. PAGE_DOMAIN['ifeng'],
코드, ktype)
Url 을 반환합니다
그렇지 않은 경우:
Ioerror 발생 ('ktype 입력 오류!'' ) 을 참조하십시오
Ping_API(url) 를 정의합니다.
"""
기능:
API 에 데이터 요청을 보내고 링크가 정상적으로 작동하는 경우 데이터를 반환합니다.
"""
Text ='' 입니다
시도:
Req = 요청 (URL)
Text = urlopen(req, timeout= 10). Read ()?
If len (텍스트) < 15:
IOError 발생 ('데이터 없음!'' )?
예외는 e:
인쇄 (e)
그렇지 않은 경우:
텍스트를 반환합니다
# 테스트 포털
Print (get _ hist _ data ('601989',' 2015-07-/kloc-0-)