본문 바로가기
반응형

파이썬 (투자분석용)21

[app] 한국주식의 종목별 MDD(최대낙폭) 확인하기 최대낙폭(MDD) 확인하기 과거 차트에 기반한 최대예상손실을 미리 확인하거나, 최소한 손실을 확정하기 전에라도 확인하기 위해 MDD를 확인하는 것이 좋은데 HTS나 MTS에서 기능을 제공하지 않아서 만들었다. (목이 말라서 우물을 팠다) 종목명 (기본값: 삼성전자) 낙폭계산기간 (기본값: 3개월) 시작날짜 (기본값오늘로 부터 520주=10년 전) 위 3개 인자를 아래에 입력하면 최대낙폭을 그래프로 보여준다. 종료일자는 오늘 날짜이며, 낙폭계산기간은 보유예정(계좌에 두고 참을 수 있는)기간을 입력하는 것이 좋다. 참고로, 값을 변경하면(엔터를 치면) 자동으로 아래 그래프가 변경되는 방식이다. (Heroku로 앱을 배포하고 있는데, Heroku 서버의 초기 반응이 매우 느려서, 최초 로딩 시 20초 가까이 .. 2022. 2. 14.
[python] Pandas, 데이터프레임 비교하기(pandas.DataFrame.compare()) 데이터프레임의 값을 비교하는 여러가지 방법이 있다. 언듯 생각나는 방법으로는... values, iterrows() 또는 iteritems() method와 반복문을 혼합하여 for loop으로 검토하는 방법과 compare() method를 이용하는 방법이다. 프로그래밍에 익숙하며 사후 관리 영향도를 줄이려면 반복문을 활용하는 방법이 편리한 방법일 것이며, Pandas의 강력한 기능을 최대한 활용하고자 한다면 compare()를 사용하는 것도 좋은 방법이라 판단한다. Pandas가 항상 그렇듯, 엄청나게 많은 기능을 제공하고 있음으로, 자기에게 적합한 기능을 찾고 그를 중심으로 사용하는 것이 정답에 가깝다. 1. compare 사용해보기 데이터 셋을 우선 준비해보자. df는 기본 데이터셋이며, df2는.. 2022. 2. 10.
[python, plotly] 이동평균 그리기 Pandas의 DataFrame(데이터프레임) 구조를 기본으로 하며, 기초 데이터는 내가 만든 사용자함수 중 GetPriceList()를 통해 획득한 주가정보이다. 0. 준비하기 마음의 준비가 제일 중요한데... 사용자함수 구조와 사용법을 전혀 모르는 python beginner의 경우에는 이 압축파일을 다운받아서 projbullmrkt.py 파일을 작업하고 있는 폴더에 복사해두고 import 해서 사용하자. 그 다음, 바로 "2. plotly로 이동평균 그리기"로 넘어가도 무방하다. 다음의 3줄로 삼성전자의 일(day)단위 봉차트정보(시가, 고가, 저가, 종가, 거래량 등)와 이동평균 정보를 DataFrame 형태로 구할 수 있다. import projbullmrkt as bmk df = bmk.Get.. 2022. 2. 9.
[Pandas] rolling과 ewm으로 이동평균 구하기 Pandas의 rolling 및 ewm 메소드로 차트 분석에서도 사용되는 이동평균을 구해보자. 이동평균에 대해 잘 모르겠다면, 비록, 차트 분석에 맞추어 설명하였지만 이 포스트를 참조하기 바란다. 0. Data 준비하기 import pandas as pd raw = [10,20,30,40,50,60,70,80,90,10] df = pd.DataFrame(raw, columns=['B']) >>> df B 0 10 1 20 2 30 3 40 4 50 5 60 6 70 7 80 8 90 9 10 1. 무작정 이동평균 추가해보기 SMA : 단순이동평균, simple moving average EMA : 지수이동평균, exponential (weighted) moving average # SMA: 단순이동평균(.. 2022. 2. 8.
[python, plotly] 캔들(candlestick) 차트 그리기 각 단계는 10분 이상을 소요하지 않도록 설계했다. (아마도 이해하는데는 1~2분?) 1. 캔들차트(봉차트)란? 봉차트는 생김새가 양초처럼 생겨 캔들차트라고도 불린다. 캔들차트는 기술적 분석을 위한 가장 기초적인 차트로 활용되는데, 일정기간(보통, 하루) 동안의 시가, 시작(Open) 고가, 최고지점(High) 저가, 최저지점(Low) 끝, 마지막(Close) 을 한눈에 표시하는 표기법이다. 자세한 설명은 생략한다. 하루 이상 차트를 보았다면, 모를리 없는 바로 그 차트. 그래도 모르는 사람들을 위해 내가 좋아하는 슈카의 영상을 남긴다. 30분 10초(자동시작 설정해둠)부터 한 4분 정도 보고도 심심하면 처음부터 다시 보시길... 2. 차트 데이터 수집하기 내 블로그의 2개 다른 글을 통해 종목코드를 받.. 2022. 2. 5.
티스토리 블로그에 Plotly 그래프 넣기 1. Plotly 란? plotly.com 잘은 모르겠다. 자바스크립트에 기반한 시각화 모듈이다. 맷플롯립(MatPlotLib) 보다 훨씬 깔끔하고 다양한 기능을 제공한다. enterprise 비즈니스모델이 있어서 그런지 세세하기 들어가기 시작하면 설명이 그렇게 친절하지 않은 점은 있으나, 사용자 커뮤니티를 활용하면 되는 거니까. 중요한건, Interactive 하면서 동시에 fancy 한 시각화가 가능한데, 간편하다는 것. 2. 설치하기 티스토리에 그래프를 넣기 위해서는 구조만 이해하면 되기 때문에 python 및 plotly library의 클라이언트 설치는 불필요하다. 하지만, python으로 코드를 짤 사람들만 pip을 이용하자. $ pip install plotly [참고] 데이터구조 plotl.. 2022. 2. 5.
판다스 데이터프레임과 Lambda 함수의 이해와 사용법 람다(lambda) 함수의 활용은 많은 python 개발자나 pandas 이용자들이 입을 모아 하는 말이다. 손 쉽게 적용할 수 있다고 한다. 나같은 초심자의 입장에서는 도무지 알 수가 없다. 아니, 이해는 되는데 쓸 수가 없었다. 그리고, 끝내, 원인을 찾았다. 동작절차를 모르기 때문….. 너무 당연한가? 아니, 더 정확히 말하면 DataFrame에서 x가 뭔지 몰라서 그랬다. 결론은 단순하다. df.apply( lambda x : print(x) )로 x가 무엇인지는 알고 사용하자. lambda 함수의 구조는 lambda 매개변수: 표현식 으로 이루어진다. 사실상 inline 함수선언이다. DataFrame이나 Series에서 lambda 함수를 쓰는데 매개변수 x가 무엇일까? DataFrame 에서.. 2022. 2. 4.
한국증시 한 눈에 보기 feat. by finviz Finviz like My App http://amatorois-kospi400.herokuapp.com/ Heroku 서버를 통해 배포했는데, 이 서버의 무료 버전은 너무 느려서 동작에 꽤 긴 시간이 소요된다. Finviz S&P 500 미국주식을 하면서, Finviz 의 감각적인 인지에 쌍따봉을!!! 그래서, 한국장에서도 쓸 수 있게 만들어보면 어떨까 싶었다. 한국거래소(KRX)에서 스크래핑한 데이터로 만들었고, 안정화를 고려해서 10시 이후, 20분 지연 이다. 또한, 무료 앱이기에 새로고침 할 때만 다시 보인다. + 업뎃 예정. -- zum 주식에서 동일한 기능을 제공하고 있음을 확인했다. 이제부터 이 페이지는 취미로 만드는 것이다. ㅎㅎ 기준 데이터 시간 표시(22.02.04.), 장종료 후 장.. 2022. 2. 2.
[python] 한국증시(코스피, 코스닥) 주가정보 추출 feat. by 네이버금융 1. 주가란? 당연하게도 거래가 목적인 주식의 기본 정보는 주가이다. 물론, 이와 반대로 회사의 소유주가 되는 의미가 곧 거래임으로 주가는 보조적 위치에 있다는 관념도 존재한다. 토스 증권의 거래 방식이 바로 이런 아이디어를 기반으로 한다. 주식은 발행증권의 수와 가격으로 이루어져있다. 거래금액에 따라 가격이 변동하기도 하지만 발행증권의 수가 달라지면 가격이 의도적으로 조정받기도 한다. 이를 “수정주가”라고 한다. 어렵게 생각할 필요없이, 평소에 보던 주가는 모~두 수정주가라고 생각해도 무방하다. "한때 삼성전자가 400만원할 때가 있었지" 라는 고리타분한 얘기는 모두 수정하기 이전의 주가 얘기이다. 네이버금융(https://finance.naver.com)에서는 수정주가를 제공하고 있으며, 웹에서 줏어.. 2022. 2. 1.
[python] 한국증시(코스피, 코스닥) 종목코드 받아오기 주식 관련 웹 스크래핑(web scrapping)을 위해서는 각 종목의 종목코드가 필요하다. 1. 종목코드란? 종목코드란, 상장된 기업을 특정할 수 있는 고유 문자(숫자)로 이를 테면 삼성전자의 경우 005930 이며, 미국의 나스닥 시장에 상장된 Microsoft의 경우 MSFT 이다. 사람으로 치자면 주민등록번호에 해당된다고 볼 수 있다. 홍길동이 개명되어 홍서방이 된다고 해도 주민등록번호는 변화가 없어서 해당자를 특정할 수 있는 것처럼… 물론, 페이스북은 사명변경이후 종목코드(티커)도 변경하려고 한다. 뭐... 사람도 성전환하면 바꾸니까... 한국거래소(KRX)에서는 코스피, 코스닥 및 코넥스에 상장된 기업에 대하여, 종목코드를 포함한 정보를 홈페이지를 통해서 제공한다. 주의사항 추출하는 홈페이지가.. 2022. 1. 29.
반응형