본문 바로가기

주식 자동매매 개발기

[주식 자동매매 9] AI도 못 고치는 '매도 함수'의 늪: 자동매매, 생각보다 어렵다? ㅋ

안녕하세요! 주식 차트보다 파이썬 코드 창을 더 오래 들여다본 '방구석 코딩 퀸'입니다. ㅋ 제가 HTS의 답답함을 개선하려고 코딩을 시작했다고 말씀드렸었죠? 그런데 오늘 아주 제대로 벽에 부딪혔습니다. ㅋ 바로 제 매매 로직의 핵심인 '분할 매도 자동화' 때문입니다.

1. 2%~5% 구간 매도, 그게 그렇게 어렵니?

제 전략은 심플합니다. 수익률이 2%, 3%, 4%, 5%에 도달할 때마다 보유 물량의 20%씩 기계적으로 익절하는 거죠. ㅋ 감정에 휘둘리지 않으려고 만드는 로직인데, 이게 생각보다 구현하기가 까다롭더라고요. 요즘 핫하다는 **커서 AI(Cursor AI)**랑 제미나이한테 코드를 짜달라고 부탁해 봤습니다. ㅋ "야, 나 초보니까 알아서 잘 짜줘!" 하고 말이죠.

 

 

2. 커서AI(무료) VS 제미나이(유료)

 

커서AI

# [Cursor AI가 준 코딩]
# 수익률 계산
if buy_p > 0:
    profit_rate = (float(curr_p) - float(buy_p)) / float(buy_p) * 100
else:
    profit_rate = 0.0

# 각 %구간에 대해 20%씩 지정가 매도
for s in [2.0, 3.0, 4.0, 5.0]:
    if profit_rate >= s and s not in stock["achieved_steps"] and qty > 0:
        sell_qty = max(1, int(qty * 0.2))
        # 지정가 매도 - 지정가는 현재가로 가정
        self.send_order(self.acc_betting, code, sell_qty, curr_p, "00", f"{s}% 지정가 익절")
        stock["achieved_steps"].append(s)

 

제미나이 코딩

for s in [2.0, 3.0, 4.0, 5.0]:
    if real_profit >= s and s not in stock["achieved_steps"]:
        sell_qty = max(1, math.floor(qty * 0.2)) 
        
        print(f"💰 [베팅익절] {name} {s}% 달성! {sell_qty}주 시장가 매도 ㅋ")
        
        # 규격에 맞춰서 시장가(03) 매도
        self.send_order(self.acc_betting, code, sell_qty, 0, "03", f"베팅 {s}% 익절")
        
        stock["achieved_steps"].append(s)
        break # 한 번에 한 단계씩만 ㅋ

 

3. 왜 둘 다 내 마음에 안 들까? ㅋ

둘 다 그럴싸해 보이지만, 실전 사냥꾼인 제 마음에 쏙 드는 건 없었습니다. ㅋ 커서 AI는 지정가("00")로 던지라고 하는데, 급등락하는 시장에서 체결 안 되면 어떡할 거죠? ㅋ 반면 예전 코드는 시장가("03")라 체결은 확실하지만, 슬리피지(체결 오차) 때문에 제 수익금이 깎이는 게 아깝더라고요.

게다가 어떤 건 한 번에 모든 구간을 다 팔아치우려 하고, 어떤 건 물량 계산을 엉터리로 해서 소수점 주식이 발생하기도 합니다. ㅋ AI들이 똑똑하다고는 하지만, 실제 '사냥꾼'의 미세한 손맛까지는 아직 못 읽어내는 것 같습니다. ㅋ "이걸 내가 직접 수정해야 한다고?"라는 생각이 드는 순간, 자동매매의 길이 참 멀고도 험하다는 걸 깨달았습니다.

4. 결국은 '사람'의 로직이 우선이다

오늘 오전장에 매수한 쎄노텍육일씨엔에쓰에서 손절이 늦어 손실을 본 것도, 결국 이런 자동화 로직이 완성되지 않았기 때문이겠죠. ㅋ AI가 짜준 코드를 그대로 복사해서 붙여넣기만 하면 될 줄 알았는데, 결국 그 코드를 이해하고 제 입맛에 맞게 '튜닝'하는 건 오롯이 제 몫이라는 걸 배웠습니다.

올해 상반기 목표인 월 50만 원 수익을 위해선, 이 답답한 '매도 함수' 버그부터 잡아야 할 것 같습니다. ㅋ HTS 쓰기 답답해서 시작한 코딩인데, 이제는 AI랑 싸우는 게 더 답답해지는 아이러니한 상황이네요. ㅋ 그래도 포기하지 않으려 합니다. 이 코드 한 줄 한 줄이 결국 제 계좌를 지켜줄 방패가 될 테니까요! ㅋ


[오늘의 코딩 한 줄 평]

  • 커서 AI도 내 마음은 모른다. ㅋ
  • 자동매매는 '복붙'이 아니라 '무한 삽질'의 연속이다.
  • 20%씩 분할 매도 로직 완성하는 날, 삼겹살 파티 한 번 열겠습니다! ㅋ