하아찡

C# 업비트 API 캔들데이터처리 본문

C#/업비트

C# 업비트 API 캔들데이터처리

하아찡 2025. 5. 22. 23:40

API 호출 목록 북마크사이트

https://mysitecollection.com/guest/1/19/coinapi

 

내사이트모음

자신만의 사이트를 저장해두고 사용합니다.

mysitecollection.com


캔들 처리 데이터는 1분단위로 받아오는걸로 처리를 했습니다.

 

업비트쪽 RestAPI URI 주소입니다.

https://api.upbit.com/v1/candles/minutes/1

 

해당 URI를 가지고 호출을 하는데 추가적인 부분들이 더 붙습니다.

https://api.upbit.com/v1/candles/minutes/1?market={코인명}&count={호출캔들}&to={호출시점}

보시면 Get방식으로

*market, count, to 이렇게 3가지 값을 받습니다.

market은 필수적으로 입력을 해주셔야합니다.

count to는 기본값이 정해져있습니다

count는 입력하지않으면 기본값은 1 => 한번의 호출로 최대로 받아올 수 있는 캔들의 수는 200개 입니다.

to는 기본값이 정해지지않으면 현재시간으로 기준으로 받아오게 됩니다.

 

해당 호출로 데이터를 받아오면 아래 이미지와 같이 데이터가 들어옵니다.

들어오는 순서를 보시면 가장 최근 시간이 가장 처음에오고 점점점 나중의 시간으로 오게됩니다.

 

그래서 이전글 코드를보시면( 코드 일부분만 가져왔습니다 자세한 코드는 https://thesh.tistory.com/128 참고해주세요)

LinkedList<Candle> candles;
foreach (var item in jsonArray.Children())
{
    Candle i = new Candle();
    i.Utc = item["candle_date_time_utc"].ToString();
    i.Kst = item["candle_date_time_kst"].ToString();

    i.Op = Convert.ToDouble(item["opening_price"].ToString());
    i.Hp = Convert.ToDouble(item["high_price"].ToString());
    i.Lp = Convert.ToDouble(item["low_price"].ToString());
    i.Tp = Convert.ToDouble(item["trade_price"].ToString());

    i.Timestamp = Convert.ToInt64(item["timestamp"].ToString());

    //i.change_rate = Convert.ToDouble(item["change_rate"].ToString());


    i.Candle_acc_trade_price = Convert.ToDouble(item["candle_acc_trade_price"].ToString());
    i.Candle_acc_trade_volume = Convert.ToDouble(item["candle_acc_trade_volume"].ToString());
    candles.AddFirst(i);



}

 

LinkedList를 사용해서 앞 뒤로 데이터를 집어 넣을 수 있게 작업했습니다.

차트 데이터로 사용하기위해서는 나중에 실시간으로 받는 데이터는 맨뒤로 넣는 작업도 필요하기에 List로 사용하지않고 LinkedList로 사용하게 됐습니다.

 

그 결과 API호출로 데이터를 받아오는건 맨앞으로 계속넣으면 원하는 형태의 차트 데이터로 들어가게 됩니다.

기존에 API호출로 받은 데이터는 "최근데이터 -> 오래된 데이터" 이고,

차트로 필요한 데이터는 항상 "오래된 데이터 -> 최근 데이터" 순서임으로 위와같이 작업하여 처리했습니다.

반응형

'C# > 업비트' 카테고리의 다른 글

C# 업비트 차트 라이브 처리  (0) 2025.05.26
C# 업비트 캔들 작업 이슈  (1) 2025.05.24
C# 업비트API 요청수 제한  (1) 2025.05.22
C# 업비트 APIKey 인증  (0) 2025.05.21
C# 업비트 Websocket 연결  (0) 2025.05.20