Quant

돈 파쇄기 개발 성공

시스템 트레이딩 2025. 3. 7. 23:35

어반자카파의 Get 노래를 들으면 독기가 기분좋게 충전되서 좋다.

한 번쯤 그냥 미친 사람처럼 해본다는 가사가 좋다.

 


최근 백테스팅, 모의투자 결과가 좋아서 돈 복사기를 개발했다는 착각에 빠져 살았다.

 

그러다 3.5 , 3.6 모의투자에서 예상치 못한 괴리가 발생해 박살이 나고,

모의투자로 테스트 돌렸단 점에 감사하며, 다시 겸손하게 돈 파쇄기를 돈 복사기로 고쳐보려 한다.

 

25-03-05

실제 투자 내역

종목 매수 시간 매수 평단 매도 시간 매도가
HJ중공업 09:10 9075 09:46 8968
LIG넥스원 10:21 301776 11:10 301737
포스코인터내셔널 11:42 60613 12:15 59165
한국가스공사 12:45 40837 12:50 39806
HJ중공업 12:52 9277 12:53 9180
레인보우로보틱스 13:02 355395 13:06 354920
HJ중공업 13:11 9078 13:12 9148
HJ중공업 13:42 9138 13:46 9093
포스코인터내셔널 13:50 60240 14:01 60048
클로봇 14:04   14:42  
포스코인터내셔널 15:02 61177 15:18 60984

모의 투자

종목 매수 시간 매도 시간
HJ중공업
- A097230
09:20 09:55
클로봇
- A466100
10:40 11:25
포스코인터내셔널
- A047050
11:50 12:00
한국가스공사
- A036460
12:45 13:35
포스코인터내셔널
- A047050
13:50 14:15
포스코인터내셔널
- A047050
15:00 15:20

 

 

Backtesting은 2달에 약 140%라는 수익을 냈는데, 모의 투자를 돌려보니 가끔 백테스팅과 다르다.

코드 실수로 싱크가 안 맞는 부분을 찾고, 그 외에 모의 투자에서 고려해야 할 부분을 생각해서 메꿔야 한다.

 

아래는 고려가 필요한 가설이다. 할 일이 많다...

가설 처리 프로세스는 아래와 같다.

 

가설 -> 데이터 로그 확인 -> 코드 변경 -> 백테스팅 -> 코드 업데이트 -> PR 정리

 

1. Trading bot 로그 업데이트

- 코드 symbol 대신에 주식 이름 명시. 실시간 확인이 어려움

- 현재 종목에 속하는 테마 정보 명시

 

2. 매수 타점 세분화 필요

- 백테스팅은 매수 시점에 호가와 무관하게 모두 매수한다고 고려하지만, 실제는 그렇지 않다.

 

3. 테마 선정 로직 고도화

- 하드코딩

- LLM 활용

- 테마 선정 수식 업데이트

- stock_list 순위 가중치 추가

 

4. Trading bot 코드 오류 확인

- 일일 데이터가 정확히 time 기준으로 sorting 되었는지 확인 필요

- 이전 종목 관리 데이터가 shallow copy 되었는지 확인 필요 (이상 없음)

 

5. Trading bot latency 고려

- 백테스팅은 5분봉 단위로 5분 데이터 확인

- 매수 로직 조정

 

 


Problem1. 데이터 무결성 확인

- 백테스팅  시, 분봉이 이상한 차트 발견

- util 함수에 sorting 로직 추가하여, dataframe 생성 시 모두 sorting 되게 처리함

 

 


Problem2. 테마 선정 로직 고도화

3.6 매매의 주요 테마는 '가스관사업'이었지만, '4차산업 수혜주' 테마와 내가 계산한 식의 수치가 비슷해, 대장주가 계속 바뀌어 매매에 큰 영향을 주는 이슈가 있었음.

 

매매의 시작이 되는 테마 선정은 수식 계산 고도화는 중요한 문제다.

시의성을 가진 테마를 구분하기 위해 고민한 방법은 아래 3가지다.

 

1. 하책: 하드코딩으로 시의성이 없는 매매는 거래 금지한다.

- 장점: 코딩이 쉽다.

- 단점

     - 손실이 난 이후에 수동으로 처리해야한다. 소 잃고 외양간 고치는 격

     - 자동화가 아니게 되고, 계속 시장 테마를 파악해야 한다.

 

2. 중책: LLM을 활용해서 시의성을 가진 테마를 구분한다.

- 장점: Scoring 최적화 안 해도 된다.

- 단점

     - 개발 난이도가 매우 올라간다.

     - ML을 사용 안 한 이유가 재현 불가능한 블랙박스 영역이 생겨서인데 쓰기 싫다.

 

3. 상책: 수식을 개선한다.

- 장점 : 로직 코드만 변경하면 된다. 

- 단점 : 최적화 식을 찾기까지 백테스팅이 꽤 필요하다.

 

상책으로 간다.

현재는 상승분 평균 중 최고값을 당일 테마로 판단했지만,

테마가 겹치는 종목이 많으며 & 특정 종목만 높게 상승한 경우 테마가 형성됐다고 보기는 어렵다.

수식에 표준편차를 반영한다.