> ## Documentation Index
> Fetch the complete documentation index at: https://docs.intention.xyz/llms.txt
> Use this file to discover all available pages before exploring further.

# 주문 수정

> 활성 주문의 가격이나 수량을 변경하는 방법, 그리고 수량을 줄일 때만 대기열 자리가 유지되고 다른 변경에서는 유지되지 않는 이유.

아직 전량 체결되지 않은 주문은 **가격**과 **수량**을 바꿀 수 있습니다. 내부에서 무슨 일이 벌어지는지는 어떤 변경을 하느냐에 달렸고, 그 차이는 대기열에서의 자리에 실제 영향을 줍니다.

<h2 id="two-paths">
  두 갈래 경로
</h2>

<div className="dg" data-dg="modify-paths">
  <div className="dg-c" style={{aspectRatio:"720 / 360"}}>
    <svg className="dg-w" viewBox="0 0 720 360" aria-hidden="true">
      <path className="dg-wire dg--blue" d="M 144.00 58.00 L 165.60 58.00" />

      <path className="dg-head dg--blue" d="M 172.00 58.00 L 165.60 62.40 L 165.60 53.60 Z" />

      <path className="dg-wire dg--green" d="M 330.00 58.00 L 355.24 35.28" />

      <path className="dg-head dg--green" d="M 360.00 31.00 L 358.19 38.55 L 352.30 32.01 Z" />

      <path className="dg-wire dg--orange" d="M 330.00 58.00 L 356.76 103.48" />

      <path className="dg-head dg--orange" d="M 360.00 109.00 L 352.96 105.71 L 360.55 101.25 Z" />
    </svg>

    <div className="dg-band" style={{left:"0.0000%",top:"47.7778%",width:"100.0000%",height:"26.6667%"}}><span className="dg-cap">여기서 수량은 잔여 수량</span></div>
    <div className="dg-b dg--blue" style={{left:"0.0000%",top:"8.3333%",width:"19.4444%",height:"15.5556%"}}><span className="dg-t">수정 요청</span></div>
    <div className="dg-b dg--yellow dg-round" style={{left:"24.4444%",top:"7.2222%",width:"20.8333%",height:"17.7778%"}}><span className="dg-t">무엇이 바뀌었나?</span></div>
    <div className="dg-b dg--green dg-left" style={{left:"50.5556%",top:"0.0000%",width:"49.4444%",height:"17.2222%"}}><span className="dg-t">수량 감소만</span><span className="dg-s">제자리 수정 — 대기열 자리 유지</span></div>
    <div className="dg-b dg--orange dg-left" style={{left:"50.5556%",top:"21.6667%",width:"49.4444%",height:"17.2222%"}}><span className="dg-t">가격 변경 또는 수량 증가</span><span className="dg-s">취소 후 신규 등록 — 대기열 자리 상실</span></div>
    <div className="dg-b dg--sky" style={{left:"2.2222%",top:"53.3333%",width:"30.7407%",height:"15.5556%"}}><span className="dg-t">10짜리 주문에서 4가 체결되면 잔량은 6</span></div>
    <div className="dg-b dg--sky" style={{left:"34.6296%",top:"53.3333%",width:"30.7407%",height:"15.5556%"}}><span className="dg-t">5로 변경 — 감소</span></div>
    <div className="dg-b dg--sky" style={{left:"67.0370%",top:"53.3333%",width:"30.7407%",height:"15.5556%"}}><span className="dg-t">8로 변경 — 증가, 원래 10보다 작아도 마찬가지</span></div>
    <div className="dg-b dg--orange dg-left" style={{left:"0.0000%",top:"80.0000%",width:"100.0000%",height:"15.5556%"}}><span className="dg-t">재등록 경로는 순차적이며 원자적이지 않음</span><span className="dg-s">신규 주문은 취소가 성공한 뒤에만 시도되고, 그마저 증거금 때문에 실패할 수 있습니다. 그러면 취소만 되고 대기 주문은 남지 않습니다.</span></div>
  </div>
</div>

**수량을 줄이면 제자리에서 수정됩니다.** 주문은 오더북의 원래 자리에 그대로 남아 우선순위를 유지합니다. 취소되는 것도, 다시 등록되는 것도 없습니다.

**그 밖의 모든 변경은 취소 후 신규 주문입니다.** 가격 변경은 자리를 지킬 방법이 정말로 없습니다. 가격이 다르면 오더북에서의 자리가 다르기 때문입니다. 수량 증가는 사정이 다릅니다. 늘어난 수량은 줄을 선 적이 없지만, 이미 대기 중이던 수량은 줄을 서 있었습니다. 다만 현재는 어느 쪽이든 주문 전체가 다시 등록되므로, 수량을 늘리면 원래 수량으로 확보해 둔 우선순위까지 잃게 됩니다.

