김덕륜과 함께하는 주식자동화 프로젝트(2024.12.14 ~ )
이 프로젝트는 한국투자증권 API를 활용한 자동 주식 거래 시스템입니다. 지정된 종목들을 자동으로 매수/매도하여 수익을 극대화하는 것을 목표로 합니다.
- 자동 매수/매도: 설정된 조건에 따라 자동으로 주식 거래
- 실시간 모니터링: Discord를 통한 실시간 거래 알림
- 거래 시간 관리: 주식 거래 시간(9:00-15:30)에만 거래 실행
- 토큰 자동 관리: API 토큰 자동 갱신 및 관리
- 포트폴리오 분산: 여러 종목에 자산 분산 투자
Auto_Stock/
├── main_program.py # 메인 프로그램
├── dependencies.py # 의존성 및 설정 로드
├── buy_stock.py # 주식 매수 기능
├── sell_stock.py # 주식 매도 기능
├── get_balance.py # 계좌 잔고 조회
├── get_stock_balance.py # 보유 주식 조회
├── get_current_price.py # 현재가 조회
├── get_target_price.py # 목표가 계산
├── get_access_token.py # API 토큰 발급
├── revoke_access_token.py # API 토큰 해지
├── send_message.py # Discord 메시지 전송
├── discord_bot.py # Discord 봇 기능
├── hashkey.py # API 인증 해시키 생성
├── stock_program.bat # Windows 실행 배치 파일
├── test.py # 테스트 코드
├── settings/ # 설정 파일들
│ ├── fake_config.yaml # 개발용 설정
│ ├── real_config.yaml # 운영용 설정
│ ├── token.yaml # API 토큰 저장
│ └── main.py # 설정 관리
├── data/ # 데이터 파일
│ └── report.csv # 거래 리포트
└── testing/ # 테스트 관련 파일들
- Python 3.7 이상
- 한국투자증권 계좌
- Discord 웹훅 URL
pip install requests
pip install pyyamlsettings/fake_config.yaml 또는 settings/real_config.yaml 파일을 다음과 같이 설정:
APP_KEY: "your_app_key"
APP_SECRET: "your_app_secret"
CANO: "your_account_number"
ACNT_PRDT_CD: "01"
DISCORD_WEBHOOK_URL: "your_discord_webhook_url"
URL_BASE: "https://openapi.koreainvestment.com:9443"Windows:
stock_program.batPython 직접 실행:
python main_program.pysymbol_list: 매수 희망 종목 리스트 (종목코드)target_buy_count: 매수할 종목 수buy_percent: 종목당 매수 금액 비율 (0.33 = 33%)
- 매수 시작: 09:00:05
- 매도 시작: 15:15:00
- 거래 종료: 15:29:30
기본 설정된 종목:
005930: 삼성전자035720: 카카오000660: SK하이닉스069500: KODEX 200
Discord를 통해 다음 정보들을 실시간으로 받을 수 있습니다:
- 거래 시작/종료 알림
- 매수/매도 실행 알림
- 계좌 잔고 정보
- 보유 주식 현황
- 에러 및 예외 상황
- 실제 거래: 이 프로그램은 실제 돈으로 거래하므로 신중하게 사용하세요.
- API 제한: 한국투자증권 API 사용량 제한을 확인하세요.
- 시장 위험: 주식 투자는 원금 손실 위험이 있습니다.
- 테스트: 실제 거래 전에 충분한 테스트를 진행하세요.
- 토큰 만료: 프로그램이 자동으로 토큰을 갱신합니다.
- 거래 시간 외: 거래 시간(9:00-15:30)에만 거래가 실행됩니다.
- 잔고 부족: 충분한 현금이 있는지 확인하세요.
거래 결과는 data/report.csv 파일에 자동으로 저장됩니다.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'Add some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request
이 프로젝트는 MIT 라이선스 하에 배포됩니다.
프로젝트 관련 문의사항이 있으시면 이슈를 생성해 주세요.