평범한 이야기들

[PHP] PHP를 이용해 업비트(upbit) API 통신하기 #2 분, 일 캔들 정보 가져오기 본문

평범한 개발 이야기/PHP

[PHP] PHP를 이용해 업비트(upbit) API 통신하기 #2 분, 일 캔들 정보 가져오기

songsariya 2021. 3. 22. 17:10
728x90

지난번에 이어서 이번에는 분, 일 캔들 정보를 가져올 예정입니다.

 

>> 관련 레퍼런스 자료 조회 

 

 분봉, 일봉은 가장 기본적이 코인의 정보가 들어가 있습니다. 시가, 고가, 저가, 종가 등등 해당 코인의 거래 정보가 담겨있어서 이 정보를 이용해 다양한 보조지표가 나오게 됩니다. 레퍼런스를 확인해보면 분봉은 1, 3, 5, 15, 10, 30, 60, 240분 단위를 설정 할 수 있습니다. 일은 하루의 지표가 나오게 됩니다.

 

 업비트에서 제공하는 캔들 정보는 REST API를 이용해 가져오게 되며 특별히 API 키를 사용하지 않고 가져올 수 있게 되어있습니다. 즉 누구나 해당 주소를 이용해 정보를 가져올 수 있습니다.

 

아래는 소스 코드 입니다. 분,일 캔들을 가져오는 URL를 만들어 전송한 후 데이터를 받습니다. 지난번에 이어 UpbitApi Class의 메서드로 추가했습니다.

// in UpbitApi Class

public function getMinutesCandles($requestData)
    {
        $unit = $requestData["unit"]; // 분 단위 1 3 5 15 10 30 60 240 분 캔들 조회
        $market = $requestData["market"]; // 마켓 코드
        $count = $requestData["count"]; // 캔들 갯수(최대 200개)
        $to = $requestData["to"]; // 마지막 캔들 시각 포맷 (yyyy-MM-dd'T'HH:mm:ss'Z') 또는 (yyyy-MM-dd HH:mm:ss) 비어서 요청시 가장 최근 캔들

        $url = "https://api.upbit.com/v1/candles/minutes/{$unit}?market={$market}&count={$count}&to={$to}";

        $responseData = $this->call(array(
            "url"       => $url,
            "header"    => array(),
        ));

        return $responseData;
    }

    public function getDaysCandles($requestData)
    {
        $market = $requestData["market"]; // 마켓 코드
        $count = $requestData["count"]; // 캔들 갯수(최대 200개)
        $to = $requestData["to"]; // 마지막 캔들 시각 포맷 (yyyy-MM-dd'T'HH:mm:ss'Z') 또는 (yyyy-MM-dd HH:mm:ss) 비어서 요청시 가장 최근 캔들
        $convertingPriceUnit = $requestData["convertingPriceUnit"]; // 종가 환산 화폐 단위 (생략 가능 KRW로 명시할 시 원화 환산 가격을 반환)

        $url = "https://api.upbit.com/v1/candles/days?market={$market}&count={$count}&to={$to}&convertingPriceUnit={$convertingPriceUnit}";

        $responseData = $this->call(array(
            "url"       => $url,
            "header"    => array(),
        ));

        return $responseData;
    }

 

그리고 적당한 파라미터 값을 추가해서 테스트를 하면 아래와 같이 캔들 정보를 가져오게 됩니다.

 

1분 캔들 정보 리스트 화면

 

이와 같은 방법으로 주, 월 캔들의 정보도 메서드로 구분하여 만들어서 사용하면 될 것 같습니다. 저는 일단 분, 일 캔들 정보를 이용하려고 따로 작업하지는 않았습니다. 

728x90
Comments