코인 자동매매 백테스팅은 말만 들으면 어려워 보이는데, 오늘 만드는 건 진짜 단순합니다. 옛날 가격 CSV 하나 넣고 내 규칙을 돌려본 뒤 수익률이랑 자산 곡선을 보는 페이지예요. 완성되면 화면에 총수익률, 최대손실, 거래횟수, 그래프가 바로 뜹니다. 지난번 알림 만들기에서 한 발 더 가는 느낌이구요. 이제는 알림 받기 전에 내 규칙이 원래 어땠는지 먼저 볼 수 있거든요.
준비물은 Codex 하나면 끝
오늘은 Codex 하나만 씁니다. 공식 문서에 나온 것처럼 터미널에서 파일을 읽고, 고치고, 실행까지 한 번에 밀 수 있어서 이런 작은 앱에 잘 맞아요. CSV는 BTC나 원하는 코인 일봉 파일 하나면 되고, 없으면 예시 CSV까지 같이 만들어 달라고 하면 됩니다. 몰라도 괜찮아 그냥 붙여넣어.
Codex 공식 예시에도 CSV를 붙이고, 열을 먼저 확인하고, HTML 시각화를 저장한 뒤 브라우저에서 미리보는 흐름이 나오거든요. 오늘도 그 순서 그대로 갑니다.
여기부터 바로 만든다
1
첫 화면부터 띄우기
AI에게 보낸 프롬프트
@btc-day.csv 파일을 읽고 index.html 하나로 작동하는 코인 자동매매 백테스팅 페이지를 만들어줘. 먼저 CSV 열 이름을 확인하고, 시작돈 입력칸, 수수료 입력칸, 실행 버튼, 총수익률 카드, 최대손실 카드, 거래횟수 카드, 자산 곡선 그래프만 먼저 넣어줘. 전략은 아주 단순하게 최근 5일 평균보다 오늘 종가가 높으면 보유, 낮으면 현금으로 처리해줘. 결과 파일을 저장하고 바로 브라우저에서 열 수 있게 해줘.
왜 이렇게 시켰나: 첫 프롬프트에서 욕심내면 꼭 길어집니다. Codex 공식 문서도 파일부터 붙이고 열부터 본 다음 HTML 결과물을 저장하는 흐름이라 이대로 가는 게 제일 덜 꼬여요.
이렇게 나오면 OK: CSV를 넣자마자 카드 3개랑 그래프가 뜨면 됩니다. 숫자가 예쁘지 않아도 괜찮아요. 첫 화면만 떠도 반은 끝난 거예요.
⚠여기서 이렇게 하면 안 돼요: Step 1부터 전략 여러 개, 로그인, DB 저장까지 한 번에 넣지 마세요. 그러면 5분 안 첫 결과가 안 나옵니다.
2
규칙 두 개만 붙이기
AI에게 보낸 프롬프트
지금 페이지에 전략 선택을 두 개만 추가해줘. 1) 최근 5일 평균보다 위면 보유 2) 하루 3% 오르면 다음 날 진입하고 2% 빠지면 종료. 각 전략 밑에는 한국어 설명을 한 줄씩 붙여줘. CSV가 없을 때는 sample.csv를 내려받을 수 있는 버튼도 넣어줘.
왜 이렇게 시켰나: 코인 자동매매 백테스팅은 비교할 규칙이 있어야 재밌습니다. 그래야 어, 내가 생각한 규칙이 꼭 좋은 건 아니네 하는 순간이 바로 오거든요.
이렇게 나오면 OK: 전략을 바꿀 때 카드 숫자랑 그래프가 같이 바뀌면 됩니다. sample.csv 버튼까지 보이면 처음 따라오는 사람도 안 막혀요.
⚠여기서 이렇게 하면 안 돼요: 이름만 멋있는 규칙을 5개 넣지 마세요. 규칙이 많아질수록 뭐가 왜 바뀌는지 감이 안 옵니다.
3
AGENTS.md로 말투랑 숫자 고정
AI에게 보낸 프롬프트
프로젝트 루트에 AGENTS.md를 만들어줘. 규칙은 세 개야. 1) 화면 문구는 한국어로 짧게 2) 수익률이 좋아도 추천처럼 말하지 말기 3) 필수 지표는 총수익률, 최대손실, 거래횟수만 유지하기. 그 다음 이 규칙을 읽고 화면 문구를 다시 다듬어줘.
왜 이렇게 시켰나: Codex 공식 문서에 나온 AGENTS.md가 이런 때 진짜 좋습니다. 같은 작업을 다시 시켜도 톤이 덜 흔들리고, 숫자 자랑 모드로 새는 걸 막아줘요.
이렇게 나오면 OK: 최고, 필승, 무조건 같은 말이 사라지고 담백한 문구만 남습니다. 이 한 줄 차이로 결과물이 훨씬 사람 같아져요.
⚠여기서 이렇게 하면 안 돼요: AGENTS.md에 규칙을 너무 많이 적지 마세요. 세 줄에서 다섯 줄 정도가 제일 잘 먹힙니다.
4
숫자 실수만 다시 보게 하기
AI에게 보낸 프롬프트
이 앱을 로컬 코드 리뷰해줘. 확인할 건 세 개야. 1) CSV 열 이름이 Date Open High Low Close가 아닐 때 안내가 뜨는지 2) 수수료가 비어 있을 때 기본값이 들어가는지 3) 날짜가 뒤죽박죽이면 자동 정렬되는지. 문제 있으면 바로 고치고, 마지막에 내가 눌러볼 테스트 순서 4줄만 적어줘.
왜 이렇게 시켰나: 코인 자동매매 백테스팅은 숫자 한 칸만 어긋나도 결과가 완전 달라집니다. 디자인보다 이런 기본 체크가 먼저예요.
이렇게 나오면 OK: CSV가 틀렸을 때 친절한 안내가 뜨고, 날짜 순서가 엉켜도 결과가 정상으로 나오면 됩니다. 여기까지 오면 진짜 써볼 만해져요.
여기서 이렇게 하면 안 돼요: 이상한 숫자가 나왔는데도 그래프만 보고 넘어가면 안 됩니다. 거래횟수 0인데 수익률이 크면 거의 계산이 잘못된 거예요.
막히는 지점은 대체로 셋
CSV 넣었는데 숫자가 전부 NaN으로 뜰 때 현상: 카드에는 숫자가 안 나오고 그래프도 비어 있습니다. 원인은 열 이름이 Close가 아니라 close, 종가, price처럼 다르게 들어간 경우가 많아요. 해결은 간단해요. CSV 첫 줄 이름을 그대로 보여달라고 한 뒤, Codex에게 그 이름에 맞춰 매핑 규칙을 추가해달라고 시키면 됩니다.
그래프는 뜨는데 거래횟수가 0으로만 나올 때 현상: 화면은 멀쩡한데 아무 거래도 안 한 걸로 보입니다. 원인은 날짜 정렬이 거꾸로거나, 숫자 칸에 쉼표가 섞여 문자열로 읽힌 경우가 많거든요. 해결할 때는 날짜 오름차순 정렬, 쉼표 제거, 숫자 변환 실패 시 경고 표시 이 세 줄을 다시 넣어달라고 하면 빨리 잡힙니다.
문구가 갑자기 투자 권유처럼 세질 때 현상: 화면에 이 전략이 더 좋다, 추천한다 같은 말이 튀어나옵니다. 원인은 긴 대화 중간에 Codex가 AGENTS.md 규칙보다 직전 문맥을 더 세게 잡는 경우예요. 해결은 AGENTS.md에 금지 문구를 더 짧게 적고, 새 세션에서 이 파일을 먼저 읽은 뒤 화면 문구만 다시 고쳐달라고 시키면 됩니다.
다음엔 여기 알림만 붙이면 된다
한 걸음 더
오늘 만든 코인 자동매매 백테스팅 페이지에서 수익률이 일정 기준을 넘는 규칙만 텔레그램으로 보내게 붙이면, 그때부터는 그냥 보는 페이지가 아니라 매일 열어보는 도구가 됩니다.