손절이나 익절 값을 넣었을 때 Invalid S/L or T/P가 돌아온다면, 넣은 값이 서버가 요구하는 조건에 맞지 않는다는 뜻입니다. 그런데 그 조건은 숨어 있지 않습니다. MT5 Invalid S/L or T/P의 판정 기준은 포지션을 우클릭해 여는 「수정 또는 삭제」 창 아래쪽에 영어 두 줄로 그대로 적혀 있고, 그 문장에 박혀 나오는 숫자가 종목 사양의 「스톱레벨」 값입니다.
먼저 밝혀둘 것이 있습니다. 이 글은 오류가 뜨는 장면을 재현한 글이 아닙니다. 확인한 데모 계좌는 스톱레벨이 전 종목 0이라 안내문도 at least 0 points로 떴고, 값을 넣어 실제로 거절당하는 화면은 보지 못했습니다. 대신 판정 기준이 어느 창에 어떤 문장으로 적혀 있는지, 자기 계좌에서 그 숫자를 어떻게 읽는지를 정리했습니다.
화면은 MetaQuotes-Demo 서버 · 한글 설정 · build 6104 기준입니다. 스톱레벨 값은 회사·계좌·종목마다 다릅니다. 아래 숫자는 이 계좌의 값입니다.
1. 조건은 「수정 또는 삭제」 창 아래에 영어로 적혀 있습니다
여는 경로는 이렇습니다.
아래 도구모음 Ctrl+T → 「거래」 탭 → 포지션 줄 우클릭 → 「수정 또는 삭제」
포지션이 하나도 없으면 이 항목은 회색이라 눌리지 않습니다. 포지션이 있어야 활성화됩니다.
창을 열면 아래쪽에 영어 두 줄이 붙어 있습니다. 오류가 났을 때만 뜨는 경고가 아니라, 창을 열면 늘 그 자리에 있는 안내문입니다.
Stop Loss or Take Profit you set must differ from market price by at least 0 points.
Stops processing is performed on the broker side.

첫 줄은 손절·익절 값이 현재 시장가에서 최소 몇 포인트 이상 떨어져 있어야 한다는 말입니다. 그 「몇 포인트」 자리에 숫자가 그대로 박혀 나옵니다. 이 계좌는 그 값이 0이라 at least 0 points로 표시됩니다. 즉 최소 간격 제약이 걸려 있지 않다는 것을 화면이 문장으로 말해주고 있는 셈입니다.
둘째 줄은 손절·익절의 판정을 브로커 서버 쪽에서 한다는 말입니다. 내 컴퓨터의 MT5가 값을 보고 판단하는 것이 아니라, 서버가 받아서 통과와 거절을 정합니다. 그래서 값이 맞는지 아닌지는 프로그램이 아니라 계좌를 개설한 곳의 설정에 달려 있습니다.
스톱레벨이 0이 아닌 계좌·종목에서 이 문장의 숫자가 그 값으로 바뀌어 표시되는지는 이 계좌에서 확인하지 못했습니다.
창 안쪽 표기는 이렇습니다.
| 자리 | 화면 표기 |
|---|---|
| 창 제목 | 포지션: #57890294228 sell 0.01 EURUSD 1.15609 |
| 왼쪽 목록 | 시장가 체결 · Limit 주문 · Stop 주문 · Stop Limit 주문 · 포지션 수정 · (으)로 청산 |
| 통화 | EURUSD, Euro vs US Dollar |
Stop Loss: | 0.00000 + 옆에 별도 칸 0 points |
Take Profit: | 0.00000 + 옆에 별도 칸 0 points |
| 가격 | 1.15576 / 1.15577 |
| 버튼 | Modify #57890294228 sell 0.01 EURUSD 1.15609 (회색) |
목록 맨 아래 항목이 「(으)로 청산」입니다. 조사 자리표가 그대로 노출된 번역인데, 화면에 그렇게 적혀 있으므로 그대로 옮깁니다.
2. 안내문의 숫자는 「설명」 탭의 「스톱레벨」입니다
안내문에 박히는 숫자를 미리 확인하는 자리가 종목 사양입니다. 경로는 이렇습니다.
종합시세에서 종목 우클릭 → 「통화 속성 (P)」 → 「통화」 창의 「설명」 탭 → 「스톱레벨」
흔히 「종목 목록」이라고 부르는 창의 실제 이름이 「통화」입니다. 통화쌍만 들어 있는 창이 아니라 금속·지수·개별주까지 전부 여기 있습니다. 「설명」 탭에는 항목이 길게 나열되는데, 그 가운데 한 줄이 「스톱레벨」입니다.

