분류
위험
난이도
초급
사용 상황
리스크 관리MT5 운용전략 설계

손절

손절은 포지션에 붙여 두는 가격 수준으로, 그 값에 닿으면 브로커가 거래를 자동으로 청산해 그 거래의 손실을 한도 안에 가둔다. 브로커 서버에 놓여 있으므로 터미널이 꺼져 있어도 작동한다.

다른 표현: SL, 스톱로스, 손절매

업데이트일 · 검토일

쉽게 말하면

자기가 틀렸다고 미리 인정하기로 합의해 둔 가격이다. 이 값을 정하는 순간, 열려 있는 포지션은 이미 알고 있는 비용으로 바뀐다.

왜 중요한가

손절은 시장이 끼어들기 전에 최악의 경우를 확정한다. 포지션 크기도, 위험 대비 보상도, 예상 낙폭도 모두 그 거리 하나에서 따라 나온다. 손절이 없으면 전략은 자기가 감당할 수 있는 손실이 아니라 이미 닫힌 손실만 보고한다.

  • 위험을 산술로 바꾼다. 손절 거리에 위험 한도를 더하면 랏 크기가 나온다. 손절이 없으면 크기를 맞출 기준 자체가 없다.
  • 한 번 설정되면 브로커 서버에 놓여 있으므로, 터미널이 닫혀 있거나 VPS가 재부팅되는 동안에도 발동한다.
  • 손절이 없으면 최악의 경우에 한계가 없다. 그리드와 마틴게일 복구 방식은 손절을 생략하며, 그래서 그 곡선들은 무너지기 전까지는 평온해 보인다.

MetaTrader 5에서

MT5에서의 위치

  • New Order 창(F9) → Stop Loss — 진입 시점에 설정하며, 핍이 아니라 가격으로 입력한다
  • Toolbox → Trade 탭 → 포지션 우클릭 → Modify or Delete Position
  • Market Watch → 심볼 우클릭 → Specification — Stops level 행에 이 브로커가 받아들이는 최소 거리가 적혀 있다
  • Toolbox → Journal — 잘못된 손절로 인한 거부가 드러나는 곳이다. Experts 탭이 아니다
  • Strategy Tester → Inputs — 손절도 다른 입력값과 똑같은 입력값이므로, 최적화기가 그것을 자기 과거 데이터에 맞춰 버린다

EA가 사용하는 방식

  • 주문과 같은 MqlTradeRequest 안에서 진입과 동시에 설정한다. sl 필드는 거리가 아니라 가격을 담으므로, 핍 환산은 EA가 직접 해야 한다.
  • 전략이 체결 가격을 먼저 알아야 할 때는 나중에 TRADE_ACTION_SLTP나 CTrade::PositionModify()로 붙인다.
  • 실제로 실려 나오는 것은 대개 고정 거리다. 여기 공개된 기록 27개 가운데 손절을 ATR에서 끌어내는 것은 하나도 없다.
  • 브로커는 SYMBOL_TRADE_STOPS_LEVEL보다 가격에 가까운 손절을 거부한다. EA는 손절이 걸렸다고 넘겨짚지 말고 그 거부를 처리해야 한다.

일반적인 설정

설정 일반적인 값 비고
ATR 배수 (변동성 손절) 1.5–2.5 × ATR(14) 실태 조사가 아니라 권고다. 여기 있는 기록 가운데 이렇게 설정된 것은 하나도 없다. 1.5 아래로 내려가면 손절이 통상적인 움직임 안쪽에 들어간다.
기본 설정 손절, 여기 실린 단일 손절 EA 16개 25–114핍, 중앙값 100 이 빌드들이 실제로 보내는 값이다. 열여섯 가운데 다섯이 정확히 114를 싣는다.
거래당 위험 잔고의 0.5–2 % 이 값과 손절 거리가 랏 크기를 확정한다. 랏 크기를 먼저 고르는 것은 논리를 거꾸로 세우는 일이다.
가격으로부터의 최소 거리 브로커의 스톱 레벨 Market Watch → Specification에 표시된다. 그 안쪽에 놓인 손절은 서버까지 결코 도달하지 못한다.
본전 이동 손절 거리 1배만큼 이익이 난 뒤 흔하지만 공짜는 아니다. 되돌림이 오면 일부 수익 거래를 본전 거래로 바꿔 버린다.

