Notice
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- open_interest
- 코인
- Query_Premium_Index_Kline
- 머신러닝
- 자동매매
- 프리미엄지수
- Python
- orderbook
- 모멘텀지표
- 롱숏비율
- myposition
- Query_Index_Price_Kline
- Query_Kline
- 호가창
- latest_big_deal
- Bybit
- bitcoin
- 백테스팅
- 데이터불러오기
- 변동성돌파
- API
- 파아썬
- 파이썬
- xgboost
- Public_Trading_Records
- place_active_order
- 바이비트
- Machine Learning
- kline
- 비트코인
Archives
- Today
- Total
돈벌고싶다
가격 데이터, 지수 가격 데이터, 그리고 프리미엄 지수 가격 데이터 본문
728x90
반응형
기본 내용
Query_Kline, Query_Index_Price_Kline, Query_Premium_Index_Kline 세 가지를 시각화하여 비교해 서로 어떤 관계에 있는지 보겠다. 각각에 대한 기본 쿼리와 정의는 다음 링크를 타고 가면 볼 수 있다.
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
반응형
'코인과코딩, 그리고 인공지능' 카테고리의 다른 글
파이썬을 이용한 페어 트레이딩과 실패 (1) | 2022.08.29 |
---|---|
Back Testing의 함정 (0) | 2022.07.31 |
머신러닝으로 지지선 & 저항선 긋기 (10) | 2022.07.22 |
파이썬으로 모멘텀 지표 주가추세 매매 백테스팅 (0) | 2022.06.30 |
파이썬을 이용한 매우 간단한 백테스팅 (1) | 2022.04.27 |
Comments