ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • FTX 거래소 API 이용하기 - 펀딩피 불러오기
    기타/가상화폐 2021. 9. 13. 10:21
    반응형

    잘 알려져 있지도 않고, 거래량이 많은 것도 아니며, 수수료가 싼 것도 아닌 FTX를 굳이 이용하려는 사람은 대부분 일반적인 트레이딩은 잘 하지 않을 것이다.

    펀딩피 받아먹는 걸 좋아하는 사람이 많을 거라고 본다. 다른 거래소와 다르게 매시간 펀딩피를 지급하기 때문이다.

    나도 그거 외의 경우엔 거의 안 쓴다.

     

    FTX의 펀딩피 데이터를 받는 경로는 세 가지가 있다.

    1. 홈페이지에서 csv 파일로 받기 

    2. CCXT 라이브러리 이용하기 

    3. api 이용하기 

     

    그런데 홈페이지에서 다운로드하는 건 번거롭고, ccxt에서는 무슨 방법을 써도 펀딩피 데이터가 안 불러와진다.

    펀딩피를 불러오는 함수는 있지만 거래소 자체가 따로 지원을 안 하는 것 같다. 

    그래서 파이썬으로 FTX의 api를 이용해서 펀딩피 데이터를 가져오는 방법에 대해 알아보자.

    API 기본적인 조회법 

    https://docs.ftx.com

     

    API Documentation

    Overview Welcome to the FTX API documentation. We offer complete REST, Websocket, and FIX APIs to suit your algorithmic trading needs. You can find sample code for each connectivity option at https://github.com/ftexchange/ftx. REST API HTTP-based API with

    docs.ftx.com

    홈페이지의 api문서를 보면 잘 나와있다.

    나는 전공자도 아니고 전문적으로 배워본 적도 없어서 솔직히 무슨 설명인지는 대부분 모르겠다. 

    대충 아래의 이 부분만 알고있으면 사용하는 데 큰 문제는 없는 것 같다.

     

    REST endpoint URL: https://ftx.com/api
    Requests and responses use JSON.

     

    대충 ftx.com/api로 데이터를 요청해서 json 형식으로 받는다는 뜻이다.

    따라서,

    import requests
    requests.get('https://ftx.com/api/원하는 내용').json()

    이런식으로 요청을 넣으면 된다.

     

    펀딩피 불러오기 

    api문서의 futures(선물) 항목의 get funding rates라는 하위항목을 보자.

    /funding_rates 로 요청을 넣으면 아래와 같은 응답이 나온다고 적혀있다. 

     

    제시한 방식대로 입력하면 아래와 같은 결과를 얻을 수 있다. 

    api 문서에 따르면 불러오는 데이터의 시작시간과 종료시간을 설정할 수 있다고 되어있는데,

    부족한 내 실력 탓인지 안 된다. 

    문서에서 제시한 방법대로라면 아래와 같이 작성하면 된다. 

    requests.get('http://ftx.com/api/funding_rates/?start_time=1559881511&end_time=1559881711').json()
    #start_time, end_time에는 원하는 시간을 timestamp 형식으로 입력

    간단한 데이터 가공 

    펀딩피 전략을 이용하려면 당연히 해당 종목이 FTX에 현물시장과 선물시장이 있어야 한다.

    그러므로 우선은 현물, 선물시장 모두 존재하는 종목을 찾아야 한다 

    temp = ftx.fetch_tickers()
    ticker = [] 
    exception = ['PAXG-PERP','XAUT-PERP','CUSDT-PERP'] # 쓸모없는 종목 필터링 
    spot = [] # 현물시장 존재여부 체크 
    for i in temp:
        if '-PERP' in i and i not in exception:
            ticker.append(i)
    # 현물시장 여부 필터링 
    temp2 = ftx.fetch_tickers()
    spot = [] 
    for i in temp2: ## 현물시장 티커 조회 
        if '/USD' in i:
            x = i.split('/USD')[0] + '-PERP'
            spot.append(x)
    ## 현선물 공통된 종목 뽑아내기
    for i in ticker:
        if i in spot:
            pass
        else:
            ticker.remove(i)

    그런 다음 펀딩피를 조회하고 데이터프레임으로 만들자 

    temp = requests.get('https://ftx.com/api/funding_rates').json()['result']
    dic = {} 
    for idx in range(len(temp)):
        name = temp[idx]['future']
        ff = round(temp[idx]['rate']*100,4)
        dic[name] = ff 
    df = pd.DataFrame(index=dic.keys(),data=dic.values(),columns=['FF(%)'])
    df.sort_values(by='FF(%)',ascending=False)

    펀딩피(%)가 높은 순으로 정렬하면 아래와 같이 나오게된다.

    이제 이 데이터를 자유롭게 가공해서 투자하면 된다.

    반응형

    댓글

Designed by Tistory.