개발이야기 002. talkit.bank 첫번째 프로그램 - 바이낸스 Earn 이자율 조회 및 저장하기
안녕하세요 @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)