들어가기전에
매몰비용이라는 말이 있습니다. 경제학에서는 '콩코드 효과'라는 말이 있습니다. 미국의 보잉사는 1970년대에도 항공기 제조사중 최고였다고 합니다. 이에 영국과 프랑스는 오로지 미국 보잉을 이기기 위한 싸움을 시작합니다. 그리고 태어난 비행기가 콩코드기 였습니다. 마하2의 속도를 최초로 돌파한 민간 항공기 였을 겁니다. 하지만 앞에서 보는 것보다 뒤로 깨지는 돈이 상당한 그런 사업이었나 봅니다. 사업이 계속 될 수록 투자자들에 얼굴에는 검은 먹구름이 끼고 있었죠. 그리고 콩코드 비행기에 사고가 발생합니다. 콩코드는 보잉의 탑승료보다 훨씬 비싼 비행기여서 일반은 잘 안탑니다. 사고로 유명인사들이 많이 죽게 됩니다. 이로 인해 콩코드 프로젝트는 끝이 납니다. 그 사고가 없었다면 더많은 사람이 죽었을지도 모릅니다.
일단 만약 이 글을 읽는 분이 이 프로젝트를 시작하시고자 한다면 위의 콩코드 효과를 걱정하셔야 할겁니다. 그러나 시작했다면 뒤는 돌아 보시면 안됩니다.
오늘은 개발 환경을 셋팅하도록 하겠습니다. 일단 그래픽카드가 하나 있어야 합니다. 더이상 CUDA는 RTX 10xx대 보더 미만을 지원하지 않습니다. 최소 RTX 1030보더 이상은 구매를 해야한다는 말입니다. 다행히 저가 컴구매자를 위한 저가 모델이 아직 생산되고 있습니다. 최소한 보드의 메모리는 6GB 이상이 필요합니다. 그렇지 않으면 DQN(CNN)모듈이 구동하는 순간 RUNTIME 오류가 발생하고 멈추게 될겁니다. 일단 저희 Lib는 차트를 그릴겁니다. 메모리상으로만 그리고 실제 화면으로 출력 되지는 않을 겁니다. 이 화면의 사이즈는 500 x 700 입니다만 이 사이즈의 메모리도 Pytorch는 처리가 불가합니다. 정확하게는 cuda lib입니다만 바로 memory allocation runtime error가 발생합니다. 내용을 자세히 읽어보시면 gpu 카드의 실메모리량이 부족하여 데이타를 처리할 수 없다는 내용입니다. 그 이유로 차트를 다시 100 x 140으로 축소를 합니다. 나중에는 사이즈를 키울거지만 지금은 이게 최선인것 같습니다. 먼저 ndividia에 회원 가입이 필요합니다. 구글아이디로 가입하는 것이 가장 좋을것 같습니다. ndividia 홈페이지에서 download center로 이동하여 cuda 최신 버전을 다운 받습니다. 13이나 14던 상관은 없습니다. cuda의 설치가 완료되었다면 python 버젼을 선택해야 합니다. 혹시 openAi사의 retro gym을 경험하고자 한다면 python 3.7버젼을 추천합니다. 일단 retro gym을 경험해 보시면 프로그램을 어떻게 해야하는지 감이 옵니다. 어떤 책에서는 강화학습을 env(환경)과 agent(게임을 실행하는 프로그램)으로 나누는 데 retro gym을 보면 python프로그램 자체가 agent가 되고 env는 openAi에서 제공해 준다고 보시면 됩니다. agent를 만들어 게임을 깨는 내 프로그램을 보면 대단하다고 혼자 기쁘하실지 모르지만 진짜는 현실의 상황을 env로 만드는게 진짜구나 하는 생각을 하게 됩니다. 즉 retro gym을 경험하시면 진짜는 DQN이 아니라 env를 어떻게 설계하고 만들지 입니다. 유튜브에 보시면 카이스트 출신의 혁펜다임 채널을 보시면 이론은 쉽게 설명하는 영상을 볼 수 있습니다. 보고 나시면 현실을 강화학습으로 바꾸는 과정의 진짜 중요한 부분은 env라는것을 금방 눈치 챌 수 있습니다. 그러나 다행히 의외로 주식 프로그램은 env 제작이 그렇게 어렵지 않습니다. 앞으로 돌아가서 python 3.9 나 3.10을 사용하면 안되는 이유는 retro gym은 3.9이상에는 실행조차도 안됩니다. 책은 Do it시리즈 중 '강화학습 입문'을 추천 드립니다.( https://ebook-product.kyobobook.co.kr/dig/epd/ebook/4801163032527) 3장의 Buruto force 방법을 보시면 됩니다. 일단은 agent의 개념을 이해하는게 중요합니다. cuda가 다 설치 되었다면 pip와 numpy를 업그레이드합니다
python -m pip install -U pip
python -m pip install -U numpy
torch, torchvision만 있어도 충분하지만 필요하다면 torchaudio를 설치합니다. (https://pytorch.org/get-started/previous-versions/) 이때 torch repository site에 가시면 더 많은 whl(pip install file)이 존재하는것을 보실 수 있습니다. pip에 권한 문제가 생기거나 위치 문제 또는 lib 위치 문제가 발생한다면 python -m pip로 설치 해보시기 바랍니다. 그럼 보통은 대부분 해결이 됩니다. 그리고 pip를 바로 실행할 경우 경로가 꼬여 다시 설치해야 하는 경우가 생깁니다. 그런 경우는 python -m pip install - U {모듈명}를 사용하시면 됩니다. 그리고 whl파일을 설치하는 경우 repository url을 알고 있다면 pip install {url}이렇게 해도 됩니다. torch의 경우 내가 설치한 cuda에 맞는 버젼을 찾아서 설치해야해서 꼭 repository url을 참조해서 설치 하시기 바랍니다. 다음은 ta-lib를 설치해야 합니다 windows 의 경우 구글을 검색하여 whl파일을 python 버젼과 일치하는 파일을 찾아서 설치하셔야 합니다. linux 버젼을 깔 경우는 레드햇 계열의 경우 yum(ubuntu는 apt 또는 apt-get)으로 python버젼과 동일한 python-devel 을 설치해야 하고 gmake와 gcc, g++을 설치 해주셔야 합니다. 설치할 python의 whl파일을 검색하여 버젼과 맞는 repository url을 복사하여 pip문 끝에 붙여 줍니다. 기타 pandas나 다른 util은 쉽게 설치가 되므로 python을 실행해보고 에러유형을 보고 추가하면 됩니다. 다음 장에서는 데이터 수집과 마켓 클래스에 대하여 소개해 드리겠습니다. env의 첫 관문입니다. 강화학습이 궁금하신 분은 retro gym의 예제 하나를 실행해 보고 오시죠. OpenAi는 일론 머스크 돈으로 우리같은 사람을 위해서 만든 오픈소스 플랫폼이니 많이 이용하세요.
==> WSL 환경으로 변경하였으니 8장 WSL환경 이용바랍니다.
'python > 자동매매 프로그램' 카테고리의 다른 글
강화학습을 이용한 비트코인 매매프로그램(4)-LSTM의 주가분석 문제점 (1) | 2022.11.30 |
---|---|
강화학습을 이용한 비트코인 매매프로그램(3) - 데이터로 차트 그리기 (1) | 2022.11.28 |
강화학습을 이용한 비트코인 매매프로그램(1)-강화 학습으로의 전환 (0) | 2022.11.23 |
python Bitcoin 자동 매매 프로그램(8) - Upsert 구현 (1) | 2021.08.21 |
python Bitcoin 자동 매매 프로그램(7) - 파도타기 (5) | 2021.08.11 |