Hamdy Tabsissi
한국어

트레이딩 실험실 실험 환경 개인 프로젝트

실제 돈 없이 투자 규칙을 정직하게 검증하다

과거 시장 데이터로 간단한 투자 규칙을 시험하는 작은 도구입니다. 결과를 속일 수 없고, 실제 주문도 낼 수 없도록 만들었습니다.

필요

과거 데이터로 투자 전략을 시험하면 결과가 화려해 보이기 쉽습니다. 말은 하지 않지만, 당시에는 아무도 알 수 없었던 정보를 쓰기 때문입니다.

아이디어

전략이 아니라 함정을 중심으로 실험실을 만드는 것입니다.

만든 것

  • 어떤 날의 종가로 계산한 규칙은 그다음 날 수익률에만 적용합니다. 같은 날에는 절대 적용하지 않습니다.
  • 포지션을 바꿀 때마다 수수료 0.05%를 반영합니다.
  • 모든 규칙을 ‘처음에 사서 그대로 두기’와 비교합니다. 시장이 20% 오를 때 8%를 번 전략은 가치를 잃은 것입니다.
  • 두 가지 안전장치: 거래 주소는 모의 투자 환경으로 고정되어 있고, 코드는 읽기만 할 수 있어 주문을 낼 방법이 없습니다.

결과

  • 3Python 모듈
  • 453코드 줄 수
  • 11시험마다 계산하는 지표
  • 0낼 수 있는 주문 — 의도한 설계

아직 자동 테스트가 없고, 보여 드릴 수 있는 실제 모의 투자 키 실행 기록도 없습니다. 투자를 결정하는 도구가 아니라, 원리를 이해하기 위한 도구입니다.

화면으로 보기

도식: 과거 시장 데이터, 다음 날을 보지 않고 시험한 규칙, 그리고 ‘사서 보유하기’와의 비교

배운 점

과거 데이터로 조합을 충분히 많이 시험하면, 그중 하나는 늘 효과가 있었던 것처럼 보입니다. 시험의 한계를 아는 것도 결과의 일부입니다.

기술 세부 정보 기술 스택, 아키텍처, 설계 결정 — 기술 담당자용

기술 스택

  • Python
  • Streamlit
  • pandas
  • NumPy
  • requests
  • Alpaca API (모의 투자)

작동 방식

  • D일 종가에 계산한 신호는 D+1일 수익률에 적용합니다. 포지션 변경마다 0.05% 비용을 반영하고, 항상 ‘사서 보유하기’를 기준선으로 비교합니다.
  • 시험할 수 있는 규칙은 두 가지 — 이동평균 교차와 직전 고점 돌파 — 이며, 미국 주식의 1~5년 치 일별 가격을 사용합니다.
  • 거래 API 기본 URL은 Alpaca의 paper-api 모의 환경으로 코드에 고정되어 있습니다(설정 불가). 클라이언트는 읽기 전용이라 주문 기능이 없고, 키는 환경 변수에서만 읽습니다.
  • 데이터가 없을 때(키 없음, 401/403, 요청 한도 초과) Streamlit 화면은 기본값 숫자 대신 이유를 보여 줍니다.
  • 알려진 편향: 진입 가격을 다음 날 시가가 아니라 신호가 나온 날의 종가로 계산하므로, 장 마감 후의 가격 차이가 포함됩니다.

아직 부족한 점

  • 아직 자동 테스트 없음
  • 투자 도구가 아님