반응형

오늘 목표는 개발환경 설정 후 프로젝트 셋팅까지 진행하볼 예정이다.

1. 파이썬 설치

개발환경 설정? 머 없다. 파이썬으로 하기로 했으니까 파이썬 설치해주고 파이썬 IDE를 설치해주면 끝~ 먼저 파이썬을 설치해주자, 나는 파이썬 3.8버전을 사용하는데 이 글을 쓰는 시점에 확인해보니 벌써 3.9.2가 나왔더라 ㅎㅎ 머 이 프로젝트를 진행하는데 큰 차이는 없으니 그냥 받으면 된다.

비전공자들은 궁금할 수가 있다. 파이썬 설치? 그게 모야!!! 어 일단. 우리가 사용할 언어는 파이썬이다. 언어라는건 규칙이 존재하고 사용할 수 있는 단어들도 있을 것이다. 이런 언어를 내 컴퓨터에서 사용할 수 있도록 하려면 이 언어를 내 컴퓨터에 설치해줘야 한다.

우리가 영어를 배우려면, 매일 학원에 가서 영어공부하고, 안되면 유학가서 배워와야하지만 컴퓨터는 그냥 그 언어를 설치하기만 하면, 컴퓨터는 그 언어를 사용할 수 있다. 머 이정도 생각하면 된다.

https://www.python.org/downloads/

 

Download Python

The official home of the Python Programming Language

www.python.org

저 위 링크 들어가서 저 Download Python 3.9.2를 눌러주고 실행해서 설치해주자.

설치가 끝나면 시작버튼-검색-cmd 검색 후 엔터를 눌러 cmd창을 띄운 뒤 python이라고 입력해보자. 그 후 빨간 박스처럼 먼가 알아들었다는 것처럼 내용이 나오면 정상적으로 설치된 것이다.

2. PyCharm 설치

이번엔 PyCharm을 설치해야한다. 보통 파이참이라고 읽는다. 이건 멀까? IDE 라고 한다. Integrated Development Environment 라고하며 한국말로는 통합 개발 환경이다. 머 어렵게 들리는데, 어떤 컴퓨터 언어로 프로그램개발을 하기위해 코딩, 디버깅, 컴파일 등 여러 기능을 가진 프로그램이라고 알면 된다.

쉽게 말해서 우리가 요리를 하기위해서 머 칼도필요하고 오븐도 필요하고 가스도 나와야하고, 먹으려면 그릇도 있어야하고, 맛도 보려면 국자도 있어야하고 하듯이. 이런 요리라는 행위를 하는데 필요한 모든 기능이있는 곳이 주방이듯, 우리가 프로그램 개발하는데 필요한 모든기능이 있는 프로그램을 IDE라고 부르는 것이다.

보통 Java 에서는 이클립스, 인텔리제이를 많이 쓰고, C는 Visual Studio, 파이썬은 파이참을 많이 쓰는것 같다. 이처럼 언어별로 주력으로 쓰는 IDE들이 있으니 알아보고 쓰면 된다.

https://www.jetbrains.com/ko-kr/pycharm/

 

PyCharm: JetBrains가 만든 전문 개발자용 Python IDE

지능적인 코드 완성, 즉각적인 오류 검사, 빠른 수정 등 다양한 기능을 갖춘 Python 및 Django IDE입니다.

www.jetbrains.com

위 링크에 접속해서 가운데에 있는 다운로드버튼을 눌러 설치해주고 실행해주자.

프로젝트 생성

자 실행하면 위처럼 창이 나올꺼다. New Project를 눌러주자.

빨간 박스에 프로젝트 이름을 써주자, 저 프로젝트 이름은 그냥 진짜 말그대로 내 프로젝트의 이름이다. 저기 적는 글자가 프로그램 실행했을때 나오는 글자가 아니니.. 맘편하게 써도 된다.

그리고나서 다른 설정 손댈 꺼 없이 Create를 눌러주자.

