본문 바로가기
{재테크}/주식

🧠 프로그래머의 재테크 공부: 주식편 3화

by 탱타로케이 2025. 10. 23.
반응형

3화. 조건문으로 투자하기 — 감정보다 로직

“오늘 주가가 오를까 떨어질까?”
초보 투자자가 가장 자주 하는 질문이다. 하지만 프로그래머라면 이렇게 바꿔야 한다. “오늘 나의 조건이 충족됐는가?”

주식 시장은 논리로 움직이지 않는다. 그럼에도 불구하고, 우리는 그 안에서 논리를 찾아야 한다. 그게 바로 조건문 기반 사고다.

🧩 감정으로 움직이는 시장, 로직으로 반응하는 나

사람은 본능적으로 감정에 반응한다. 떨어질 땐 두렵고, 오를 땐 들뜬다. 문제는 시장이 그 감정을 역이용한다는 것이다.

그래서 프로그래머는 다르게 생각해야 한다.

“감정은 예외 상황이다. 예외는 처리하면 된다.”

즉, 감정이 아닌 데이터로 행동하는 규칙을 세워야 한다. 이 규칙이 바로 ‘투자 알고리즘’의 기본 문법이다.

⚙️ 조건문 기반 투자 전략의 기본 구조

우리가 코드를 짤 때는 항상 이렇게 시작한다.

 if 조건: 실행 else: 대기 

투자도 똑같다.

 if rsi < 30 and cash > 0: buy_partial() elif rsi > 70: sell_partial() else: hold() 

위 코드는 간단하지만, 매우 중요한 원칙을 담고 있다.

  • RSI(Relative Strength Index): 시장의 과열과 침체를 수치로 표현한 지표. - RSI 70 이상 → 과매수 (가격 과열 가능성) - RSI 30 이하 → 과매도 (가격 저평가 가능성)
  • buy_partial(): 한 번에 다 사지 않고, 일정 비율만 매수.
  • sell_partial(): 일부 익절로 감정 폭발 방지.

이 단순한 조건문 하나로도, ‘충동 매수’와 ‘패닉 매도’를 상당히 줄일 수 있다.

💡 프로그래머의 강점: “판단을 로직으로 고정시킨다”

감정은 순간적이지만, 로직은 재현 가능하다. 예를 들어, 같은 조건일 때 매번 같은 행동을 하게 만든다면 그건 이미 반쯤 자동화된 시스템이다.

내가 정한 규칙의 예시는 다음과 같다.

 # RSI가 30 이하이면 10% 비중 매수 # RSI가 70 이상이면 10% 비중 매도 # 거래 중엔 규칙 수정 금지 if rsi <= 30: buy_ratio = 0.1 elif rsi >= 70: sell_ratio = 0.1 else: buy_ratio = 0 

이 간단한 구조 덕분에 시장 변동성보다 내 감정의 변동폭이 줄어들었다.

“시장 예측은 어렵다. 하지만 내 행동은 통제할 수 있다.”

🧭 룰 기반 매매의 세 가지 원칙

조건문을 세울 때 반드시 지켜야 할 세 가지가 있다.

① 룰은 감정이 평온할 때 만든다

시장 폭락 중에는 규칙을 세우지 말라. 그건 불이 난 방 안에서 회로를 설계하는 것과 같다. 차분할 때 세운 룰이 진짜 내 투자 원칙이다.

② 룰은 장중에 바꾸지 않는다

프로그래머는 배포 중에 코드를 수정하지 않는다. 투자도 마찬가지다. 룰 변경은 장 마감 후, “코드 리뷰”처럼 진행한다.

③ 룰은 기록한다

규칙이 머릿속에만 있으면 결국 감정이 이긴다. 문서로 남기고, 실행 후 로그를 기록해야 진짜 데이터가 된다.

🧮 감정을 제어하는 코드, DCA(정기 분할 매수)

가장 실용적인 조건식 중 하나가 바로 DCA(Dollar-Cost Averaging, 정기 분할 매수)다.

 # 매주 월요일 오전 10시, 일정 금액 매수 if day == "Mon" and time == "10:00": buy(amount = fixed_value) 

이 방식의 핵심은 “타이밍을 예측하지 않는다”는 것이다. 프로그래머 입장에서는 자동 스케줄러(cron 같은 개념)를 돌리는 것과 같다.

감정 개입 없이 정해진 시간에만 매수하는 루틴을 만들면 시장과 싸우지 않고 시장과 함께 움직이게 된다.

감정의 타이밍이 아니라, 시스템의 타이밍으로 투자하라.

🔧 조건문 설계 실습 예시

간단한 전략을 직접 짜본다고 생각해보자.

 if rsi < 30 and price < ma20: buy_partial() elif rsi > 70 and price > ma20: sell_partial() else: hold() 
  • RSI: 감정 온도계
  • MA20 (20일 이동평균): 중기 추세선
  • 조건 중첩: 여러 지표를 조합해 노이즈를 줄임

이걸 백테스트하면 “언제 들어가고, 언제 나왔는가”를 객관적으로 볼 수 있다. 즉, 조건문은 감정을 숫자로 바꾸는 도구다.

🧠 정리 — 감정은 변하지만 로직은 남는다

사람의 감정은 시장보다 빠르게 변한다. 그러나 코드로 정의한 규칙은 흔들리지 않는다. 이건 단순히 매매 전략이 아니라, ‘나의 투자 성격’을 명문화하는 과정이다.

감정이 폭발할 때마다 코드를 떠올리자.

“if panic: stop()” “if greed: cool_down()”

이것이 프로그래머가 시장과 공존하는 방식이다. 시장 예측은 불가능하지만, 자기 통제는 언제나 가능하다.


📍다음 편 예고:
기록은 데이터다. 다음 화에서는 투자 로그를 남기고, 감정과 행동을 시각화하는 방법을 다룬다. “루프 안의 투자 – 기록이 최고의 알고리즘”

💡 요약 포인트 감정은 예외 처리, 룰은 메인 함수. 조건문은 감정을 제어하는 논리 구조다. DCA(정기 매수)는 자동 스케줄러처럼 작동한다. 시장은 통제할 수 없지만, 나의 반응은 코드로 통제할 수 있다.

728x90