반응형

주식공부/파이썬 주식 18

코스피,코스닥 하락, 우연인가? 세력 장난인가? 저항대와 RSI로 살펴보기

오늘 장이 정말 말도 안되는 비정상적인 흐름을 보였던 하루였던 것 같습니다. 엘앤에프의 주가 흐름. 정말 개판입니다. 어떻게 이렇게...ㅠ 이차전지가 대부분 이사단이 나면서 코스닥도 똑같이 흘러내려버렸죠, 그럼 과연 이런 국내장의 흐름은 단순히 비정상적인 외국인들에 의한 결과로만 봐야할지 차트상으로는 어느 위치인지를 한번 보고 싶었습니다. 먼저 코스피 입니다. 20년부터 현재까의 RSI와 함께 그려보면 현재 코스피 지수부근이 저항대임을 알 수 있습니다. 22년1월부터 마구 지지받다가 흘러내렸던 그 위치 인것이죠. RSI도 보면 80을 넘어서고 다시 내려가는 시점. 다시 20까지 내려간다라고 말하긴 어렵지만, 지금까지의 데이터를 볼때, 지수 RSI가 80을 넘어서면 일단 조정이 시작되는 흐름이 자주 있어 ..

파이썬으로 코스피,코스닥 시세 모니터링 알림(추가업데이트)

어제 포스팅했던 것이 단순히 현재값 출력에 그쳤다면 이번에는 아래 내용이 추가되었습니다. 1. 원하는 보조지표 데이터 계산 2. 데이터 가져온 시간 기록 3. 1분마다 데이터를 데이터프레임 저장하고 엑셀로 남기기 첫번째 : 원하는 보조지표 데이터 계산 데이터프레임에 넣고 엑셀로 저장하기 위해서 원하는 보조지표들을 미리 만들어 둘 필요가 있습니다. 본 포스팅 예시에는 스토캐스틱 지표와 볼린저밴드 그리고 가격이동평균선만 만들어 놓았습니다. 해당 함수들은 다음과 같습니다. 종가데이터만 가지고 와서 아래 함수에 넣으면 해당 값을 리턴시켜주게 됩니다. 그리고 나중에 1분마다 이 해당 데이터들을 담을 리스트를 미리 만들어 주었습니다. 이렇게 담긴 리스트들은 나중에 데이터프레임에 칼럼으로 들어가게 됩니다. 두번째 :..

파이썬으로 코스피,코스닥 시세 모니터링 알림

특정 종목 또는 지수의 시세를 모니터링하고 알림을 받아볼 수 있는 코드 입니다. 아래 코드는 단순히 출력만 해주도록 짜놓았지만, 텔레그램 notibot을 활용한다면 메세지까지 받아볼 수 있게 됩니다. 코드는 단순합니다. FinanceDataReader를 활용하여 실행과 동시에 코스피와 코스닥 당일 시가와 종가를 불러오게 됩니다. 그리고 1분간격으로 현재가(종가)와 시가대비 등락률을 출력하게 됩니다. 그리고 아래 보면, 각 data에 리스트형식을 만들어 두었는데, 이는 1분단위로 가져오는 데이터를 저장하고 장마감 후 그래프로 그려볼 수 도 있고, 아니면 계속 누적되는 데이터를 기준으로 가격이평선 및 여러 보조지표까지 만들어 볼 수 있게 됩니다. 거래량까지 추가하면 더 좋겠군요. 궁금하셨던 분들은 유용하게 ..

지수 역추적 종목 발굴하기(파이썬 상관분석)

이번엔 역추적 종목입니다. 앞의 포스팅에서는 corr > 0.9 기준으로 지수추종이 강한 종목들을 보았다면, 이번에는 -0.5보다 작은 종목들의 흐름은 어떤지 살펴보고자 합니다. 참고로, 아래 분석은 1998년을 시작점으로 분석하였습니다. 시작점을 어디로 두느냐에 따라 corr값은 바뀔수가 있겠습니다. -0.5보다 작은 종목들의 10종목을 코스피, 코스닥에서 살펴보면 아래와 같습니다. 빨간색 X가 코스닥인데, 저 밑에 혼자 -1.0을 기록하고 있는 종목이 있습니다. 'IBKS제21호스팩' 인데, 12/16일 신규상장되어 데이터가 별로 없다보니 분석이 제대로 될 수가 없었겠네요. ※ 코스피 지수 역추적 top10 종목 Code Name Corr 757 009320 대우부품 -0.751290 681 0113..

지수추종(추적) 종목 발굴하기(파이썬 상관분석)