그럼 virtual environment 생성이라고 한 몇십초 정도 기다린다. 머 사양에따라서 몇 분이 될 수도 있다. 가상 환경이라고 해서 파이썬은 프로젝트마다 하나의 환경을 갖는다.

그 환경마다, 설치한 라이브러리 버전이 다를 수도 있고, 설치된 환경이 제각각이다. 여러 가상환경을 준비해놓고, 원하는 환경이랑 마운트해서 실행도 가능하다. 머 이런 특성을 가지고 있다는 것만 알고 넘어가면 될 것 같다.

자 위 화면처럼 뜨면 프로젝트 생성 완료다. 간단하게 화면 구성을 보자. 1번에는 리소스 파일들이 있다. 쌩으로 새로 만든 프로젝트이기 때문에 머 복잡한게 많이 없다 ㅎㅎ 1번 박스를 보면 기본적인 코드가 적혀있는 main.py파일이 있고 venv 폴더가 있다. 이 venv폴더는 아까 위해서 말했던 가상환경 폴더이며, 앞으로 라이브러리를 설치하거나 하면 저 폴더에 설치된다고 알고 있음 된다. 머...라이브러리를 뜯어볼 것이 아니면은 저 폴더는 열어볼 일이 없다.

우린 그저 main.py만 보면 된다 . 그 main.py에 대한 코드는 2번 화면에 나와있다.

자 코드를 보면 간단하다. print_hi라는 함수가 정의되어 있고, 아래 if 문에서 __name__이 __main__이면 아까 정의했던 print_hi라는 함수를 작동시킨다. 그 함수의 인자로는 PyChamr이라는 문자열을 줬고, 다시 함수정의를 보면 그 받은 인자를 Hi와 함께 출력시키는 구조이다.

 

쉬프트+F10을 눌러서 한번 실행해보자. 하단에 보면 Hi, PyCharm을 확인 할 수 있다. 다음편에서는 자동매매 시뮬레이터 GUI화면을 만들어보자.

반응형
반응형

근래 한달의 시간 동안 주식 자동매매 프로그램을 만들어봤다. 한달쯤 된건가? 요즘은 퇴근하고 잠이 많아져서 매일 작업한 것은 아니고 어쩔때 한 4~5시간 작업해보고를 반복했다.

시작 계기

그간 자동매매에 관심이 생겨서 좀 알아봤는데 찾아보니까, 보통 거래량이 많이 몰리는 종목을 API로 받아서 조건에 맞으면 매수한다거나.. 머 그정도가 다였다. 내 생각에는 이 방식으론 안될거라는 생각이 들었다.

나는 종목을 찾아주는 프로그램이 아닌, 한개의 우량주를 하나 정해놓고, 해당 종목이 하루동안 가지는 변동성에서 수익을 보면 되지 않을까? 생각을해서 바로 개발에 착수했다.

머 결론부터 말하자면, 이건 아무리 생각해봐도 안될 것 같아서 접었다. 접었다기 보다는. 다른 방식이 나을꺼같아서 다른 방법으로 개발을 해보려고 한다. 머 뼈대까지 다 개발하고 모델만 구현하면 되는거였는데 ㅋㅋㅋ.. 뼈대 개발한게 아깝기도 하고 지금 까지 개발했던 것은 혹시나 필요한 사람도 있을 것 같아서 한번 정리해보려고 적는 포스팅이다 ㅎㅎ

파이썬을 선택한 이유

회사에서도 거의 자바만 만지고 있고 GUI 앱에서 주로 쓰는 C계열도 많이 만져봤지만 파이썬을 선택했다. 이런 저런 이유들이 있겠지만 파이썬을 선택한 가장 큰 이유는 대수 처리가 유연하다는 것, 그리고 자료형의 제약이 유연하다는 것, 자동매매쪽으로 정보가 많다는 점. 머 이정도가 있다. 사실 파이썬을 공부해보고 싶은 맘도 있었다 ㅎㅎ, 스크립트 언어라서 머 강력하면 얼마나 강력하겠어! 라고 생각했는데 써보니 기대 이상이어서 놀라웠다 특히.. 어떻게 이런식으로 자료형을 다룰까.. 혹시나하고 쳐서 돌려보면 오류 없이 쌩쌩 돌아가는거 보고 놀랐다.