자주 생기는 운용 문제

  • 주문은 체결되었는데 손절은 가격에 너무 가깝다는 이유로 거부되어 돌아오고, 포지션은 저널 한 줄 뒤에서 무방비로 방치된다.
  • EA가 체결 가격이 아니라 요청 가격에서 수준을 계산하면, 슬리피지만큼 실제 위험이 어긋난다.
  • 5자리 호가에서는 포인트와 핍이 충돌한다. 30핍 손절이 30포인트로 나간다.

관련 MT5 함수

MqlTradeRequest.sl
주문과 함께 보내는 손절 가격. 0이면 손절이 없다는 뜻이다.
SymbolInfoInteger(symbol, SYMBOL_TRADE_STOPS_LEVEL)
가격과 손절 사이의 최소 포인트 수. 이보다 가까우면 브로커가 거부한다.
SymbolInfoInteger(symbol, SYMBOL_TRADE_FREEZE_LEVEL)
이 거리 안에서는 서버가 주문 변경도 청산도 받아 주지 않는다.
PositionGetDouble(POSITION_SL)
실제로 걸려 있는 손절을 되읽는다 — 서버가 그것을 받아들였는지 확인하는 검사다.

예시

손절 거리만 따로 고르는 사람은 없다. 손절 거리는 위험 한도와 짝을 이루고, 그 둘이 랏 크기를 만들어 낸다.

계좌 잔고
$10,000
거래당 위험
1 % = $100
손절 거리
40핍
산출된 포지션 크기
0.25랏
메이저 통화쌍에서 1랏당 1핍이 약 $10이다.

손절을 80핍으로 넓히면 크기는 0.125로 절반이 되어야 한다. 그러지 않으면 위험이 두 배가 된다.

계산 100 ÷ (40 × 10) = 0.25랏

결과 40핍 손절, 걸리면 정확히 $100의 비용

사용하는 법

손절은 짝으로 읽어야 한다 — 거리, 그리고 그에 딸린 크기. 어느 한쪽만으로는 위험에 대해 아무것도 말해 주지 않는다.

구간 의미
ATR 1배 안쪽의 손절 통상적인 움직임이 거래를 닫아 버린다. 진입과 무관한 이유로 승률이 떨어진다.
ATR의 1.5–2.5배, 크기를 함께 조정 잡음 바깥에 있으면서, 틀렸을 때의 비용이 계획한 금액이 되도록 크기를 맞춘 상태다.
손절만 넓히고 랏 크기는 그대로 넓힌 만큼 거래당 위험이 그대로 커졌다.
손절이 아예 없음 최악의 경우는 계좌 전체다. 낙폭은 이미 닫힌 손실만 담는다.
  • 체결 뒤에 POSITION_SL을 되읽어라. 서버가 요청을 받아들였다고 넘겨짚는 것이 포지션을 무방비로 방치하는 경로다.
  • 손실은 계좌에서 얼마가 빠져나갔는지가 아니라 가격이 어디서 닫혔는지로 세라. 스왑과 수수료 때문에, 가격으로는 이긴 거래 207건이 돈으로는 손실이 된다.

여기 실린 모든 EA는 자기 손절 규칙을 밝히고 거래 원장을 공개하므로, 실현된 손실이 그것이 전제한 손절 옆에 나란히 놓인다. 이 페이지의 실측 수치는 모두 그 백테스트 원장(EXP-STOP-OVERSHOOT-001)에서 나왔다.

흔한 오해

손실을 받아들이지 않으려고 손절을 가격에서 멀리 옮기기

통제된 손실을 통제 불능의 손실로 바꾸는 단 하나의 변경이다. 계좌의 모든 위험 수치가 바로 그 숫자 위에 얹혀 있었다.

손절이 청산 가격을 확정해 준다고 믿기

손절은 방아쇠일 뿐 약속이 아니다. 갭은 그 수준을 뚫고 지나가며, 포지션은 다음에 가능한 가격에 닫힌다. 가격 자체를 확정하고 싶다면 스톱 리밋이 있지만 체결되지 않을 위험을 진다. MT5에는 있고 MT4에는 없다.

국면이 바뀌어도 고정 핍 손절을 그대로 쓰기

30핍은 잠잠한 시장에서는 넉넉하고, 변동성이 큰 시장에서는 봉 하나 안에 들어간다.

계좌가 감당할 수 있는 자리에 손절을 놓기

너무 큰 포지션이 견딜 수 있는 거리에 놓인 손절은 잡음 안쪽에 들어간다. 물러서야 하는 쪽은 크기다.

자세히