이 구분은 의도적이며, 모든 수정을 취소 후 재등록으로 처리하는 거래소와 다릅니다. 주문을 줄이는 것은 이미 우선순위를 확보해 둔 것보다 엄격히 적은 양을 요청하는 일이므로, 그 대가를 물릴 이유가 없습니다.

<h2 id="why-queue-position-matters">
  대기열 자리가 중요한 이유
</h2>

같은 가격 단계에서는 도착한 순서대로 체결됩니다. 앞에 있는 주문이 뒤에 있는 주문보다 먼저 체결됩니다. 거래가 몰리는 단계에서 앞과 뒤의 차이는, 체결되느냐 시장이 떠나가는 것을 구경만 하느냐의 차이입니다.

마켓 메이커에게는 이것이 승부의 전부입니다. 자리를 잃지 않고 리스크 관리를 위해 수량을 줄일 수 있다는 것은, 판단하는 동안 도착한 모두의 뒤로 다시 줄을 서야 하는 것과 실질적으로 다릅니다.

<h2 id="what-size-means-here">
  여기서 "수량"이 뜻하는 것
</h2>

수량 비교는 처음 제출한 수량이 아니라 **잔여 수량**을 기준으로 합니다.

수량 10으로 낸 주문이 4만큼 체결되었다면 잔여는 6입니다. 이를 5로 바꾸면 감소이므로 제자리에서 수정됩니다. 8로 바꾸면 원래의 10보다는 적지만 6에 비하면 증가이므로 취소 후 재등록입니다.

<h2 id="the-cancel-and-replace-path-can-partially-fail">
  부분적으로 실패할 수 있는 취소 후 재등록 경로
</h2>

수정이 취소 후 재등록 경로를 타면 두 단계는 순서가 정해져 있을 뿐 원자적이지는 않습니다.

* **신규 주문은 취소가 성공한 경우에만 시도됩니다.** 두 주문이 동시에 남는 일은 없습니다.
* **그래도 신규 주문은 실패할 수 있습니다.** 두 단계 사이에 시장이 움직였을 수 있어, 증거금 때문에 막히는 경우가 가장 많습니다.

그래서 대비해 둘 만한 결과가 하나 있습니다. **원래 주문은 취소되었는데 대체 주문은 존재하지 않는 상태입니다.** 이중 체결은 아니지만, 오더북에 대기 중인 주문도 없습니다.

<Warning>
  시간에 민감한 작업이라면 수정이 성공했다고 가정하지 마십시오. 해당 단계에 여전히 활성 주문이 있다는 전제로 움직이기 전에, 결과 주문이 실제로 존재하는지 확인하십시오.
</Warning>

<h2 id="timing">
  적용 시점
</h2>

제자리 수량 감소는 **현재 블록**에서 적용됩니다. 기다릴 것이 없습니다.

가격 변경과 수량 증가는 두 단계 경로를 거치며, 여느 취소나 신규 주문과 동일한 [시퀀싱](/ko/trading/tx-sequencing)의 적용을 받습니다. 취소는 취소 단계에서, 같은 블록에서 유동성을 가져가는 주문보다 앞서 실행됩니다. 수정과 나란히 도착한 주문이 낡은 호가를 채 가지 못하는 이유가 여기에 있습니다.

주문 유효기간은 그대로 이어집니다. 수정된 주문은 같은 유효기간을 유지하며, 그 유효기간은 대체 주문에도 계속 적용됩니다.

<h2 id="practical-notes">
  실무 참고 사항
</h2>

* **줄이는 것은 마음껏 하십시오.** 비용이 적고 우선순위에서 잃는 것이 없습니다.
* **가격 변경은 신규 주문으로 취급하십시오.** 실제로 신규 주문이기 때문입니다.
* 프로그램으로 수정한다면 **[클라이언트 주문 ID](/ko/trading/client-order-id)를 쓰십시오.** 모호한 응답을 받았을 때 추론하는 대신 무엇이 존재하는지 확인할 수 있습니다.
* **여러 필드를 한꺼번에 바꿀 때는 명시적으로 취소하고 다시 등록하십시오.** 결과는 같으면서 실패 처리는 더 명확해집니다.

<h2 id="where-to-go-next">
  다음으로 읽을 문서
</h2>

<CardGroup cols={2}>
  <Card title="오더북" href="/ko/trading/order-book">
    가격·시간 우선순위가 한 단계 안의 체결 순서를 정하는 방식을 다룹니다.
  </Card>

  <Card title="트랜잭션 시퀀싱" href="/ko/trading/tx-sequencing">
    같은 블록에서 취소가 유동성을 가져가는 주문보다 먼저 실행되는 이유를 설명합니다.
  </Card>

  <Card title="클라이언트 주문 ID" href="/ko/trading/client-order-id">
    모호한 응답을 받은 뒤 무엇이 존재하는지 확인하는 방법입니다.
  </Card>

  <Card title="주문 유형" href="/ko/trading/order-types">
    주문 유효기간과, 수정을 거쳐도 이어지는 속성을 다룹니다.
  </Card>
</CardGroup>
