쌩양파 2025. 6. 1. 09:29

쌩양파 입니다. 

오랫동안 주식이나 코인을 하는 대부분의 유저들은 아마 한번쯤은 생각해 봤을...자동 매매 프로그램...

저도 오랫동안 시도해 보려도 관련 책도 사서 읽어보고, 책을 따라서 이런저런 파이썬 코드들을 만지작 거리다가, 그만두기 일쑤였네요....회사일에 바쁘고 생활에 바쁘다 보니 한동안 뇌 한 구석에 쳐박아 두었던 그 생각들이 최근 AI 를 이용한코딩을 하기 시작해 보면서, 다시금  스믈스믈 뇌를 간지럽히기 시작하네요...이 프로그램이 정말 투자에 도움이 될것인가에 대한 생각은,,, 글쎄요.. 입니다...다만 주말에 휴대폰 보면서 하루종일 누어있느니, 이런게 더 재밌어서 해보는 정도라고 보면 될듯합니다. 이걸하면서 다른 무언가를 배우는 기회가 될수도 있지 않을까 하는 것도 있고요....

1. 시작은 늘 단순하고 간단하다.

시작은 늘 아주 간단한 물음으로 시작하게 됩니다. 제미나이에게 물어보는 거죠...

 

"파이썬으로 코인 실시간 자동매매 프로그램을 만들어 보고 싶은데, 업비트 데이트레이딩용 3분봉으로도 가능할까?"

 

그러면, 제미나의 답변은 늘 친절하고, 이것 저것 많다..

코인자동프로그램 질문하기

 

 

그럼 살짝 더 궁금한것으로 물어보고...ㅋㅋㅋ

 

2. 그리고 질문

딥러닝

 

음...갑자기 전문용어 나온다..ㅋㅋㅋㅋ

 

3. 그리고 계속되는 질문과 대화

그 후로 이것저것 계속 물어본다...질문을 어떻게 하면 제미나이가 프로그램을 만들어줄지를...

이렇게 한참을 제미나이와 대화를 하고 필요한 사항들을 정리해서 요청을 정리해 보았다..

4. 정리 (AI에게 요청할 문구)

