WeCore
리스크 관리

알고리즘 트레이더를 위한 리스크 관리: 다층 방어 구조

자동매매를 위한 리스크 관리 계층을 정리합니다. 거래별 손절, 일일 손실 한도, 최대 포지션, 매매 횟수 제한, 킬 스위치, 모니터링, 오작동하는 자동화 대응법까지 다룹니다.

WeCore·게시일 ·3분 분량

자동매매에서 리스크 관리는 부가 기능이 아니라 시스템 그 자체의 일부입니다. 컴퓨터는 뭔가 이상하지 않은지 멈춰서 묻지 않고 수백 건의 주문을 보낼 수 있습니다. 그래서 여러 겹의 방어막을 쌓아 두는 것이 좋습니다. 하나가 뚫려도 다음 층이 피해를 막을 수 있도록 말이죠.

자동매매에 다른 접근이 필요한 이유

수동 트레이더에게 마지막 방어선은 사람입니다. 이상한 것을 보면 직접 청산하죠. 자동 시스템에는 그런 브레이크가 항상 있는 것이 아닙니다. 중복된 알림이 두 배의 포지션을 열 수 있습니다. 로직 버그가 반복 진입을 일으킬 수 있습니다. 연결이 끊기면 손절 없는 포지션이 남을 수 있습니다.

따라서 리스크를 두 차원에서 생각하세요. 가격이 불리하게 움직이는 시장 리스크, 그리고 시스템이 의도하지 않은 일을 하는 운영 리스크입니다. 좋은 리스크 관리는 둘 다 다룹니다.

1층: 모든 매매에 손절

기본은 모든 매매에 틀렸을 경우를 대비한 청산 지점이 미리 정해져 있는 것입니다. 몇 가지 원칙:

  • 손절은 코드 안에만 존재해서는 안 되고, 실제 주문으로 브로커에 전송되어야 합니다. 시스템 연결이 끊겨도 브로커에 걸려 있는 주문은 계속 계좌를 보호합니다.
  • 손절은 구조나 변동성을 기준으로 정하고, 그 손절에 맞춰 포지션 규모를 정하세요. 반대 순서가 아닙니다. 포지션 사이징 방법을 참고하세요.
  • 스톱 주문은 시장가 주문이 되므로, 빠른 장에서는 레벨에서 꽤 떨어져 체결될 수 있다는 점을 기억하세요.

2층: 일일 손실 한도

모든 매매에 손절이 있어도, 같은 날 연속된 손실은 쌓일 수 있습니다. 일일 한도는 이렇게 말합니다. 정해진 금액을 잃으면 시스템은 다음 날까지 매매를 멈춘다.

가상의 예: 거래당 $200를 리스크로 거는 계좌에서 $500 일일 한도라면 두세 번 손실 후 매매가 멈춥니다. 프랍펌에서 거래한다면, 슬리피지와 미결제 포지션을 고려한 안전 여유를 두고 개인 한도를 회사 한도보다 확실히 낮게 설정하세요. 자세한 내용은 일일 손실 한도 완벽 정리에 있습니다.

한도가 실현 손실만 계산하는지, 미실현 손실도 포함하는지, 그리고 한도에 도달했을 때 기존 포지션까지 정리하는지 아니면 신규 진입만 막는지 미리 정해 두세요.

3층: 최대 포지션 규모

버그에 대한 가장 중요한 방어 수단 중 하나입니다. 로직이 포지션 규모를 동적으로 계산하더라도, 어떤 이유로도 넘어서는 안 되는 계약 수 상한을 고정해 두세요. 깨진 알림이 5계약 대신 50계약을 요청하면, 상한이 그것을 막아 줍니다.

특히 같은 계좌에서 여러 전략을 돌리거나 NQ와 ES처럼 상관관계가 높은 시장을 거래한다면, 방향(롱 또는 숏)별 상한과 총 익스포저 상한을 함께 두는 것이 좋습니다.