개발 방향

그간 개발해본 결과물이다 ㅋㅋ.. 머 이상태로 끝은 아니고 지금 다른 아이디어가 생겨 그거 구현해보고 괜찮을 경우 이 폼에서 다시 시작할 생각이다. 지금까지 만들어 놓은게 사실 훈련 시뮬레이터라고 생각하면 된다.

보니까 키움 API는 모의투자 서버거 실제 운영서버 시간하고 동일하게 돌아간다 ㅋㅋ 즉, 내가 자동매매 모델을 만들고 돌려서 디버깅도 해보고 내 모델을 검증해봐야하는데... 장 시작할때인 9시는 이미 내가 출근해 있는 시간...

뭐.. 로그를 남겨서 확인해보는 방법도 있겠지만, 이건 내 성격하고 맞지 않는다... 직접 실시간으로 내가 눈으로 보면서 피드백을 하고싶은데 출근해야한다니!

그래서 생각했다. 과거 데이터를 받아서 내가 프로그램에 가상의 시간을 설정해놓고, 가상의 시간을 돌려 실제 운영환경처럼 만들고 그 위에서 모델을 검증하면되는거 아니야!?

그 결과물이 바로 위 사진이다. 보면, 트레이닝 인포에 종목 코드를 치고 Create를 하면 해당 주가가 Load 되고, 시작시간과 배속설정을 하고 Start 버튼을 누르면 가상 시간이 돌아가면서 실시간으로 그때의 주가를 찍으며 그래프가 진행된다.

이거 다 만들어놓고 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ 매매모델을 만들려고 유튜브도 보고, 수십번 저 시뮬레이터를 돌려봤지만 내가 생각한 모델은 불가능했다. 맞다.. 이렇게 쉬웠으면 누구나 다 이방법으로 수익을 내고 있었겠지...

내 아이디어는 이거였다. 지금 생각하니까 아이디어라고 하기에도 웃기다 ㅋㅋㅋ 그냥 그래프의 기울기를 보고 저점에 사서 고점에서 파는거다 ㅋㅋㅋㅋ

머.. 말은 간단한데 사실 더 생각은 있엇다. 각종 지수, 머... 주가에 영향을 줄만한 것들? 각종 인덱스, 산업지수, 환율, 등등 많은 값들을 불러와 매매강도를 정해 시장이 좋을 경우 적극적으로 행동하고, 시장이 안좋다고 판단할때는 몸을 사리는 머 그런 프로그램을 만들려고 했다.. 하지만... 아무리 생각해봐도... 그래프의 이전 기울기만 보고 1초 뒤의 미래를 예측하는건 무리였다......

주식이란게..머 재무재표도 탄탄한지...지수에 영향을 받았는지... 그리고 작전 세력... 외인, 거대 기관의 수익실현할 타이밍에도 주가가 움직인다. 그리고 뉴스로 보도되는 이슈들로 인한 사람들의 기대심리로 상승하거나 하락하거나.. 아주아주아주 수많은 요인에 의해서 주가가 움직이는데 몇시간 전 기울기를 보고 1분 후를 예측하는게 바보같다는 생각이 들었다.. ㅋㅋㅋ

아무튼 이 포스팅을 위해서 주식으로 수익낸다는 생각보다. 아 GUI 앱은 이렇게 만드는구나.. 정도 생각하면 될꺼 같다.ㅎㅎ 내 포스팅에 있는 다른글들과 마찬가지로 비전공자도 따라 올 수 있게끔 쉽게 써볼 생각이다 ㅎㅎ

반응형
  1. ><!! 2021.03.01 12:29

    일어나!!!!!

  2. 파이썬 관련하여 잘 봤습니다. 다음에 또 구경올께요. ㅎ

+ Recent posts