제가 다운 받을 때는 설치 파일은 pycharm-community-2024.3.4.exe 이였고 용량은 570MB 정도 였습니다.
[다음]을 클릭합니다.
기본 설치 폴더로 [다음]을 클릭합니다.
이미지와 같이 체크를 변경하고 [다음]을 클릭합니다.
[데스크톱 바로가기 생성]은 바탕화면에 PyCharm 아이콘을 생성해주는 옵션입니다. [컨텍스트 메뉴 업데이트]는 마우스 오른쪽 버튼을 누를 때 PyCharm 관련 메뉴가 나타나게 해줍니다. [연결 생성]은 확장자가 py인 파일에 대해서 PyCharm으로 실행되도록 해줍니다.
[PATH 변수 업데이트]의 경우 PyCharm 의 bin 폴더에 있는 명령을 Windows 환경변수인 PATH 에 추가하는 것입니다.
이 것을 체크하면 Windows 명령 프롬프트에서 pycharm 이라고 치면 pycharm 을 실행 시킬 수 있습니다.
위 변수를 체크해도 되며 PyCharm 실행 시 바탕화면이나 Windows 메뉴에서 PyCharm 선택 후 실행해도 되기 때문에 저는 선택하지 않았습니다.
기본값을 변경하지 않고 [설치]를 클릭합니다.
설치에 시간이 걸립니다. 느긋하게 기다리세요. 커피 한잔 드셔도 됩니다. Anaconda 보다는 설치가 빠릅니다.
Python 으로 개발 시 메모장 등으로도 작성할 수 있지만 디버깅과 코드 수정 시에 많이 불편합니다. 그래서 통합 개발환경이라고 하는 IDE(Integrated Development Environment) 를 이용해 개발하는 편입니다. 파이썬 IDE 중에 인기가 높은 JetBrains의 PyCharm 을 사용하겠습니다.
국내 증권사 API 를 이용하기 위해서는 Python 32비트 환경이 필요하고 용량이 큰 데이터 처리를 위해서는 64비트 환경이 필요합니다. 그래서 가상 환경으로 32비트와 64비트를 만들겠습니다.
1) 64비트 가상 환경 만들기
Windows 검색에서 anaconda 라고 치면 Anaconda Prompt 가 표시됩니다.
마우스 우측 클릭 후에 관리자 권한으로 실행합니다.
2) 64 비트 패키지 다운로드 설정
conda config --env --set subdir win-64
현재 활성화된 Conda 환경(또는 새로 만들 환경)에 대해 win-64(Windows 64비트)용 패키지를 다운로드하도록 설정합니다. 기본적으로 Conda는 운영 체제의 아키텍처에 맞는 패키지를 가져오는데, 이 명령을 실행하면 강제로 32비트용 패키지를 설치하도록 합니다. --env 옵션을 사용하면 현재 활성화된 환경에만 적용되며, 글로벌 설정은 변경되지 않습니다. 만약 명령 실행 시에 다음과 같은 에러가 발생했다면 관리자 권한으로 실행이 되지 않고 일반 권한으로 실행이 된 것입니다.
CondaError: Cannot write to condarc file at C:\anaconda3\.condarc
Caused by PermissionError(13, 'Permission denied')
꼭 권리자 권한으로 실행하세요.
3) 가상 환경 생성
conda create --name py38_64 python=3.8
py38_64라는 새로운 Conda 가상 환경을 생성하고, Python 3.8을 설치합니다. 앞서 설정한 win-64 서브디렉토리를 사용하여 64비트용 Python을 설치합니다.
패키지 설치를 물으면 y를 입력하여 설치합니다.done 이라 표시되면 정상 설치된 것입니다.
4) 가상 환경 활성화
conda activate py38_64
위 명령 실행 후 명령 프롬프트 앞단의 (base) 가 (py38_64) 로 변경이 되면 정상적으로 가상 환경이 활성화 된 것입니다.
국내 증권사 API 를 이용하기 위해서는 Python 32비트 환경이 필요하고 용량이 큰 데이터 처리를 위해서는 64비트 환경이 필요합니다. 그래서 가상 환경으로 32비트와 64비트를 만들겠습니다.
1) 32비트 가상 환경 만들기
Windows 검색에서 anaconda 라고 치면 Anaconda Prompt 가 표시됩니다.
마우스 우측 클릭 후에 관리자 권한으로 실행합니다.
2) 32 비트 패키지 다운로드 설정
conda config --env --set subdir win-32
현재 활성화된 Conda 환경(또는 새로 만들 환경)에 대해 win-32(Windows 32비트)용 패키지를 다운로드하도록 설정합니다. 기본적으로 Conda는 운영 체제의 아키텍처에 맞는 패키지를 가져오는데, 이 명령을 실행하면 강제로 32비트용 패키지를 설치하도록 합니다. --env 옵션을 사용하면 현재 활성화된 환경에만 적용되며, 글로벌 설정은 변경되지 않습니다. 만약 명령 실행 시에 다음과 같은 에러가 발생했다면 관리자 권한으로 실행이 되지 않고 일반 권한으로 실행이 된 것입니다.
CondaError: Cannot write to condarc file at C:\anaconda3\.condarc
Caused by PermissionError(13, 'Permission denied')
꼭 권리자 권한으로 실행하세요.
3) 가상 환경 생성
conda create --name py38_32 python=3.8
py38_32라는 새로운 Conda 가상 환경을 생성하고, Python 3.8을 설치합니다. 앞서 설정한 win-32 서브디렉토리를 사용하여 32비트용 Python을 설치합니다.
패키지 설치를 물으면 y를 입력하여 설치합니다.done 이라 표시되면 정상 설치된 것입니다.
4) 가상 환경 활성화
conda activate py38_32
위 명령 실행 후 명령 프롬프트 앞단의 (base) 가 (py38_32) 로 변경이 되면 정상적으로 가상 환경이 활성화 된 것입니다.
설치 경로를 기본인 C:\ProgramData\anaconda3 -> C:\anaconda3 로 변경합니다. 변경을 하지 않아도 되지만 설치 된 패키지 확인 시에 경로가 적은 것이 편하므로 변경하도록 하겠습니다. C 드라이브에 용량이 적은 분들은 D 드라이브로 변경하셔도 됩니다. [Next] 를 클릭합니다.
기본값 그대로 된 상태에서 [Install]을 클릭합니다.
설치에 시간이 시간이 걸립니다. 느긋하게 기다리세요.
Install Complete 라도 뜨면 정상적으로 설치가 된 것입니다. [Next]를 클릭하세요.
python 으로 시스템 트레이딩 프로그램을 만들 계획입니다. PyQt 로 UI 를 만들 생각입니다. 주변에 자료를 찾아보니 관련 자료가 있는데 대부분 초기 UI 만 설계되어 있고 설명은 매우 부족한 편입니다. 기능과 더불어 어떻게 동작하는지 설명을 많이 추가할 생각입니다.
시스템 트레이딩을 만들려는 이유는 평소 회사일로 바빠서 주가를 제대로 확인할 수가 없었습니다. 특히 국내 주식의 경우 잠시 한눈을 팔고 있으면 오너리스크, 분할상장, 횡령, 한반도의 지리적 리스크 등 이슈가 끊임없이 나옵니다. 몇일 전에는 L모 주식을 샀는데 오너가 중복상장이 뭐가 문제냐 상장 후 주식을 안사면 된다고해서 주식이 많이 떨어졌습니다. 해당 발언 전에는 주가가 플러스였었습니다. 그날은 회사일이 바빠서 주가를 집에 퇴근 후 확인했더니 왠걸 주식이 폭락했습니다. 뭐지~ 뭐지~ 하면서 인터넷을 뒤지고 내용을 확인후에 알았습니다. 정말 그날은 기분도 안좋고 잠도 제대로 자지 못했습니다. 계속 시스템 트레이딩을 만들 생각만 했지 실천을 하지 못하고 있었습니다. 이대로는 안되겠다는 생각이 들고 뭔가 껍데기라도 만들어야겠다는 생각으로 시작하게 되었습니다. 한국 주식은 곳곳에 크레바스같은 것이 널려있습니다. 잘못 밟으면 끝장이다. 대응을 늦게 해도 끝장입니다. 계속적으로 살펴야 하고 낌세가 이상하면 바로 도망쳐야 합니다. 그런데 바쁜 회사생활을 하면서 계속적으로 주가를 확인할 수는 없습니다. 회사에 눈치도 보이도 계속 주식을 보고 있는 모습을 보이면 회사도 좋아할리가 없습니다. 시스템 트레이딩 프로그램을 JbTrader 라고 지은 이유는 그냥 이름에서 따온겁니다. 이름 이니셜에서 성을 제외한 이름 이니셜을 땄습니다. 너무 무성의 한 것 아닌각 생각할지 모르지만 우선 껍데기라고 만든다는 의미로 시작하게 됬습니다. 그리고 예전부터 시스템 트레이딩 프로그램을 만들고 싶다는 생각은 있었지만 계속 미루고 있었습니다. 뭐든 혼자하는 것 보다는 같이 하는 것이 좀더 실행력이 있는 것 같습니다. 식사도 혼자 있으면 대충 라면 이나 인스턴트 음식으로 때우게 되지만 식구가 같이 있으면 그래도 뭐라도 더 챙겨서 식사하게 되잖아요. 그렇습니다. 혼자 가는 것이 아니고 같이 간다는 느낌으로 자료를 공유하면서 만들면 좀더 실행력이 생기지 않을까하는 생각이 불현듯 들었습니다. 솔직히 주식 폭망이 동기를 자극했다고 할까요 고마워요~~ L모 회사 회장님~~ 당신이 그동안 못했던 내 시스템 프로그램에 대한 동기를 자극해줬어요~~. 고마워요~~ 한국시장~~ 불안한 개인 투자자의 마음에 역쉬~ 나 하는 안도감을 줬어요~~~. 대단해요~~ 한국시장에서 수익내시는 모든 분들~~ 이런 환경에서 수익을 내는 것이 더욱 대단하다고 느껴져요~~ 알았어요~~ 다시 한번 알았어요~ 한국시장에서 더더욱 바쁜 한국인은 수익내기 힘들다는 사실이요. 결심했어요~~시스템 트레딩 한번 만들어보겠어요. 아~~ 속이 후련하네요~ 산에서 야호~ 외친 기분이 드네요. 이건 뭐~~ 지극히 개인적이고 그럴 듯 안그럴 듯한 저의 생각이었습니다
코드는 github 에서 관리할 예정이며 각 chapter 코드는 독립된 예제 코드와 JbTrader 코드로 나뉠 것입니다 예제 코드는 첨부와 github repository 위치를 알려주고 각 chapter 별 JbTrader 코드는 tag 로구분할 것 입니다