'파이썬으로 만든 것들' 카테고리의 글 목록
본문 바로가기

파이썬으로 만든 것들81

Q-Bot 업데이트 231017 백테스트를 실행한대로 주식종목을 골라주도록 기능을 추가했다. 다음에는 Factor를 Check Box로 바꿔서 공간효율성을 꾸며야겠다. 전체코드는 아래와 같다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 .. 2024. 3. 11.
Q-Bot(퀀트투자 Back Test, 종목선정 툴) 업데이트231022 Q Bot을 업데이트 했다. Quant 투자를 위한 백테스트와 종목을 선정할 수 있는 툴인데 Q-Bot이라고 이름을 붙였다. 기존 종목선정할 때 인자를 Radio Button 에서 Check Box로 변경했다. 그리고 이전에는 2개의 인자만 선택이 가능했는데 이제는 2개 이상인 복수의 인자도 선택이 가능하다 추후 ROA, ROE, 영업이익률, 순이익률, 부채율 등 여러 인자를 추가할 계획도 있기 때문에 우선 알고리즘만 수정해서 나중에 확장이 가능하도록 했다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 5.. 2023. 10. 23.
파이썬으로 간단한 퀀트투자 백테스트 Tool(BackTester) 만들기 퀀트투자 백테스트를 여러가지로 하고 싶어서 백테스트 툴을 만들었다. 만들게 된 계기는 강환국씨와 닥터퀀트, systrader79, Quant 실전 퀀트투자(홍용찬, 이래미디어) 책을 읽고나서 왠지 간단하게 만들 수 있겠다는 생각이 들어서이다. 당연히 시중에 이렇게 백테스트를 하는 툴이 유료로 존재한다. 사실 사용해 본적은 없다. 돈이 없어서이다.(가난한 40대 가장의 현실이다.) 유로툴처럼 많은 기능이나 정확성 그리고 UI 디자인은 구현할 수 없지만, 나름 비슷하게는 만들 수 있다는 생각이 며칠전부터 들었다. 차차 업데이트를 할 목적으로 우선 간단하게 만들었다. 계략적인 기능은 아래와 같다. 그리고 1년단위로 리밸런싱 하는 조건으로 만들었다. 리밸런싱 기간 조건도 선택을 할 수 있게 기능을 추가할 수 있.. 2023. 10. 14.
Invest Tool 업데이트 231003 퀀트투자로 종목을 선정하는 기능과 KOSPI와 PBR을 비교하는 기능을 추가함 기존에 있던 기능 중 보유주식을 배당률을 기준으로 평가하는 부분은 삭제하였음 DB 업데이트 함수에서 최근 날짜를 못 가져오는(하루만 못 가져 옴) 현상을 수정함 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 .. 2023. 10. 3.
퀀트투자(PBRxDPS) 백테스트 검증231003 지난번 포스트에서 저 PBR과 저 DPS를 조합해서 투자하는 방식으로 19년간의 백테스트를 파이썬을 이용해서 진행하였다. 2023.09.28 - [취미로 하는 파이썬/투자 실험실 with 파이썬] - 퀀트투자(PBR x DPS) 백테스트 업그레이드230928 퀀트투자(PBR x DPS) 백테스트 업그레이드230928 예전에 백테스트 한 퀀트투자를 다시 해 보았다. 1년이 넘어서 그런지 그 동안 프로그래밍 실력도 나아지고, 보는 눈도 좀 더 좋아진 것 같다. 조건은 KRX Data를 가져와서 저PBR x 저DPS 조합으로 20 dotsnlines.tistory.com 그런데 혹시나 파이썬 프로그램이나 데이터에 오류가 있는지 검증할 필요가 있다는 생각이 들었다. 그래서 수작업으로 최근 년도의 자료로 똑같이 .. 2023. 10. 3.
퀀트투자(PBR x DPS) 백테스트 업그레이드230928 예전에 백테스트 한 퀀트투자를 다시 해 보았다. 1년이 넘어서 그런지 그 동안 프로그래밍 실력도 나아지고, 보는 눈도 좀 더 좋아진 것 같다. 조건은 KRX Data를 가져와서 저PBR x 저DPS 조합으로 20개씩 동일가중으로 매수해서 1년 후 매도하는 전략이다. 어차피 현실에서는 많은 변수가 있으니 날짜 부분은 매월 첫째일에 투자해서 1년 후 대충 11번째 날에 매도하는 방법으로 했다. 우선 결과는 아래와 같다. 지난번 테스트에는 매년 2월과 11월 초에 투자하는 것이 유리하다고 생각했다. 하지만, 손실이 나는 해의 개수를 비교해보니 2월과 12월이 2번으로 가장 적었다. 초기에 1천만원 투자금으로 추가 불입없이 19년간 투자를 진행하는 시물레이션이다. 19년 후에는 2월 12월 각각 원금대비 187.. 2023. 9. 28.
Invest Tool 업데이트230212 PER과 PBR을 분석할 수 있는 기능을 추가하였다. 분석하려는 종목과 환율 상관관계를 나타내는 기능을 추가하였다. DB를 최초로 다운로든 하는 기능은 삭제 하였다.(Code는 아직 살아있다.) 데이터 보유 기간이 짧은 종목이 에러나는 부분 개선 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90.. 2023. 2. 12.
Invest Tool 업데이트 - 230205 환율증감률과 코스피지수를 비교하는 버튼을 만듬 매수, 매도시점을 금액으로 표현 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 11.. 2023. 2. 5.
투자종목 고르기(22.1.29 기준) 되도록 한 달에 한 번은 종목을 고르려고 합니다. 환율도 봐야하고, 금리도 봐야하고, 보유 종목도 체크하고, 사야할 종목도 봐야하네요. 그것도 회사를 다니면서 하려니 쉽지가 않네요. 10년내 "(Max - Min) X 0.85 + MIn > 현재배당률"로 배당률 5 이상인 종목만 걸러냈습니다. 그리고 수작업으로 배당이 꾸준하지 않은 기업은 모두 취소선을 그어버렸습니다.(증권주는 이미 보유하고 있어서 모두 제외하였습니다.) KPX케미칼, 삼현철강, 예스코홀딩스 이렇게 3종목이 남네요. 우선 삼현철강을 알아보도록 하겠습니다. 배당은 2012년부터 정말 꾸준하네요. 배당수익률도 낮아서 5천원 아래가 매수기준가인데 최근 주가가 4,955원 정도 되니 매수조건이 됩니다. 2021년도에 배당성향 18%였고, EPS.. 2023. 2. 3.
Easy Invest Tool - Update230118 KOSPI VS PER 추가 그래프에서 그리드 추가 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 1.. 2023. 1. 18.
Easy Invest Tool 업그레이드, Key Generator Easy Invest Tool을 업그레이드 했다. 1. EXE 컴파일 우선 컴파일을 해서 .exe 파일로 만들때 decompile이 어렵도록 key 값을 넣었다. pyinstaller -F --key 2634 invest_tool_free230107 2. key를 생성하는 코드를 넣었다. mac address와 유효기간을 넣어서 배포시마다 exe 파일을 만드는 번거러운 일은 없도록 했다. 지금 생각해도 잘 했다. 키를 만드는데 시간은 1초 정도 걸린다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 5.. 2023. 1. 8.
Easy Invest Tool Update 주식투자 보조툴을 업데이트했다. 사실 업데이트 보다 업그레이드에 더 가깝다. 최초로 DB를 다운로드 하는 기능을 추가했고, 메시지 창을 pyqt5로 구현했다. DB에 연결 후 close() 하는 코드도 추가했고, 기한이 만료되면 열리지 않도록 구성했다. 1. DB 다운로드(최초 1번) 처음 시작했을때 DB가 없으면 아래와 같이 DB를 다운로드 하라는 메세지 창이 나옵니다. DB 다운로드는 약 4시간 정도 걸리고, 한 번 받으면 추후에 다시 받을 필요는 없습니다. 컴퓨터 사양에 따라서 다운로드 시간은 달라질 수 있습니다. 다운로드 받는 동안 다른 작업은 하지 말아주시기 바랍니다. 에러가 발생할 수 있습니다. 기존 만들어진 DB에 매번 프로그램 창을 열때마다 Data는 자동으로 업데이트가 됩니다. 업데이트 .. 2023. 1. 6.
Tool 업데이트 221231 1. 만료일자를 추가해서 만료일 이후에 프로그램이 실행되지 않도록 설정 2. 보유주식을 메모장(.txt)에 입력해서 누구나 본인 보유 주식을 사용할 수 있도록 설정 - 메모장에 보유주식 Code를 세로로 입력(쉼표나 다옴표는 필요없음) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92.. 2022. 12. 31.
주식투자 툴 업그레이드 크리스마스에 주식투자 툴을 업그레이드 했습니다. 위의 그림에서 빨간색 박스에 있는 기능이 작동하지 않아서 한참을 찾다가 고쳤습니다. 문제는 pandas_datareader가 작동을 하지 않는 것이었습니다. 이유는 모르겠네요. 결국 FinanceDataReader로 대체했고, 환율, KOSPI, 장단기 금리차, 다우, 나스닥, S&P500을 FinanceDataReader로 가져왔습니다. 전체 코드는 아래와 같습니다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 5.. 2022. 12. 26.
주식투자 도구 업데이트 주식투자도구를 업데이트 했습니다. 매수기준 배당률과 매수를 해야할 가격, 3년내 최저 배당률과 매도를 해야할 가격을 표시했습니다. 거기에다 예상(최소) 수익률도 자동으로 계산이 되어서 표시 하도록 했습니다. 그리고 pykrx를 통해서 데이터를 가져온 후 분석을 하는 방식을 바꿔서 DB에 저장된 데이터를 기준으로 분석하도록 방법을 조금 변경했습니다. 또한, 도구창이 열리는 순간 DB에 데이터가 업데이트 되도록 코드를 수정했습니다. 별거 한 건 없는 것 같은데 에러가 계속 나서 오래걸렸습니다. 오래 걸린만큼 더욱 유용하리라 생각됩니다. 전체 코드는 아래와 같습니다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30.. 2022. 12. 19.
주식투자 Tool 업데이트 주식투자 보조툴을 업데이트 했습니다. 크게 3가지가 개선 되었습니다. 1. 종목선별 기준 종목을 선별할때 과거 10년치의 가장 높은 DIV 값의 90% 이상 되는 녀석들만 가져왔습니다. 이 방법으로 백테스트도 진행했고, 나쁘지 않은데 조금 더 고려해야 할 부분이 생각났습니다. DIV는 0부터 시작하지 않습니다. 대부분 '3 ~ 8' 또는 '4 ~ 6' 이런 식으로 움직이는 범위가 있습니다. 그런데 만약 '5 ~ 6' 범위로 움직이는 종목이 있다고 가정했을때 최대치의 90%는 5.4가 됩니다. 이 값은 DIV 범위로만 보면 중간 이하의 값이 되는거죠. 어차피 제가 투자하는 방법이 Dividend Range를 이용해서 차익을 얻고, 수익을 실현하기에(배당을 포함해서) 왜곡을 피하고자 코드를 다소 수정했습니다.. 2022. 12. 4.
주식투자 보조 도구(Tool) '타이탄의 도구들' 이란 책에서는 흥미로운 얘기가 나온다. ​ 성공하기 위해서는 특정 분야에서 1등을 하거나 두 개 이상의 분야에서 상위 25% 안에만 들면 된다는 얘기이다. ​ 특정분야에서 1등은 상당히 어렵다. 나에게는 불가능하다고 내 마음속에서 이미 선을 그어 버렸다. 그래서 나는 두 번째 전략을 선택했다. 두 가지 이상의 분야에서 상위 25% 안에 들기로 말이다. ​ 나는 이 두가지를 주식투자와 프로그래밍으로 생각하고 있다. ​ 둘 다 잘 하지는 못 하지만, 노력하면 뭔가 시너지가 이뤄질 것 같은 막연한 기분이 든다. ​ "주식은 싸게 사서 비싸게 판다."는 전제에서 시작했다. 그렇다면 주가가 싸다는건 어떻게 정의할지 고민을 했다. 그리고 비싸다는 것도 기준이 있어야 한다. ​ 그래서 배당률을 기.. 2022. 11. 29.
Invest Tool Upadate - 소소한 업데이트 소소한 업데이트 좀 했다. 배당분석하기 에서 pykrx에서 가져오는 data를 DB에서 가져오도록 코드를 변경했다. 그리고 Prograss Bar 를 연결해서 진행상태를 볼 수 있도록 했다. DB로 연결해서인지 속도가 좀 빨라졌다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 9.. 2022. 11. 21.
Invest Tool Update - 아이콘 넣고, 자동 DB 업데이트, DB에서 데이터 가져와서 분석 세세하지만, 좀 더 업그레이드 했다. 보유주식을 검토하는 부분을 원래 pykrx에서 가져왔다. 하지만, DB를 계속 업데이트 해야 하기에 DB를 업데이트 하는 함수를 별도로 빼고, 보유주식 검토를 진행할 때 마다 DB가 업데이트 되도록 했다. 당연히 보유주식을 검토하는 과정은 DB에서 데이터를 가져오는 것으로 변경했다. 시간이 좀 더 빨라졌다. 아이콘도 집어 넣었다. 잘 보이지는 않지만 강아지가 쿨하게 있는 그림이다. 아무리 봐도 상태바는 잘 넣은 것 같다. 구글에서 찾느라 오래 걸렸는데 코드는 정말 간단하다. 전체 코드는 아래와 같다. 점점 길어진다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 3.. 2022. 11. 20.
주식분석도구 업그레이드 - 보유주식검토, 상태바 추가 사람은 전혀 이성적이지 않다. 특히 투자의 세계에서는 감정으로 인해 잘못된 판단을 할 수 있다. 주식투자분석도구를 만든 이유도 이처럼 불완전한 내 자신을 못 믿기 때문에 뭔가 기계적인 투자수단이 필요해서이다. 내가 산 주가를 계속 보고 있으면 감정에 영향을 많이 받는다. 그래서 되도록 MTS를 열지 않으려고 한다. 대신 내가 산 주식의 상황은 알아야 하기에 배당률을 기준으로 내가 산 주식의 상태를 표시했다. 좀 더 직관적으로 보기 위해 주식마다 각 단계별로 Comment를 표시했다. 그리고 qt desinger에서 메인위젯을 QMainDialog 에서 QMainWindow로 바꿨다. 이제 창을 숨기기 할 수 있다. 항상 생각하지만 나는 전문 프로그래머가 아니다. 프로그래밍에 재능도 없다. 다만, 일반 보.. 2022. 11. 18.