개발이야기 002. talkit.bank 첫번째 프로그램 - 바이낸스 Earn 이자율 조회 및 저장하기

in #kr-dev6 hours ago

image.png

안녕하세요 @talkit.bank 입니다.

저는 구상만 하는 것을 별로 좋아 하지 않아서 ^^

오늘은 프로그램을 일단 하나 짜봤습니다.

우선, 현재의 바이낸스 스팀 EARN이 충분한 가치를 가지는가?를 고려하기 위해서 바이낸스의 STEEM 적금 상품인 Simple Earn STEEM의 이자율을 조회하는 프로그램을 작성했습니다.

mysql> CREATE TABLE binance_simple_earn_flexible (
         collect_time DATETIME NOT NULL,  -- 데이터 수집 시간
         asset VARCHAR(20) NOT NULL,      -- 코인명 (STEEM 등)
         product_id VARCHAR(50) NOT NULL, -- 바이낸스 상품 ID
         latest_apr DECIMAL(10,8) NOT NULL,  -- 연이율 (APR)
         can_purchase BOOLEAN NOT NULL,   -- 가입 가능 여부
         can_redeem BOOLEAN NOT NULL,     -- 출금 가능 여부
         is_sold_out BOOLEAN NOT NULL,    -- 품절 여부
         hot BOOLEAN NOT NULL,            -- 인기 상품 여부
         min_purchase_amount DECIMAL(20,8) NOT NULL, -- 최소 가입 수량
         status VARCHAR(20) NOT NULL,      -- 상품 상태 (예: PURCHASING)
         PRIMARY KEY (collect_time, asset, product_id)  -- PK: 수집 시간 + 코인명 + 상품 ID
    );

우선 상품 정보를 가져오기 위해서 만든 MySQL상의 테이블 Create 문입니다.

python으로 바이낸스 API를 이용해서 python 코딩을 했습니다.

코드는 다음에 공개하는 것으로하고 순서 및 구조를 공개 합니다.

바이낸스 API 접속 관련 정보

MySQL 접속 관련 정보

바이낸스에서 API 조회

사용한 API는 아래와 같습니다.

/sapi/v1/simple-earn/flexible/list

조회한 데이터 파싱

조회한 데이터 MySQL에 Insert

   # SQL INSERT 문

    insert_query = """

    INSERT INTO binance_simple_earn_flexible (

        collect_time, asset, product_id, latest_apr,

        can_purchase, can_redeem, is_sold_out, hot,

        min_purchase_amount, status

    ) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s)

    ON DUPLICATE KEY UPDATE

        latest_apr = VALUES(latest_apr),

        can_purchase = VALUES(can_purchase),

        can_redeem = VALUES(can_redeem),

        is_sold_out = VALUES(is_sold_out),

        hot = VALUES(hot),

        min_purchase_amount = VALUES(min_purchase_amount),

        status = VALUES(status);

    """

음 동일한 시간이 수집 될 경우를 위해서 MySQL 용 머지문을 사용했습니다.

talkit bank를 꿈꾸며 계속 프로그램을 쌓아갈 예정입니다.

mysql> select * from binance_simple_earn_flexible;
+---------------------+-------+------------+-------------+--------------+------------+-------------+-----+---------------------+------------+
| collect_time        | asset | product_id | latest_apr  | can_purchase | can_redeem | is_sold_out | hot | min_purchase_amount | status     |
+---------------------+-------+------------+-------------+--------------+------------+-------------+-----+---------------------+------------+
| 2025-02-04 07:00:00 | STEEM | STEEM001   | 12.23616600 |            1 |          1 |           0 |   0 |          1.00000000 | PURCHASING |
| 2025-02-04 15:00:00 | STEEM | STEEM001   | 12.19026900 |            1 |          1 |           0 |   0 |          1.00000000 | PURCHASING |
| 2025-02-05 00:00:00 | STEEM | STEEM001   | 12.18402900 |            1 |          1 |           0 |   0 |          1.00000000 | PURCHASING |
+---------------------+-------+------------+-------------+--------------+------------+-------------+-----+---------------------+------------+

실제로 수집 될 데이터는 위와 같습니다. 이자율이 조금씩 줄어 들고 있네요 ^^

감사합니다.



Posted through the ECblog app (https://blog.etain.club)

Coin Marketplace

STEEM 0.17
TRX 0.22
JST 0.035
BTC 98029.56
ETH 2728.56
SBD 3.23