돈벌고싶다

가격 데이터, 지수 가격 데이터, 그리고 프리미엄 지수 가격 데이터 본문

코인과코딩, 그리고 인공지능

가격 데이터, 지수 가격 데이터, 그리고 프리미엄 지수 가격 데이터

coinwithpython 2022. 5. 16. 21:24
728x90
반응형

기본 내용

Query_Kline, Query_Index_Price_Kline, Query_Premium_Index_Kline 세 가지를 시각화하여 비교해 서로 어떤 관계에 있는지 보겠다. 각각에 대한 기본 쿼리와 정의는 다음 링크를 타고 가면 볼 수 있다.

 

https://tfrecord.tistory.com/entry/%EB%B0%94%EC%9D%B4%EB%B9%84%ED%8A%B8-%ED%8C%8C%EC%9D%B4%EC%8D%AC-API-query-kline

 

바이비트 파이썬 API - query kline

정의 공식 documents에는 "Get kline"이라는 한줄의 설명만 존재한다. 사전에 kline이 무엇인지 검색 할 경우 사람 이름이라는 것 정도로만 나오며, 독일어로 "작다"라는 뜻이라고도 한다. 아무래도 적

tfrecord.tistory.com

https://tfrecord.tistory.com/entry/%EB%B0%94%EC%9D%B4%EB%B9%84%ED%8A%B8-%ED%8C%8C%EC%9D%B4%EC%8D%AC-API-query-index-price-kline

 

바이비트 파이썬 API - query index price kline

정의 Query Kline 과 비슷해 보이지만, 지수 가격 데이터를 불러온다. 지수가격이란 암호화폐 현물거래소들에서 실제 거래되는 암호화폐의 평균가격을 뜻한다. 바이비트 공식 홈페이지에서 바이비

tfrecord.tistory.com

https://tfrecord.tistory.com/entry/%EB%B0%94%EC%9D%B4%EB%B9%84%ED%8A%B8-%ED%8C%8C%EC%9D%B4%EC%8D%AC-API-query-premium-index-kline

 

바이비트 파이썬 API - query premium index kline

정의 과연 개인이 알아야 하는 정보인가 싶다. Premium Index를 이해하기 위해서는 펀딩부터 이해해야 한다. 그렇다면 펀딩은 무엇인가? 펀딩은 일반 투자자 입장에서는 이자같은 존재로, 무기한 계

tfrecord.tistory.com

 


 

1. 데이터 불러오기

# 라이브러리 호출
import pandas as pd
from pybit import usdt_perpetual
import matplotlib.pyplot as plt

# request를 위한 session 정의
session = usdt_perpetual.HTTP("https://api-testnet.bybit.com")

# premium index data
response = session.query_premium_index_kline(symbol="BTCUSDT", interval=30, limit=200, from_time=1600544880)['result']
data_premium = pd.DataFrame(response)
data_premium = data_premium.drop(['symbol', 'period'], axis=1)
data_premium.columns = ['open_time', 'p_open', 'p_high', 'p_low', 'p_close']

# index data
response = session.query_index_price_kline(symbol="BTCUSDT", interval=30, limit=200, from_time=1600544880)['result']
data_index = pd.DataFrame(response)
data_index = data_index.drop(['symbol', 'period', 'open_time'], axis=1)
data_index.columns = ['i_open', 'i_high', 'i_low', 'i_close']

# bybit market data
response = session.query_kline(symbol="BTCUSDT", interval=30, limit=200, from_time=1600544880)['result']
data = pd.DataFrame(response)
data = data.drop(['symbol', 'period', 'interval', 'start_at', 'open_time'], axis=1)

# merge all
df = pd.concat([data_premium, data_index, data], axis=1)
df['close'] = df['close'].astype('float')
df['p_close'] = df['p_close'].astype('float')
df['i_close'] = df['i_close'].astype('float')

 

각각의 함수를 이용해 3가지 데이터를 모두 물러오고, 서로 column명이 겹치기 때문에 수정해주었다. 마지막으로 데이터 merge 후 시각화를 위해 string 형태인 데이터들을 float로 변환하였다.

 


 

2. 데이터 시각화

df[['close', 'i_close', 'p_close']][150:].plot(secondary_y='p_close', figsize=(10, 8))
plt.axhline(y=0, color='r', linestyle='--', linewidth=1)

 

종가 데이터만 가져와 비교해보자

 

premium index의 경우 축을 오른쪽으로 뺐다. 그래프를 보면 역시 현물인 index price가 선행되어지고, 바이비트의 market price가 후행되어지는 것으로 보이긴 하나, 그렇다고 무조건 따라가는 것으로는 보여지지 않는다(x좌표 160 부근).

premium index 값이 양수에서 음수로, 음수에서 양수로 전환할 때 index price와 market price가 교차하는 것을 볼 수 있다. 따라서 premium index의 값이 0에 수렴하려는 경우 현물 가격과 시장 가격이 차이가 가장 적고, premium index의 절대값이 커질수록 차이가 벌어진다고 할 수 있다.

728x90
반응형
Comments