지수추종이란 뜻은 지수의 흐름을 따라 움직인다는 뜻입니다. 즉, 코스피가 상승할때 해당 종목의 주가도 같이 상승하는 것이죠. 지수를 추적한다고 하기도 하고, 오히려 이 반대되는 경우는 지수 역추종이라기보다는 역추적을 더 많이 쓰는것 같습니다. 뭐가 되었건 의미는 저러하다는 것이죠. 그런데, 그런 종목들은 얼마나 강하게 지수를 추종하는지 궁금해질 수 있습니다. 또는 얼만큼의 상관성을 가지고 반대로 움직이는지를 알수도 있죠. 그게 상관분석 입니다. 아래는 코스피와 코스닥 종목들의 지수추종 상관성을 그래프로 나타낸 결과물 입니다. FinanceDataReader 모듈로 읽어온 코스피 942종목, 코스닥 1,614종목의 종가데이터 기준으로 얼마나 해당 지수들을 따라 움직이는지를 분석한 결과입니다. 그래프를 보면..

stocahstic(스토캐스틱)과 RSI를 활용한 매수,매도 신호 그리기

오늘은 Stochastic 지표와 RSI를 활용한 매수,매도를 차트에 나타내보는 코드입니다. 각 보조지표에 대한 설명은 생략하고 넘어갑니다. 스토캐스틱은 매수세가 매도세보다 강할 때는 그 위치가 높게 형성되고, 매도세가 매수세보다 강할 때는 그 위치가 낮게 형성된다는 것을 이용한 것이고, RSI는 가격의 상승압력과 하락압력 간의 상대적인 강도를 나타내는 것으로 상승하면 과매수, 하락하면 과매도로 보게 됩니다. 먼저 주요 모듈을 불러오고 삼성전자를 대표로 하여 2019년부터 22년12월14일까지 데이터를 가져옵니다. #importing necessary libraries import FinanceDataReader as fdr from datetime import datetime import pandas ..

볼린저밴드로 매수포인트 찾기

파이썬으로 볼린저밴드를 그리고, 볼린저 하단보다 주가가 낮을때 매수하는 공략을 시그널로 표현한 결과물 입니다. 잘 아시겠지만 보조지표라는 것이 상승장에서는 뭘 갖다놔도 잘 어울립니다만, 하락장은 정말 어렵죠. 특히 올해 마주했던 하락장은 역대급인지라 Buy signal이 붙어도 승산이 좋지 못하죠? 그래도 분할대응하면 단기 반등 수익은 낼 수 있기도 하네요. 나쁘진 않은거 같습니다. 간단하게 그려보기 위해 FinaceDataReader를 활용하였고, 삼성전자 기준으로 2020년부터 2022년(작성기준, 금일)기준으로 불러왔습니다. GPT 모델로 여러번 시도끝에 나오게 되었고, signal 표시는 scatter로 나타내는걸 알 수 있었네요. 명령은 아래와 같이 주었습니다. Make the python co..

파이썬으로 코스피와 환율관계를 그려보기(feat.human)

이번에는 chatGPT가 아니라 인간이 직접 코딩한 결과물입니다.ㅎㅎ 바로 갑니다. 심플하게 financeDataReader를 통해서 코스피와 환율정보를 불러옵니다. 모듈설치가 안되어 있으시면 pip install finance-datareader 로 설치하셔야하겠죠. 불러올때는 데이터프레임으로 불러오므로 df로 명명하였습니다. df = fdr.DataReader('USD/KRW', '2010') # 특정 년도 이후 데이터만 보려면 년도하나만 적어준다. df1 = fdr.DataReader('KS11', '2010') # 특정 기간동안의 데이터를 보려면 기간을 적어준다. USD/KRW가 환율, KS11이 코스피 이고, 2010으로 해두면 2010년 이후부터 현재까지의 데이터를 모두 불러오게 됩니다. 그리..

파이썬으로 볼린저밴드를 만들어보기(feat. chatGPT)

GPT의 기능이 상상이상으로 많아서 보조지표를 코드로 만들어달라고 부탁을 해보았습니다. make the python code to analysis bollinger band of KOSPI KOSPI 볼린저밴드 분석하기위한 코드를 만들어줘. To calculate the Bollinger Bands for the KOSPI index in Python, you will first need to obtain the historical data for the index. You can then use this data to calculate the moving average and standard deviation, which are used to plot the Bollinger Bands. Here is..

Type error : not enough arguments for format string 해결 방법

오늘도 아마 별다른 매매는 없을 것 같지만, 프로그램 에러가 떠 있어서 확인해 보았습니다. 'Type error : not enough arguments for format string' 이 에러는 변수 갯수와 변수에 들어갈 데이터 갯수가 안맞을 때 발생하는 에러였습니다. 프로그램 상 물타기로 지정해둔 곳에서 발생했는데, 아무리 봐도 변수와 데이터 갯수는 일치합니다. 전혀 문제가 없죠. 그런데 왜 에러가 떴습니다. 그리고, 물타기 코드가 여러개가 있는데 그 중 한 곳에서만 발생해서 계속 보다보니 차이가 있었습니다. # 오류안생김 self.logging.logger.debug("%s %s주 실시간 1차 물타기 조건통과" % (code_nm, quantity)) # 오류생김 self.logging.logge..