목표
1. 주식 시뮬레이션 전략 (공매도 포함)
2. 실제 매매(수동주문? 숏전략없음)
3.FX마진 시뮬레이션/데모 적용후 매매자동화
매매종목(유니버스) 데이터 수집하기
종목2300개 중 kospi200, kosdaq150 or krx300 으로 한정하자.
*시장전체흐름을 보기 위해 지수 데이터도 필요하다.
--> 코스피/코스닥지수, 업종섹터지수 가져오기
*시장주도주는 결국 kospi200, kosdaq150 안에서 나온다.
--> kospi200, kosdaq150 종목이 2020년부터 매년 6월,12월에 정기변경함
1. 수집정보 : 종목코드, 거래량, 시총, 현재가 (-> 주식수)
[KRX 에서 다운로드 가능]
- KOSPI200 : finance.naver.com/sise/entryJongmok.nhn?&page={pagenumber}
table#type_1>tbody>tr [2:]
- KOSDAQ150 : www.kodex.com/product_view.do?fId=2ETF54
div#table-area>table>tbody.pdfResultList>tr
2. 수집정보 : 베타, 52주 신고가/신저가, 매도호가/매수호가(->호가단위), 전년동기 대비 분기성장률
- yfinance ( 제공해주지 않는 종목도 있다! )
[ value if key in target for key, value in yf.Ticker("005560.KS").info.items()]
## 수집정보 : 주가/거래량
- pandas_datareader
def decorator(func):
def new_func(*args, **kwargs):
try:
return func(*args, **kwargs)
except Exception as e:
# print("Got error! ", repr(e))
return pd.DataFrame()
return new_func
@decorator
def example1(code,start,end):
return web.DataReader(f'{code}.KS', 'yahoo', start, end)
def get_data(stock,end):
for year in range(2010,2020):
start = datetime(year, 1, 1)
result = example1(stock, start, end)
if not result.empty :
stock_history[stock] = result # 외부변수
break
if stock not in stock_history.keys():
exception_code.append(stock) # 외부변수
def interpolate_outlier(df):
for col in df.columns :
condition = df[col] > df[col].mean()+df[col].std()*6
condition2 = df[col] == 0
df.loc[condition|condition2, col] = None
df[col] = df[col].interpolate(method ='nearest', limit_direction ='both')
return df
'Trading > PythonForFinance' 카테고리의 다른 글
ALT - Are technical indicators helpful? (2) (0) | 2021.01.07 |
---|---|
ALT - Are technical indicators helpful? (0) | 2020.12.31 |
ALT - 거래량 패턴과 추세선(저항/지지) (not yet) (0) | 2020.12.28 |
ALT - a tool for backtest; backtrader (0) | 2020.12.23 |
ALT - Python for Finance 1 (0) | 2020.12.02 |