https://github.com/seokmin12/q-learning-stock-trade
Q Learning을 이용한 강화 학습 가상 주식 매매 인공지능
https://github.com/seokmin12/q-learning-stock-trade
machine-learning python q-learning reinforcement-learning stock-trading
Last synced: 5 months ago
JSON representation
Q Learning을 이용한 강화 학습 가상 주식 매매 인공지능
- Host: GitHub
- URL: https://github.com/seokmin12/q-learning-stock-trade
- Owner: seokmin12
- License: mit
- Created: 2022-08-26T05:31:01.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2022-08-26T05:33:14.000Z (almost 3 years ago)
- Last Synced: 2024-11-25T03:19:29.136Z (7 months ago)
- Topics: machine-learning, python, q-learning, reinforcement-learning, stock-trading
- Language: Python
- Homepage:
- Size: 401 KB
- Stars: 0
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
## Keras를 이용한 가상 주식 매매 인공지능
> 이 인공지능은 유명 딥러닝 유튜버인 Siraj Raval의 영상을 요약하여 정리한 [KerasKorea](https://github.com/KerasKorea/KEKOxTutorial/blob/master/22_Keras%EB%A5%BC%20%ED%99%9C%EC%9A%A9%ED%95%9C%20%EC%A3%BC%EC%8B%9D%20%EA%B0%80%EA%B2%A9%20%EC%98%88%EC%B8%A1.md)의 한국어 문서를 바탕으로 일부 수정, 추가하여 제작하였습니다.
### 라이브러리 다운로드Python 3.8 필요한 라이브러리를 설치하기 위해 `pip install -r requirements.txt`를 실행하세요.
### 활용할 코드와 데이터
원본 코드와 데이터는 [여기](https://github.com/llSourcell/Q-Learning-for-Trading)에서 확인할 수 있습니다. `Python 2.7.`로 쓰여 있습니다.
- `agent.py`: Deep Q Learning `에이전트`가 구현되어 있습니다.
- `envs.py`: 3개의 주식에 대한 거래 환경이 구현되어 있습니다.
- `model.py`: Q 함수로 쓰이는 Multi-layer Perceptron이 구현되어 있습니다.
- `utils.py`: 유용한 함수들이 포함되어 있는 파일입니다.
- `run.py`: 학습/테스트를 할 수 있는 메인 코드입니다.
- `requirement.txt`: 의존성 파일입니다. `pip install -r requirements.txt`로 필요한 라이브러리를 설치할 수 있습니다.
- `data/`: 데이터는 `data` 폴더 내에 있는 3개의 csv 파일을 활용합니다. 각각 IBM, MSFT, QCOM의 주가 데이터로, 2000년 1월 3일부터 2017년 12월 27일까지 5629 거래일의 데이터가 포함되어 있습니다. 이 데이터들은 [Alpha Vantage API](https://www.alphavantage.co/)를 활용해 받았습니다.
- `get_data.py`: 주식 가격을 csv파일로 다운받을 수 있습니다.### 코드 실행시키는 방법
- **Deep Q `에이전트`를 훈련시키려면**
`python run.py --mode train` 명령어를 실행합니다. 여러가지 추가 옵션이 있는데, 다음과 같습니다.
- `-e`, `--episode`: (기본값: 2000) 실행시킬 `에피소드`의 수를 정해줍니다.
- `-b`, `--batch_size`: (기본값: 32) `배치 사이즈`를 정해줍니다.
- `-i`, `--inital_invest`: (기본값: 20000) 초기 투자 금액을 정해줍니다.- **훈련된 모델의 성능을 테스트하려면**
`python run.py --mode test --weights ` 명령어를 실행합니다. `` 는 훈련된 모델의 `weight`가 저장된 경로입니다. 이 명령어를 실행하면 테스트 데이터 포트폴리오의 `에피소드` 당 가치 변화가 저장됩니다.