주말에 놀러갔다가, 왜 프로젝트를 열심히 하냐고 물으신 분이 있다.
하다보니 관성이 붙었다라고 대답은 했지만,
왜 다시 열심히 하게 됐더라 생각을 하다가 1년 전에 뉴스를 본 게 떠올랐다.
은행 1원 인증 프로세스를 자동화하는 프로그램을 만들어서
일주일에 노리스크 10만원을 벌었다는 사나이의 이야기이다.
혼자 상상만 하고 친구들이랑 장난으로 애기하던 걸 진짜 실천한 사람이 있었다.
불법이 아닐지라도 멋진 일은 아니지만, 이 사나이의 결단력과 실천력에 감탄했다.
가끔 이 사나이가 생각나면 침대에서 폰 보고 밍기적거리다가도 일어나서 코딩을 하게 된다.
Filtering의 조건 1개를 제한 결과, 수익률은 늘었지만 전체 매매 내역에 영향을 주었다.
각 영향을 파악해, 손실 최소화 & 수익 극대화 전략을 정비한다.
필터링 조건에서 시가총액 기준을 줄여 매매할 수 있는 내역이 많아졌고, 총 수익률은 증가했다.
시가총액은 필터링 외에도 scoring 로직에도 업데이트하여, 매매 종목 선정을 더 고도화 하려 한다.
고도화는 종목 선정을 위한 Scoring 계산식을 튜닝하는 것인데, 직관 & 백테스팅의 반복으로 최적화를 해보려한다.
2024-11-28
- Total Trades: 6
- Winning Trades: 1
- Win Rate: 16.67%
- Total Profit: -2.80%
2번째 매매를 제외하고 모두 손실이다.
매매를 했던, 09:25 / 09:50 / 11:00 / 13:30 / 13:40 / 14:55 시간대에 어떤 종목이 고려대상이었고
어떤 결과로 종목을 선정했는지 체크한다. 분석 포커스는 언제 살 지, 팔 지 보다 무엇을 살 지에 맞춘다.
시간대 | Backtesting 종목 | Backtesting 종목 후보 | 매매 복기 |
09:25 | A063080 - 컴투스홀딩스 |
NFT - A063080: 컴투스홀딩스 |
![]() ![]() 아침 급등 이후, 꾸준한 하락 매수하지 말았어야 했다. How? - 고민 필요.. 현재 필터링 기준으로는 부족 - 라인 매매를 적용한다면? 괜찮지 않을까 ![]() 중요 매물대 뚫지 못하고 내려옴 |
09:50 | A047560 - 이스트소프트 |
모바일게임(스마트폰) - A063080: 컴투스홀딩스 - A047560: 이스트소프트 |
![]() 차트 안 이쁜 컴투스홀딩스가 아닌, 이스트소프트를 선정한 것은 좋은 판단. 매수/매도 타이밍 최적화로 수익 극대화를 할 수 있을 듯 하다. |
11:00 | A047560 - 이스트소프트 |
AI 챗봇 - A035020: 한글과컴퓨터 - A039980: 폴라리스AI - A047560: 이스트소프트 |
![]() 이스트소프트 손절가를 넘어 당일 고려 종목에서 제외 ![]() 위에서 순서대로, 이스트소프트/한글과컴퓨터/폴라리스AI를 % price 로 비교한 차트이다. 테마 선정 자체가 잘못되었다. 다른 테마를 선정했거나, 매매를 안 하는게 좋았다. |
13:30 | A012450 - 한화에어로스페이스 |
코리아 밸류업 지수 - A012450: 한화에어로스페이스 |
![]() 위가 고려아연, 아래가 한화에어로스페이스 13:30에는 고려아연이 필터링 됐지만, 13:40에는 필터링 풀림. 분봉 기준 필터링으로 사료됨. 변동성 측면에서 보면 고려아연을 매매했어야 하지만, 매수/매도 타이밍으로 손익을 극대화 할 포인트가 있어 보인다. |
13:40 | A010130 - 고려아연 |
코리아 밸류업 지수 - A012450: 한화에어로스페이스 - A010130: 고려아연 |
- |
14:55 | A010130 - 고려아연 |
- | - |
Insight
1) 라인 매매를 적용해서 필터링을 강화한다.
- 저항선 뚫지 못했다고 판단되면 필터링 추가
2) 매수/매도 로직 최적화로 손익 극대화
2024-12-05
- Total Trades: 5
- Winning Trades: 4
- Win Rate: 80.00%
- Total Profit: 4.51%
좋지만, 7.5% 수익률에서 줄어든 포인트를 찾아야 한다.
시가총액 기준 변경으로 filtering 기준이 완화되어, scoring 기준을 강화해야 할 것으로 사료된다.
시간대 | Backtesting 종목 | Backtesting 종목 후보 | 매매 복기 |
09:55 | A389020 - 자람테크놀로지 |
시스템반도체 - A309020: 자람테크놀로지 |
|
11:50 | A010130 | 코리아 밸류업 지수 - A010130: 고려아연 - A267260: HD현대일렉트릭 |
![]() 고려아연과 아래가 HD현대일렉트릭. 종목 선정 굳. |
12:35 | A010130 | - | - |
12:45 | A047560 | 4차산업 수혜주 - A047560: 이스트소프트 |
이스트소프트 시가 총액은 2,9000억 - 필터링 기준 3,000억 -> 1,500억 ![]() 이스트소프트를 그대로 뒀어도 상승은 했을 것. 그런데 하필 10분 사이에 생긴 음봉을 묵직하게 맞아서 기분이 별로일 뿐. - 10분 사이에 발생한 문제까지 세밀하게 조정하면 사이드 이펙트가 우려된다. |
13:00 | A010130 | 코리아 밸류업 지수 - A010130: 고려아연 - A267260: HD현대일렉트릭 |
- |
테마 변경 시, 너무 자주 바뀌는 것을 우려해 10분의 텀을 둔 것이 대응을 느리게 하고 있다.
단점도 있지만 장점이 명확해서 도입한 것이기에 보류한다.
Insight
1) 테마 선정 로직, Parameter Optimization 실행해보기
- 현재는 직관으로 인자, 수치를 지정한 상태
2024-12-11
- Total Trades: 2
- Winning Trades: 1
- Win Rate: 50.00%
- Total Profit: 0.5%
3.6% 에서 0.5%로 수익률이 2.1%p 감소했다.
시간대 | Backtesting 종목 | Backtesting 종목 후보 | 매매 복기 |
09:25 | A047560 - 이스트소프트 |
보안주(정보) - A047560: 이스트소프트 - A356680: 엑스게이트 |
![]() 엑스게이트는 장초에 상한가 찍어서 어차피 매매를 못하는 종목. 나이스 필터링 |
11:55 | A001470 - 삼부토건 |
건설 중소형 - A001470: 삼부토건 |
![]() 손절 이후 지속 하락. 나이스 손절. -> 당일 고가 저항선을 뚫지 못하고, 떨어짐. -> 라인 매매 적용 시, 손실 최소화 가능해보임 |
Insight
1) 라인 매매 적용 가능
- 당일 고가 저항선을 뚫지 못한 경우
2) 시가총액 기준 변경으로 인한 테마 변경
- 삼부토건 시가총액 2,400억 -> 주도주 변경됨
- 기존 매매에서는 이스트소트프로만 매매했으나, 변경된 필터링으로 매매 종목 변경됨
- Scoring 이후에도 추가 post filtering을 더하면 어떨까? (라인 매매)
2024-12-26
- Total Trades: 5
- Winning Trades: 4
- Win Rate: 80.00%
- Total Profit: 0.96%
6.8% 수익률에서 0.9%로 약 5.9%p 수익률이 감소했다.
기존 매매에서는 1번의 수익으로 묵직하게 갔으나, 변경된 필터링 로직으로 샀팔샀팔하다가 수익률이 줄었다.
해당 원인 분석에 포커스를 둔다.
시간대 | Backtesting 종목 | Backtesting 종목 후보 | 매매 복기 |
09:50 | A065350 - 신성델타테크 |
로봇(산업형/협동로봇 등) - A065350: 신성델타테크 - A160190: 하이젠알앤엠 - A466100: 클로봇 |
![]() 5분봉: 신성델타테크 - 자주색: 하이젠알앤엠 - 보라색: 클로봇 % price로 표시한 차트 ![]() 09:50 시점에서는 신성델타테크를 제외한 나머지 주식은 급락함. 당시 판단은 이게 맞음. 결과론적으로 보면 하이젠알앤엠을 09:50에 매매했다면 다시 반등했겠지만, 하따를 위해 계산식 변경은 과하다. - 거래대금, 상승률, 시가총액.. 을 다 봐도 신성델타테크가 대장주다. |
10:30 | A065350 | 로봇(산업형/협동로봇 등) - A065350: 신성델타테크 - A160190: 하이젠알앤엠 - A466100: 클로봇 |
- |
12:40 | A160190 | 로봇(산업형/협동로봇 등) - A065350: 신성델타테크 - A160190: 하이젠알앤 |
![]() A160190 - Score: 28.265491621810273 A065350 - Score: 28.2358385478358 정확히 이 부분에서 Scoring 로직의 부정확성으로 인해 빨래질을 당한 것으로 추정된다. ![]() 기존 매매 종목 신성델타테크를 계속 가지고 있었다면, 20분 후에 먹었을 상승분을 가벼웠던 하이젠알앤엠이 먼저 쏘면서 샀팔샀팔 한 것으로 사료된다. |
13:05 | A160190 | 로봇(산업형/협동로봇 등) - A065350: 신성델타테크 - A160190: 하이젠알앤 |
- |
13:15 | A065350 | 로봇(산업형/협동로봇 등) - A065350: 신성델타테크 - A160190: 하이젠알앤 |
- |
Insight
1) 가벼운 종목이 먼저 쏘고, 무거운 종목이 천천히 갈 수도 있다. Scoring 로직의 가중치 조정 필요
Scoring 최적화를 위한 케이스를 찾아서 만족스럽다. 눈알 빠질뻔했네..
'Quant' 카테고리의 다른 글
Backtesting Debugging (6) (0) | 2025.02.19 |
---|---|
Backtesting Debugging (5) (0) | 2025.02.18 |
Backtesting Debugging (3) (0) | 2025.02.15 |
Backtesting Debugging (2) (0) | 2025.02.15 |
Backtesting Debugging (1) (0) | 2025.02.13 |