국내주식 종목가격에 따른 호가돤위 구하기
자동으로 구해진 종목의 가격을 그대로 주문 할 수 없습니다.
정해진 호가가격에 따라 주문을 해야 하는데 자세한 가격(주권)에 대한 것은 첨부된 링크를 참고하시면 됩니다.
즉, 10만원 짜리는 가격의 단위가 1원 단위 10원 단위가 아니라는 것입니다. 2천원 미만은 1원단위로 주식의 가격이 됩니다.
이런것을 호가 단위라고 하며 주문을 할때는 이렇게 해야 되기 때문에 아래와 같은 함수를 만들어 사용 합니다.
그리고 더 중요한것은 거래가 활발하지 않은것은 아래처럼 호가단위를 구해 주문을 해도 그 호가에 주문이 안되고 매물이 나올때 까지 기다려야 하는 경우가 발생 할 수 있는데요.
이런 경우는 기다리거나 빨리 체결하고 싶으면 시장가 또는 현재 호가 목록을 받아와서 상위 호가로 주문하는 방법이 있습니다.
아무래도 시장가나 상위 호가의 경우는 내가 생각했던것 보다 비싸게 주문이 될 수 있기 때문에 테스트 하는것 이외에는 권장되는 방법은 아닙니다.
/**
* 국내주식 호가단위
*
* @param int $현재가
* @return int
*/
function 국내주식_호가단위_구하기( int $현재가 ) : int
{
$호가단위 = 1;
if ($현재가 >= 500000) {
$호가단위 = 1000;
}
elseif ($현재가 >= 200000) {
$호가단위 = 500;
}
elseif ($현재가 >= 50000) {
$호가단위 = 100;
}
elseif ($현재가 >= 20000) {
$호가단위 = 50;
}
elseif ($현재가 >= 5000) {
$호가단위 = 10;
}
elseif ($현재가 >= 2000) {
$호가단위 = 5;
}
return $호가단위;
}
/**
* 국내주식 호가단위 올림
*
* @param int $종목가격
* @return int
*/
function 국내주식_호가단위_올림( int $종목가격 ) : int
{
$호가단위 = 국내주식_호가단위_구하기($종목가격);
return ceil($종목가격 / $호가단위) * $호가단위;
}
관련링크
