전략 최적화 (2)
장이 어지럽다. 특히 코인의 경우 거시 경제보다 정치적 이슈로 움직이는 것이 느껴지고,
호가도 봇이 개입하는 것이 이제는 눈으로 보일 정도라 이전과 다른 것이 체감된다.
시스템 트레이딩 개발 초기에는 black box 영역을 없애고 백테스팅의 기능을 최대화 하고자 ML을 제했지만,
Multi Agent의 보급화로 아키텍트 및 코어 기술의 변경이 고민된다.
2025-04-15
동관스틸, 와이즈넛, 넥스틸
종목을 골고루 손절가를 맞아 -9%를 묵직하게 맞은 날이다.
현재 내 트레이딩 직관과 이를 수치화하는 코딩 능력으로는 피할 방법이 안 보인다.
올라갈 것 같으면서, 내려갔으니까.. 다행인건 손절가를 지정한 덕에 덜 맞았다.
동관스틸은 주가가 1650원대라 주가 5천원 필터링을 통해 제외했다 치더라도,
아직은.. 모르겠다. 거래량을 봐야하나? 나름 눌림목에 진입한거 같았고, 반등을 노려볼만한 각이었다.
-9% 에서 3%p 증가해서 -6% 맞은 걸로 일단 만족한다.
추가로 고려할 수 있는건 뭘까? divergence? volume?...
일단 수익률 /승률은 증가했다.
20 -> 27%
총 거래 수: 45.0
총 순수익: 27,037,780 원
📊 총 수익률: 27.04%
✅ 승률: 40.00%
2025-04-29
[■■■■■■■■■■■■■-------] 21/32 - 2025-04-29
테마 변경 횟수: 26
대장주 변경 횟수: 7
테마 리스트: ['비만치료제', '전력설비', '치매', '원자력발전', '전력설비', '비만치료제', '전력설비', '비만치료제', '전력설비', None, '전력설비', '원자력발전', '전력설비', '비만치료제', '전력설비', '비만치료제', None, '비만치료제', '전력설비', None, '원자력발전', '수소차(연료전지/부품/충전소 등)', '원자력발전', None, '원자력발전', None]
대장주 리스트: ['A389470', 'A010120', 'A389470', 'A010120', 'A010120', 'A010120', 'A010120']
💸 잔고 : 116429700.0 -> 115150600.0
📊 수익률 : -1.10%
수익률도 경미하게 마이너스지만, 테마 변경 횟수 / 대장주 변경 횟수가 비정상적으로 많다.
직접 매매했다면 이따구로 안하니까 디버깅이 필요하다.
테마의 연속성이 끊기는 이유는 상위 거래대금 20~30개로 판단하고, 당일 순위권이 변경된다면 계산식이 트래킹 안 되는 문제로 사료된다.
주도 테마/주식 외에 정보는 불필요한가? 필요하다. 시스템 트레이딩의 특장점인 백테스팅 / 디버깅 / 전략 교체의 장점을 활용하기 위해 데이터를 남겨야한다.
계산로직을 변경한다. 상위 거래대금 데이터를 for문으로 도는 것은 필요시에 하고, 필요시에 전체 데이터에서 key 값을 기반으로 추출한다. 병행해서 하기에 백테스팅 및 계산식은 더 소요된다.
trade-off 관점으로 메모리/연산 속도를 희생해서, 정확성을 추구한다. 돈 벌어서 RAM 업그레이드하는 걸로 해결한다.
코드를 변경했고, 테마 변경 횟수가 28- >22로 줄었지만 유의미한 인사이트는 얻지 못했다.
5분 전 데이터만 참조해서 그러한가? 시간대별로 dict로 관리해서 동일 테마 직전 데이터를 조회해야 하는가? 그러면 메모리가 얼마나 빠개질 것인가?...
확신 없는 추론에 리소스를 쏟는 것은 오버헤드라는 생각으로 귀결된다.
차트를 봤을 때 거래에 카운팅은 되지만 거래는 없었을 것이다. 무시한다.
대장주로 트래킹은 됐지만, 매수/매도는 하지 않았다.
주로 매수/매도를 했던 종목인데, 샀팔샀팔을 했더라도 합리적이고 잘했다.
굳이 튜닝은 안해도 될 거 같다.
수익률 / 승률은 미묘하게 상승했다.
디버깅 관점에서 유의미하니 변경 내용을 반영한다
총 거래 수: 47.0
총 순수익: 27,540,480 원
📊 총 수익률: 27.54%
✅ 승률: 40.43%
2025-05-14
[■■■■■■■■■■■■■■■■■■--] 29/32 - 2025-05-14
테마 변경 횟수: 11
대장주 변경 횟수: 11
테마 리스트: ['지능형로봇/인공지능(AI)', None, '로봇(산업용/협동로봇 등)', '지능형로봇/인공지능(AI)', None, '지능형로봇/인공지능(AI)', '태양광에너지', '밸류업(25년 기업가치 제고계획 발표)', '코리아 밸류업 지수(Korea Value-up Index)', '태양광에너지', '로봇(산업용/협동로봇 등)']
대장주 리스트: ['A056080', 'A459510', 'A056080', 'A009830', 'A322000', 'A009830', 'A475150', 'A009830', 'A475150', 'A322000', 'A459510']
💸 잔고 : 125650280.0 -> 124317080.0
📊 수익률 : -1.06%
테마 / 대장주 변경이 매우 잦으면서 손실을 본 날이다.
결과론적으로 분석을 하면,
1. 지능형로봇 / 로봇 테마를 장초에 매매하고 쭉 들고 갔어도 굳
2. 태양광 에너지로 스위칭을 해서 들고갔다면 베스트
문제를 어떻게 규정할 것인가...
- Q1. 이전 분석에서 파악한 문제와 일맥상통하다. 어떻게 테마의 영속성을 보장할 것인가?
- Q2. '로봇(산업용/협동로봇 등)' 테마와 '지능형로봇/인공지능(AI)'의 테마를 동치시킬 수는 없는가?
- A1. 테마 영속성을 위해 이전 테마 점수를 그대로 유지하는 로직을 추가하니, -10% 이상 발생하는 일자가 발생한다.
수익성도 많이 내려가서 이건 패스...
- A2. 테마의 이름을 어떻게 처리할 것인가?
- 다행히 python language 이기에 string 처리는 쉬울 것 같지만. 어떻게?
- keyword 추출? 대신증권 API / InfoStock API에서 어떻게 제공해줄 줄 알고?
- LLM 추가? 의존성 추가 & 백테스팅 불가...로 패스...
- GPT와 상담하고 포기한다.
주도 테마 변경은 직관적으로 떠오르는 것이 없어 포기하고, 주도 대장주 변경에 집중한다.
한화솔루션 / HD현대에너지솔루션 모두 동일한 테마로 보이는데,
12:01에 일시적으로 HD현대에너지솔루션이 대장주가 되어 매도를 했다.
결과론적으로 보면 HD현대에너지솔루션을 처음부터 샀다면 상치고 좋지만,
현재 로직의 변경을 최소화 하는 선에서 수익을 극대화하기 위해 한화솔루션을 주도 테마로 파악하는 로직으로 가중치를 변경한다.
가중치를 변경했지만,
수익률 / 승률은 낮아지고 최적화된 값을 찾지 못했다.
변경한다 하더라도 테마 / 대장주 변경 횟수가 11 -> 9 가 된 것이지 드라마틱한 변경이 없으므로 매수/매도 로직으로 해결한다.