4층: 매매 횟수와 거래 시간

  • 일일 최대 매매 횟수: 평소 하루 세 번 매매하던 전략이 갑자기 스무 번 매매한다면 뭔가 잘못되었다는 신호입니다. 이런 한도는 폭주하는 루프를 멈춥니다.
  • 시간대 제한: 전략을 테스트한 시간대로 매매를 제한하세요. 많은 트레이더가 주요 지표 발표 전후의 진입도 피합니다.
  • 세션 종료 전 정리: 오버나이트를 할 생각이 없다면, 세션이 끝나기 전에 포지션이 자동으로 청산되도록 하세요. 일부 프랍펌은 이를 요구합니다.

5층: 킬 스위치와 모니터링

킬 스위치는 모든 것을 멈추는 빠르고 간단한 단일 수단입니다. 대기 주문을 취소하고, 포지션을 청산하고, 새 신호를 차단합니다. 그것이 정확히 어디에 있는지, 휴대폰에서도 작동하는지 확인해 두세요.

모니터링에는 다음이 포함됩니다.

  • 매매 체결, 한도 도달, 오류 발생 시 알림.
  • 시스템이 열려 있다고 "생각하는" 포지션과 계좌에 실제로 열려 있는 포지션의 정기적인 비교.
  • 무슨 일이 왜 일어났는지 나중에 확인할 수 있는 매매 기록.

자동화가 오작동할 때 할 일

뭔가 이상해 보이면 다음 순서로 대응하세요.

  1. 멈추기: 킬 스위치를 누르세요. 시스템이 아직 매매하는 중에 고치려 하지 마세요.
  2. 확인하기: 브로커 플랫폼에 직접 로그인해 열린 포지션과 주문을 확인하세요.
  3. 수동 청산: 열려 있으면 안 되는 것은 직접 청산하세요.
  4. 기록하기: 알림, 로그, 타임스탬프를 저장하세요.
  5. 원인 조사: 재가동 전에 원인을 파악하고, 가능하면 시뮬레이션을 거쳐 단계적으로 복귀하세요.

파산 위험

파산 위험(risk of ruin)은 연속 손실로 계좌가 더 이상 계속할 수 없는 지점 아래로 떨어질 확률입니다. 프랍펌 계좌라면 예를 들어 최대 드로다운 수준이 그 지점입니다. 실제 엣지가 있는 전략도 우연히 긴 연패를 겪을 수 있습니다.

가상의 예: 매 거래마다 허용 드로다운의 25%를 리스크로 건다면 4연패로 계좌가 끝납니다. 그 정도 연패는 지극히 평범한 일입니다. 5%를 건다면 20연패가 필요합니다. 거래당 리스크를 작게 한다고 리스크가 사라지지는 않지만, 전략이 엣지를 보여 줄 시간을 벌어 줍니다. 드로다운에 대한 자세한 내용은 프랍펌 드로다운 유형을 참고하세요.

핵심 정리

  • 자동매매에는 시장 리스크와 운영 리스크가 모두 있으며, 둘 다 대비해야 합니다.
  • 거래별 손절, 일일 한도, 계약 수 상한, 매매 횟수와 시간 제한으로 층을 쌓으세요.
  • 킬 스위치와 모니터링은 부가 기능이 아니라 시스템의 일부입니다.
  • 문제가 생기면 멈추고, 브로커에서 확인하고, 청산하고, 기록한 뒤에야 조사하세요.
  • 거래당 리스크를 작게 하면 파산 위험이 크게 줄어듭니다.

WeCore에는 일일 손실 한도, 최대 계약 수, 거래 시간, 포지션 정리 같은 자동 리스크 규칙이 포함되어 있으며, 연결된 모든 계좌에 적용됩니다. 프랍펌 규칙보다 더 엄격하게 설정하고 시뮬레이션 모드에서 테스트할 수 있습니다. 자세한 내용은 가이드 WeCore에서 리스크 한도 설정하는 방법을 참고하세요.

출처 및 추가 자료