공개된 손실 거래 2,719건이, 그 손실을 멈추려던 수준에서 실제로 한 일

모든 상품 페이지는 청산 거래 목록을 함께 싣기 때문에, 모든 청산 거리는 그 거래가 지니고 있던 손절 바로 옆에 놓인다. 기록 27개 가운데 16개는 모든 주문에 같은 거리 하나를 보낸다. 아래에서 손실 거래란 가격이 진입가 반대쪽에서 닫힌 거래를 뜻한다.

손절이 일정한 기록 16개, 손실 거래 2,719건수치
기본 설정 손절의 ±2 % 이내에서 닫힌 손실81.98 % (2,229)
그 너머에서 닫힌 손실4.34 % (118)
최대 손실이 설정값보다 절반만큼 더 깊었던 기록16개 중 9개
기록당 최대 초과 폭의 중앙값55.65 %
단일 최대 손실114핍 손절에 316.6핍
금요일 진입·금요일 외 청산: 전체 손실 대 초과 건12.69 % 대 18.64 % (22)

첫 행은 손절이 제대로 작동한 몫이다. 손실 다섯 건 가운데 네 건이 프리셋에 적힌 숫자 위에 내려앉는다. 둘째 행은 어떤 설정으로도 통제하지 못하는 몫이다. 마지막 행은 보이는 것만큼 강하지 않다. 대신 토요일이나 일요일을 걸친 보유를 모두 세면 두 비율은 33.36 % 대 35.59 %로 수렴한다. 셋째와 넷째 행도 근거가 약하다. Sundial의 최대 손실인 25핍 손절에 대한 39.0핍은 경과 시간이 0인 행 가운데 유일하게 손실인 행이고, 그런 행 셋을 모두 빼면 두 수치는 16개 중 8개와 44.06 %가 된다. Sundial은 대개 시간 기반 청산이 먼저 도착하며 손실 중앙값은 8.1핍이다 — 더 빠른 청산은 통상적인 손실을 옮길 뿐 최악의 손실을 옮기지는 않는다.

관련 용어와 다음에 확인할 것

여기서 크기 산정 규칙 하나가 따라 나온다. 기본 설정 손절에 1.56을 곱한 뒤 — 이 기록 16개의 최악 사례 중앙값이다 — 그 값을 자기 거래당 한도와 맞대어 보라. 절반은 그 값마저 넘어섰다. 거리는 실측한 변동성에서 끌어내고, 각 엑스퍼트 어드바이저가 어떤 손절을 싣고 있는지는 카탈로그의 상품 페이지에서 확인하라.

자주 묻는 질문

MT5 EA는 항상 손절을 써야 하나요?
위험을 수치로 다루려는 EA라면 반드시 써야 합니다. 포지션 크기도, 위험 대비 보상도, 예상 낙폭도 모두 손절 거리에서 따라 나오기 때문입니다. 그리드와 마틴게일 복구 방식은 손절을 생략하므로, 그런 전략의 최악의 경우에는 한계가 없습니다.
손절 거리는 어느 정도가 적당한가요?
통상적인 움직임이 닿지 않을 만큼은 떨어져 있어야 하며, 인트라데이 기준으로 대략 ATR의 1.5배에서 2.5배입니다. 더 중요한 것은 짝입니다. 손절에 걸렸을 때의 비용이 계좌의 미리 정해 둔 비율이 되도록 랏 크기를 맞추십시오.
컴퓨터를 꺼 두어도 손절이 작동하나요?
작동합니다. 일단 받아들여진 손절은 브로커 서버에 놓여 그곳에서 발동하므로, 내 터미널이 켜져 있는지와 무관합니다. 다만 EA가 코드로 직접 관리하는 손절은 터미널이 살아 있어야 합니다.
손절이 왜 거부되었나요?
대개는 심볼의 스톱 레벨보다 가격에 가까이 놓였기 때문입니다. 그 값은 Specification 창에 표시됩니다. 그 밖의 원인으로는 방향에 맞지 않는 잘못된 가격, 또는 동결 레벨 안에서 보낸 주문 변경이 있습니다.
손실이 손절보다 얼마나 더 나빠질 수 있나요?
여기 공개된 단일 손절 EA 16개에서, 각 원장의 최대 손실은 기본 설정 거리를 중앙값 55.65 % 넘어섰습니다. 열여섯 가운데 아홉은 설정값보다 절반 이상 더 넓은 손실을 최소 한 번은 겪었습니다.