이 값이 손절·익절을 현재 가격에서 최소한 얼마만큼 떨어뜨려야 하는지를 정한 제약입니다. 값이 클수록 현재 가격에 붙여 넣을 수 없고, 값이 0이면 그런 제약이 걸려 있지 않다는 뜻입니다. 안내문의 at least ○ points와 같은 숫자를 가리킵니다.
3. 이 계좌는 다섯 종목 모두 0이었습니다
성격이 서로 다른 다섯 종목을 열어 같은 항목을 읽었습니다.
| 종목 | 섹터 | 「거래:」 | 스톱레벨 |
|---|---|---|---|
| XAUUSD (금) | 원자재/귀금속 | 전체 가능 | 0 |
| EURUSD | 통화 | 전체 가능 | 0 |
| USTEC | 인덱스 | 비활성화 됨 | 0 |
| US30 | 인덱스 | 비활성화 됨 | 0 |
| US500 | 인덱스 | 비활성화 됨 | 0 |

전부 0입니다. 즉 이 계좌에서는 「현재가에서 최소 몇 포인트 이상 떨어뜨려야 한다」는 제약이 없습니다. 실제로 EURUSD 포지션에서 「수정 또는 삭제」 창을 열었을 때도 안내문이 at least 0 points로 떴습니다. 종목 사양의 숫자와 안내문의 숫자가 서로 맞습니다.
여기서 한 걸음 더 나가지 않는 것이 중요합니다. 현재가 바로 옆 값을 실제로 넣어 통과하는지까지는 해보지 않았으므로 「이 계좌에서는 이 오류가 안 뜬다」고 단정하지 않습니다. 확인된 것은 「제약값이 0이고 안내문도 0으로 뜬다」까지입니다.
그래서 이 글의 실용적인 결론은 숫자가 아니라 경로입니다. 스톱레벨은 종목마다 다를 수 있으니 각자 자기 화면에서 자기 종목의 값을 읽으면 됩니다. 남이 적어둔 숫자를 외우는 것은 의미가 없습니다.
4. 같은 탭에서 함께 봐 두면 좋은 항목
「스톱레벨」 바로 위아래에 값 입력과 직접 얽히는 항목들이 같이 있습니다. 한 번에 읽어두면 자릿수를 잘못 세는 실수가 줄어듭니다.
| 항목 | XAUUSD | EURUSD |
|---|---|---|
| 자리수 | 2 | 5 |
| 계약단위 | 100 | 100 000 EUR |
| 스톱레벨 | 0 | 0 |
| 틱사이즈 | 0.01 | 항목 없음 |
| 틱밸류 | 0.1 | 항목 없음 |

「자리수」가 소수점 자리 수입니다. 금은 2, 유로달러는 5로 세 자리나 차이가 납니다. 같은 감각으로 값을 넣으면 자릿수가 통째로 어긋납니다. 손절·익절 값이 이상하게 들어갈 때 가장 먼저 볼 항목입니다.
EURUSD에는 「틱사이즈」·「틱밸류」 항목 자체가 없습니다. 항목이 비어 있는 것이 아니라 목록에 나타나지 않습니다. 종목에 따라 항목 구성이 달라진다는 점을 알고 봐야 합니다.
한 가지 더, 「체결」이라는 항목이 같은 탭에 두 번 나옵니다. 첫 번째는 체결 방식이고 값은 시장, 두 번째는 충족 조건입니다. 이름이 같아 헷갈리기 쉬우니 위치로 구분하면 됩니다.
거래 비활성 종목은 항목 자체가 없습니다. USTEC·US30·US500처럼 「거래:」가 「비활성화 됨」인 종목은 「설명」 탭 목록이 눈에 띄게 짧습니다. 「체결」·「주문」·「최소 거래량」 같은 항목이 아예 나오지 않습니다.

