주문 (Order)

api.order는 국내 주식 주문 관련 API를 제공합니다. src/stock/order.rs에 구현되어 있습니다.


order_cash — 현금 주문 [v1_국내주식-001]

현금으로 주식을 매수 또는 매도합니다.

#![allow(unused)]
fn main() {
pub async fn order_cash(
    &self,
    order_division: OrderClass,
    order_direction: Direction,
    pdno: &str,
    qty: Quantity,
    price: Price,
    excg_id_dvsn_cd: Option<TargetExchange>,
) -> Result<response::stock::order::Body::Order, Error>
}

파라미터

파라미터타입설명
order_divisionOrderClass주문 유형 (지정가, 시장가 등)
order_directionDirectionBid (매수) / Ask (매도)
pdno&str종목 코드 (6자리, 예: "005930")
qtyQuantity주문 수량
pricePrice주문 단가 (시장가일 경우 0)
excg_id_dvsn_cdOption<TargetExchange>거래소 코드 (None = 기본값)

예시

#![allow(unused)]
fn main() {
use korea_investment_api::types::{Direction, OrderClass, Price, Quantity};

// 삼성전자 10주 지정가 매수 (70,000원)
let result = api.order.order_cash(
    OrderClass::Limit,
    Direction::Bid,
    "005930",
    Quantity::from(10u32),
    Price::from(70000u32),
    None,
).await?;
}

지원 환경

실전 · 모의 모두 지원합니다.


order_credit — 신용 주문 [v1_국내주식-002]

신용으로 주식을 매수 또는 매도합니다.

#![allow(unused)]
fn main() {
pub async fn order_credit(
    &self,
    order_division: OrderClass,
    order_direction: Direction,
    pdno: &str,
    qty: Quantity,
    price: Price,
    excg_id_dvsn_cd: Option<TargetExchange>,
    credit_type: CreditType,
) -> Result<response::stock::order::Body::Order, Error>
}

주의: 실전투자 환경만 지원합니다. 모의투자에서 호출하면 Error::NotSupported가 반환됩니다.


correct — 정정/취소 [v1_국내주식-003]

미체결 주문을 정정하거나 취소합니다.

#![allow(unused)]
fn main() {
pub async fn correct(
    &self,
    order_division: OrderClass,
    krx_fwdg_ord_orgno: &str,
    orgn_odno: &str,
    rvse_cncl_dvsn_cd: CorrectionClass,
    qty_all_ord_yn: bool,
    qty: Quantity,
    price: Price,
    excg_id_dvsn_cd: Option<TargetExchange>,
) -> Result<response::stock::order::Body::Order, Error>
}

파라미터

파라미터타입설명
krx_fwdg_ord_orgno&strKRX 전송 주문 기관 번호
orgn_odno&str원주문번호
rvse_cncl_dvsn_cdCorrectionClassCorrect (정정) / Cancel (취소)
qty_all_ord_ynbool전량 주문 여부
qtyQuantity정정/취소 수량 (전량이면 0)
pricePrice정정 단가 (취소 시 0)

inquire_daily_ccld — 일별 주문체결 조회 [v1_국내주식-005]

기간별 주문 및 체결 내역을 조회합니다.

#![allow(unused)]
fn main() {
pub async fn inquire_daily_ccld(
    &self,
    inqr_strt_dt: &str,   // 조회 시작일 "YYYYMMDD"
    inqr_end_dt: &str,    // 조회 종료일 "YYYYMMDD"
    sll_buy_dvsn_cd: Option<String>,
    inqr_dvsn: Option<String>,
    pdno: Option<String>,
    ccld_dvsn: Option<String>,
    ord_gno_brno: Option<String>,
    odno: Option<String>,
    inqr_dvsn_3: Option<String>,
    inqr_dvsn_1: Option<String>,
    ctx_area_fk100: Option<String>,  // 연속조회 키
    ctx_area_nk100: Option<String>,  // 연속조회 키
    excg_id_dvsn_cd: Option<TargetExchange>,
) -> Result<response::stock::order::daily_ccld::InquireDailyCcld, Error>
}

연속조회

한 번에 반환되는 건수가 최대치(실전 50건, 모의 20건)를 초과하면 응답의 ctx_area_fk100 / ctx_area_nk100 값을 다음 요청에 전달합니다.

TR ID 자동 선택

조회 시작일에 따라 TR ID가 자동으로 선택됩니다:

  • 3개월 이내: Recent TR 사용
  • 3개월 이전: Past TR 사용

inquire_balance — 잔고 조회 [v1_국내주식-006]

계좌 잔고를 조회합니다.

#![allow(unused)]
fn main() {
pub async fn inquire_balance(
    &self,
    afhr_flpr_yn: Option<String>,    // 시간외 단일가 여부
    inqr_dvsn: Option<String>,       // 조회 구분
    prcs_dvsn: Option<String>,       // 처리 구분
    ctx_area_fk100: Option<String>,  // 연속조회 키
    ctx_area_nk100: Option<String>,  // 연속조회 키
) -> Result<response::stock::order::balance::InquireBalance, Error>
}

inquire_psbl_rvsecncl — 정정취소가능주문 조회 [v1_국내주식-004]

정정 또는 취소가 가능한 미체결 주문 목록을 조회합니다.

#![allow(unused)]
fn main() {
pub async fn inquire_psbl_rvsecncl(
    &self,
    ctx_area_fk100: Option<String>,
    ctx_area_nk100: Option<String>,
    inqr_dvsn_1: Option<String>,
    inqr_dvsn_2: Option<String>,
) -> Result<response::stock::order::Body::InquirePsblRvsecncl, Error>
}

주의: 실전투자 전용 API입니다. 모의투자 환경에서도 실전투자 엔드포인트로 요청됩니다.