자동매매 주문 범위를 넓히며 주문 크기와 포지션을 관리한 방법

자동매매 주문 범위를 넓히며 주문 크기와 포지션을 관리한 방법의 핵심 문제와 해결 흐름을 보여주는 rio-trading-agent Episode 7 개념 이미지

작성자

카테고리:

프로젝트:

자동매매 기능은 주문을 보낼 수 있게 만드는 것만으로 끝나지 않더라고요. 주문할 금액을 어떻게 정할지, 이미 들고 있는 포지션을 어디까지 계산할지, 전략 설정이 바뀌었을 때 그 값을 어떻게 반영할지까지 같이 정리되어야 했습니다.

저장소의 흐름을 따라가 보면 처음부터 매수·매도 실행을 한 덩어리로 키운 방식은 아니었습니다. guarded 자동 매수와 guarded 자동 매도 경로가 먼저 별도 단계로 들어갔고, 그 뒤에 주문 규모와 포지션 상태를 다루는 보완 작업이 이어졌습니다. 주문 실행 앞에 조건을 하나 더 두는 구조였어요.

그다음 눈에 들어온 변경이 dynamic auto buy position sizing입니다. 고정된 주문 금액만 사용하는 대신, 매수 규모를 동적으로 계산하는 경로가 추가됐습니다. 여기서 중요한 건 계산식 자체를 자세히 설명하는 일이 아니라, 주문 크기도 전략 판단의 일부가 되었다는 점입니다. 같은 매수 신호라도 포지션 상태와 실행 조건에 따라 실제 주문 규모가 달라질 수 있으니까요.

rio-trading-agent Episode 7에서 문제 발견부터 초안 검토까지 이어지는 작업 흐름 도식
문제 발견 후 AI와 논의하고, 구현한 뒤 draft에서 다시 확인하는 흐름.

포지션을 세는 방식에서는 소액 잔여 포지션도 별도로 다루는 변경이 이어졌습니다. 소액 잔여 포지션, 이른바 dust가 남아 있을 수 있기 때문입니다. 이 금액을 일반적인 보유 포지션처럼 신규 진입 한도에 계속 포함하면, 실제로는 의미가 크지 않은 잔여분이 다음 진입 판단에 영향을 줄 수 있습니다.

그래서 dust 포지션을 신규 진입 한도에서 어떻게 제외할지 별도로 보완했고, 그 판단을 보고하는 작업도 따로 추가했습니다. 단순히 숫자에서 빼는 것으로 끝내지 않고, 왜 이번 진입 판단이 그렇게 처리됐는지 확인할 수 있는 흐름을 함께 둔 셈입니다.

rio-trading-agent Episode 7에서 초안 검토 후 수정 또는 WordPress draft로 이어지는 판단 흐름 도식
초안은 바로 공개하지 않고, 근거와 문맥을 다시 확인한 뒤 draft 상태로 넘긴다.

전략 설정을 갱신하는 방식도 따로 정리됐습니다. safe strategy overlay refresher는 실행 중인 전략 설정을 주기적으로 갱신하되, 정책 값을 함부로 바꾸지 않는 방향으로 추가된 변경입니다. 현재 strategy_overlay.json에는 시장 국면, 자산별 배수, 신규 포지션 허용 여부, kill switch 같은 값이 들어가고, 갱신 이유도 함께 기록되어 있습니다.

이 세 가지 변경을 나란히 놓으면, 설계 방향은 이렇게 읽힙니다. 전략 설정을 확인하고, 현재 포지션 상태를 계산하고, 그 결과에 따라 주문 규모를 정한 뒤 guarded 실행 경로로 넘기는 구조입니다.

전략 설정 → 포지션 상태 확인 → 주문 크기 계산 → guarded 실행.

물론 이 흐름이 모든 상황을 해결해준다는 뜻은 아닙니다. 실제 투자 성과가 좋아졌다는 근거도 없고, 시스템이 완전히 자동화됐다고 말할 수도 없습니다. 다만 자동화 범위를 넓힐 때 무엇을 함께 관리해야 하는지는 조금 더 구체적으로 드러났습니다. 주문 버튼만 커지는 게 아니라, 주문 전에 확인해야 할 상태도 같이 늘어났습니다.

결국 이번 확장은 기능을 더 많이 붙인 기록이라기보다, 주문의 범위를 넓히면서 포지션 크기와 설정 상태를 함께 다루려는 보완에 가까웠습니다. 작은 잔여 포지션은 진입 한도 계산에서 별도로 다루고, 설정 갱신도 별도 변경으로 보완하는 식으로요.

다음으로 더 확인할 부분은 이 상태들이 실제 거래 lifecycle과 보고 값에서 어떻게 이어지는지입니다. 주문, 포지션, 성과 보고가 같은 상태를 가리키는지까지는 코드와 테스트를 더 따라가봐야겠습니다.

이 프로젝트의 글

이 글과 같은 프로젝트의 기록을 이어서 보려면 프로젝트 태그를 선택해 주세요.