주문에 필요한 값들이 통째로 빠져 있는 상태입니다. 이런 종목은 손절·익절 값의 적합성을 따지기 전에 주문 자체가 나가지 않습니다. 스톱레벨만 보고 「0이니까 되겠지」 하고 접근하면 엉뚱한 곳에서 막힙니다. 「거래:」를 먼저 보는 것이 순서입니다.
5. 값을 넣는 창이 두 개인데 구성이 다릅니다
손절·익절을 넣는 자리는 두 군데이고, 두 창의 칸 구성이 같지 않습니다. 이 차이를 모르면 「내 화면에는 그 칸이 없는데」 하고 헤매게 됩니다.
| 주문 창 (F9) | 「수정 또는 삭제」 창 | |
|---|---|---|
Stop Loss: | 가격 칸 하나 (0.00000) | 가격 칸 (0.00000) + 0 points 칸 |
Take Profit: | 가격 칸 하나 (0.00000) | 가격 칸 (0.00000) + 0 points 칸 |
즉 points 칸은 「수정 또는 삭제」 창에만 붙습니다. 주문을 처음 낼 때 쓰는 주문 창에는 가격 칸 하나씩뿐입니다.
주문 창의 나머지 표기는 이렇습니다.
| 자리 | 화면 표기 |
|---|---|
| 창 제목 | 주문: EURUSD - Euro vs US Dollar |
Volume: | 거래량 옆에 1 000 EUR 같은 명목 금액 |
Fill policy: | 체결 혹은 무시 (라벨은 영어, 값은 한글) |
Comment: | 드롭다운 달린 빈 칸 |
| 버튼 | Sell by Market(빨강) · Buy by Market(파랑) |
주문 창에 증거금이 표시되는 자리는 없습니다. 1 000 EUR는 증거금이 아니라 명목 금액입니다.
예약주문 화면에는 만료 칸이 하나 더 있습니다.
Expiration: [GTC ▾]
Expiration date: [10.08.26 07:05] ← GTC일 때는 회색
날짜 형식이 일.월.연 순서입니다. 10.08.26은 2026년 8월 10일입니다. 그리고 여기 들어 있는 시각은 서버시간이 아니라 로컬(한국)시간입니다. MT5는 한 프로그램 안에서 서버시간과 로컬시간이 섞이므로, 만료 시각을 정할 때 어느 기준인지 한 번 더 확인하는 편이 안전합니다.
이름도 창마다 다릅니다. 주문 창과 「수정 또는 삭제」 창에서는 Stop Loss·Take Profit 영어 그대로 나오는데, 차트 우클릭 거래 ▸ 하위에서는 같은 기능이 「차익실현」이라는 한글로 나옵니다. 원고나 안내 글에서 「손절 칸」·「익절 칸」이라고만 부르면 화면에서 못 찾습니다.
값의 방향이 뒤집혀 있으면 간격을 아무리 벌려도 통과하지 않습니다.
| 포지션 | 손절(S/L) 위치 | 익절(T/P) 위치 |
|---|---|---|
| 매수(Buy) | 현재 가격보다 아래 | 현재 가격보다 위 |
| 매도(Sell) | 현재 가격보다 위 | 현재 가격보다 아래 |
이 표는 손절·익절이라는 말의 정의에서 나오는 것이고, 화면으로 확인한 내용은 아닙니다. 값이 헷갈릴 때는 지금 포지션이 매수인지 매도인지부터 다시 보면 됩니다.
6. 거부 사유는 화면이 아니라 「저널」에 남습니다
MT5에서 주문이 거절될 때 화면에는 아무 표시도 없는 경우가 있습니다. 주말에 XAUUSD로 확인했을 때 눌러도 반응이 없고 오류창도 뜨지 않았습니다. 그런데 아래 도구모음(Ctrl+T)의 「저널」 탭에는 두 줄이 남아 있었습니다.
'5053758323': sell limit 0.1 XAUUSD at 4357.55
'5053758323': failed sell limit 0.1 XAUUSD at 4357.55 [Market closed]

첫 줄이 주문이 나간 기록, 둘째 줄이 거부된 기록입니다. 사유는 대괄호 안에 영어로 붙습니다. 흔히 「기록」이나 「로그」라고 부르는 탭의 실제 이름이 「저널」입니다.
안내문의 둘째 줄이 말하듯 판정은 브로커 서버에서 이뤄지므로, 거절 사유도 서버가 돌려준 문구가 그대로 여기 남습니다. 손절·익절 값이 거절될 때도 같은 자리에 같은 형태로 남을 것으로 보이지만, 이 계좌에서는 재현되지 않아 확인하지 못했습니다. 대괄호 안에 어떤 문구가 들어가는지도 그래서 적지 않습니다.
참고로 이 계좌는 체결 방식이 「시장」입니다. 그래서 재견적 계열의 거절은 구조적으로 나오지 않습니다. 어떤 오류가 뜰 수 있는지는 계좌 설정에 따라 처음부터 갈립니다.
7. 넣은 값이 어디에 보이는지 미리 켜 둡니다
값을 넣기 전에 결과가 눈에 보이도록 두 가지를 확인해두면 확인이 훨씬 빨라집니다.
첫째, 차트의 가로선입니다. 손절·익절 선을 차트에 그리는 설정은 여기 있습니다.
도구 (T) → 옵션 (O) Ctrl+O → 열리는 창 제목은 「설정」
「차트」 탭 → ✓손절 이익실현 보이기
메뉴 이름은 「옵션」인데 열리는 창의 제목은 「설정」입니다. 이름이 달라 헤매기 쉬운 자리입니다. 이 항목은 기본값이 켜짐이고, 같은 탭에 「거래 내역 보기」도 함께 켜져 있습니다.