'''----

업비트 3분용 데이트레이딩 자동 매매 프로그램을 만들어 보고 싶어요. 업비트 차트 데이터에 딥러닝 모델(LSTM, GRU, Transformer, CNN), 강화 학습을 적용하고 백테스팅 및 가상 트레이딩을 
수행하는 통합 파이썬 프레임워크를 파이썬으로 구축해보고 싶습니다.

프로젝트 개요 및 구성 요소

전체적인 파일의 컴퓨터 경로 : C:\Data\PY\Coin3, 파일실행에 필요한 파일은 생성하여 이 폴더에 넣어주고, 중요한 결과치나 데이터도 이 폴더에 저장하거나 불러오면됨.

1. 메인 UI

GUI화면을 만들어서,
Login section 버튼 추가(Login.py 실행) : 로그인 버튼 누르면 : C:\Data\PY\Coin3\apy_key.txt 에 있는 access_key = 뒤의 따옴표( " ") 와 secret_key =의 따옴표(" ") 안의 값을 가져와서 업비트 access 와 secret key 에 넣음.
Login 버튼을 누르면, 잔고가 Log termnal 에 나오도록 해주세요.
Select trading method section : 라디오 버튼 추가 : Simulaton 과 Real trading 메뉴가 들어 있어서, 둘중 하나 선택가능하도록
Selection Trading Method의 Simulatioin 아래에, simulation 기간(시작과 끝)의 년/월/일을 선택할수 있도록 GUI와 기능을 구현하고, 
Global section : 거래금액,  손절%,  익절% 입력창
Select Coin section : 라디오 버튼 추가 : 비트코인, 리플, 이더리움, 솔라나, 도지코인, 폴카닷 
데이터수집및처리 section : 버튼 : 데이터 수집 및 전처리 모듈(UbitData.py 실행),
모델선택 및 빌드 sectioin : Radio 버튼 시계열(LSTM, GRU, Transformer), 패턴 인식(CNN) 중 선택, 버튼(Building model ) Model.py 실행
학습 및 평가 모듈 section : 버튼(Learning model) LearnEval.py , 실행, 모델평가(손실, 정확도) 로그창에 표시.
강화 학습 Section : 버튼 Enhancing model , Ehance.py실행 (입력/메뉴 필요할경우 추가), 결과는 오른쪽 화면에 표시
백테스팅 Section : 버튼 Backtesting 파일명 : BT.py 실행 (입력/메뉴 필요시 추가), 결과는 오른쪽 화면에 표시, (하루24시간동안 시간에 따른 코인 그래프와 매수/매도 신호, 수익률, 승률, MDD 등 표시)
가상 트레이딩 Section : 버튼 가상트레이딩, 파일명 :VertuTrade.py 실행 (입력/메뉴 필요시추가), 결과는 오른쪽 화면에 표시
GUI 맨 아래에, log 를 볼수 있는 터미널 창을 만들어줘

2. Login (업비트 로그인) (파일명 : Login.py)

3. 데이터 수집 및 전처리 모듈 (파일명 : UbitData.py)

업비트 3분봉 데이터 수집 (Upbit API)
기술적 지표 계산 (RSI, 스토캐스틱, MACD, 볼랜저 밴드, 변동성돌파, 등등)
데이터 정규화, 시퀀스 생성 등 딥러닝 모델 입력 형태로 전처리

4. 모델 선택 및 빌딩 모듈  (파일명 : Model.py)

사용자가 시계열(LSTM, GRU, Transformer), 패턴 인식(CNN) 중 선택
선택된 모델 아키텍처 정의 및 빌드

5. 학습 및 평가 모듈  (파일명 : LearnEval.py)

선택된 모델 학습
학습된 모델 평가 (손실, 정확도 등)


6.강화 학습 에이전트 모듈 (파일명 : Ehance.py)

환경(Environment) 정의 (시장 상태, 보상 함수)
에이전트(Agent) 정의 (DQN, PPO 등)
학습 및 시뮬레이션

7.백테스팅 모듈 (파일명 : BT.py)

시뮬레이션 환경 구축 (가상 잔고, 수수료, 슬리피지 반영)
모델 예측 또는 강화 학습 에이전트의 행동에 따라 매매 시뮬레이션
결과 분석 (총 수익률, 승률, MDD 등)

8. 가상 트레이딩 모듈 (실시간 연동 고려) (파일명 :VertuTrade.py)

업비트 실시간 데이터 스트리밍 (WebSocket)
학습된 모델 또는 에이전트의 실시간 예측/행동 기반 매매 신호 생성
가상 매매 실행 (실제 API 연동 전 테스트)

추가 고려사항
3분봉 데이터의 적합성: 3분봉은 단기 트레이딩에 적합하며, 데이트레이딩에 충분히 활용 가능합니다. 하지만 시장 소음(noise)이 많으므로, 기술적 지표와 딥러닝 모델이 이를 효과적으로 필터링해야 합니다.
강화 학습: DQN을 사용했으나, PPO나 A2C와 같은 다른 알고리즘도 고려해볼 수 있습니다.
실시간 트레이딩: WebSocket을 사용한 실시간 데이터 스트리밍이 구현되었으나, 실제 API 호출 시 네트워크 지연을 고려해야 합니다.
결과 저장: 모든 데이터와 모델은 C:\Data\PY\Coin3의 하위 폴더에 저장됩니다.
백테스팅 차트: 백테스팅 결과는 GUI의 오른쪽 창에 차트로 표시되며, 매수/매도 신호를 포함합니다.

 

------ '''

 

5. 코드 실행

AI(제미나이) 에게 코드 받아서 Visual Studio 에 가서 실행을 해봅니다.

아주 그럴싸한 프로그램의 껍질이 만들어 졌다....

하지만...이때까지는 몰랐다...앞으로의 고난을..

프로그램 실행화면

 

 

To be continued...