둘째, 아래 도구모음의 「거래」 탭 열입니다. 열 구성은 이렇습니다.
통화 · 티켓 · 시간 · 종류 · 거래량 · 가격 · S/L · T/P · 가격 · 수익
S/L과 T/P가 별도 열로 들어 있습니다. 값이 실제로 걸렸는지 여기서 확인하게 됩니다.

다만 포지션이 있어도 손절·익절을 걸지 않았으면 이 두 열은 비어 있습니다. 트레일링스탑만 걸어둔 상태에서도 S/L 열은 그대로 비어 있었습니다. 값이 실제로 걸렸을 때 어떤 형식으로 채워지는지는 확인하지 못했습니다.
셋째, 이름이 비슷한 설정이 하나 더 있다는 점입니다. 「설정」 창의 「거래」 탭에도 「스톱 레벨」이라는 라벨이 있습니다. 종목 사양의 「스톱레벨」과 이름이 거의 같아 헷갈립니다.
통화: [Automatic ▾]
거래수: [Last Used ▾]
슬립피지: [Last Used ▾]
스톱 레벨: [In Prices ▾]

확인된 것은 라벨이 「스톱 레벨」이고 값이 In Prices로 되어 있다는 것까지입니다. 드롭다운 값은 영어이고, 같은 탭의 「슬립피지」가 흔히 말하는 허용 편차의 한글 라벨입니다. 드롭다운의 다른 선택지와, 이 설정이 종목 사양의 「스톱레벨」과 같은 값을 가리키는지는 확인하지 못했습니다.
이름이 비슷하다고 같은 것으로 묶어 설명하면 틀릴 수 있으므로, 확인되기 전까지는 서로 다른 자리에 있는 별개의 항목으로만 다룹니다.
8. 확인 순서
1. 포지션이 있으면 「수정 또는 삭제」 창을 엽니다. 「거래」 탭 포지션 줄 우클릭. 창 아래 at least ○ points 문장의 숫자가 이 종목의 최소 간격입니다 2. 「거래:」를 봅니다. 종합시세 우클릭 → 「통화 속성 (P)」 → 「설명」 탭. 「비활성화 됨」이면 손절·익절 이전에 주문 자체가 안 나갑니다 3. 같은 탭의 「스톱레벨」을 읽습니다. 안내문의 숫자와 같은 값입니다. 0이면 최소 간격 제약이 없다는 뜻입니다 4. 같은 탭의 「자리수」를 읽습니다. 금은 2, 유로달러는 5입니다. 자릿수를 잘못 세면 값이 통째로 어긋납니다 5. 방향을 봅니다. 매수는 손절이 아래·익절이 위, 매도는 반대입니다 6. 「저널」 탭을 엽니다(Ctrl+T). 판정은 브로커 서버가 하고, 그 결과가 여기에 대괄호로 남습니다 7. 「설정」 창 「차트」 탭의 「손절 이익실현 보이기」가 켜져 있는지 봅니다. 값이 걸렸는지 차트에서 바로 확인됩니다 8. 그래도 해결되지 않으면 종목 이름 · 안내문에 뜬 포인트 숫자 · 「설명」 탭의 스톱레벨과 자리수 · 넣은 값 · 「저널」 줄 원문을 그대로 계좌를 개설한 곳에 전달하면 됩니다
정리하면 이 오류는 외울 숫자가 있는 문제가 아니라 읽을 자리가 있는 문제입니다. 「수정 또는 삭제」 창 아래 두 줄, 「설명」 탭의 「스톱레벨」과 「자리수」, 그리고 「저널」 탭. 이 세 곳만 알고 있으면 자기 계좌에서 답이 나옵니다.