cryptocurrency 잠재력을 파이썬으로 함께 가져 왔습니다.

사용환경


  • 파이썬 3.5.1
  • Anaconda 4.0.0

  • 전치



    CoinMarketCap 라고 하는 사이트에 기재되어 있는 정보를 바탕으로, 만일 다른 알토가 비트코인의 시가총액에 도달했을 경우, 대BTC비로 어느 정도의 잠재력(현재 가격으로부터 어느 정도의 배율로 늘어나는지) 가 있는가를 보는 것으로 향후의 알토코인의 포텐셜 측정할 수 있습니다.

    이것은 다른 상위 알토코인이 비트코인의 도미넌스를 먹었을 경우의 엑지트의 포인트의 기준에도 약에 서 있다고 개인적으로 생각하고 있습니다.

    그런 이유로, 가고 싶습니다.

    도출 절차



    API 얻기



    먼저 CoinMarketCap JSON API Documentation Version1 의 Ticker(시계 목록)를 가져오기 위해 API에 GET 메서드를 요청합니다.

    cmc_coin_potential.py
    import urllib.request
    import json
    
    url = 'https://api.coinmarketcap.com/v1/ticker/?limit=100'
    response = urllib.request.urlopen(url)
    cmc_ticker = json.loads(response.read().decode('utf8'))
    
    ?limit= 의 파라미터의 수치를 변경하는 것으로, 취득하고 싶은 수를 변경할 수가 있습니다. 여기에서는 2-100위의 잠재력을 조사하고 싶기 때문에 100을 지정하고 있습니다.

    그런 다음 urllib.request.urlopen에서 url에 요청을 던지고 반환 된 데이터를 response에 저장합니다.

    이것은 http.client.HTTPResponse 형식으로 저장되므로 .read()로 읽고 json.loads에서 python으로 처리 할 수있는 데이터 형식으로 변환합니다.

    내용은 리스트형에 각각의 동전이 사전형으로 저장되어 있습니다.

    다음은 실제 데이터입니다.
    [{
        "id": "bitcoin", 
        "name": "Bitcoin", 
        "symbol": "BTC", 
        "rank": "1", 
        "price_usd": "15424.4", 
        "price_btc": "1.0", 
        "24h_volume_usd": "22149000000.0", 
        "market_cap_usd": "258868090810", 
        "available_supply": "16783025.0", 
        "total_supply": "16783025.0", 
        "max_supply": "21000000.0", 
        "percent_change_1h": "-0.78", 
        "percent_change_24h": "1.89", 
        "percent_change_7d": "3.84", 
        "last_updated": "1515129861"
    }, 
    {
        "id": "ripple", 
        "name": "Ripple", 
        "symbol": "XRP", 
        "rank": "2", 
        "price_usd": "3.18734", 
        "price_btc": "0.00021254", 
        "24h_volume_usd": "7896020000.0", 
        "market_cap_usd": "123474825937", 
        "available_supply": "38739144847.0", 
        "total_supply": "99993093880.0", 
        "max_supply": "100000000000", 
        "percent_change_1h": "-1.3", 
        "percent_change_24h": "-9.92", 
        "percent_change_7d": "106.57", 
        "last_updated": "1515129841"
    }]
    

    도출 방법



    잠재력은 비트코인 ​​가격에서 비트코인 ​​발행 매수를 비교한 배율을 나누고, 그 결과를 각각의 통화 가격으로 나누어 산출합니다. 라고 말해도 모르겠네요.

    참고까지, 식을 기재해 둡니다.

    (BTC 가격 ÷ (알트 발행 매수 ÷ BTC 발행 매수)) ÷ 알트 가격

    이것을 상위 100위까지 적용해 실행합니다.

    cmc_coin_potential.py
    btc_supply = float(cmc_ticker[0]['available_supply'])
    btc_price_usd = float(cmc_ticker[0]['price_usd'])
    
    all_id = []
    all_supply = []
    all_price = []
    potential_result = []
    
    
    for i in range(len(cmc_ticker) - 1):
        all_id.append(cmc_ticker[i + 1]['id'])
        all_supply.append(float(cmc_ticker[i + 1]['available_supply']))
        all_price.append(float(cmc_ticker[i + 1]['price_usd']))
    
        potential_result.append(round(((btc_price_usd / (all_supply[i] / btc_supply)) / all_price[i]), 2))
    

    우선, 리스트의 선두에 있는 BTC의 공급량과 가격을 각각 btc_supply , btc_price_usd 에 격납합니다. 이 때, 꺼내지는 정보가 캐릭터 라인이었으므로, float() (을)를 사용해 변환하고 있습니다.

    다음으로 상위 알트 이름 all_id (나중에 내보낼 때 사용합니다), 공급량 all_supply , 가격 all_price 를 저장하는 목록을 만든 다음 알토 코인에 대한 정보를 추가하고 있습니다. 이 때 비트코인의 정보가 들어가지 않도록 요소의 수를 하나씩 시프트하고 있습니다.

    이러한 정보로부터 포텐셜을 산출해, .append() 에 결과를 추가해 갑니다.

    내보내기



    내보내기에는 potential_result 의 내보내기가 쉽기 때문에 그것을 사용했습니다.

    cmc_coin_potential.py
    import pandas as pd
    
    potential_df = pd.DataFrame({'id': all_id, 'potential_result': potential_result}, index=list(range(2, len(cmc_ticker) + 1)))
    
    potential_df.to_csv('cmc_coin_potential.csv')
    
    Pandasid 의 데이터 프레임을 작성해, potential_result 파일로 써내고 있습니다.

    출력 결과는 다음과 같습니다. (보기 쉽도록 PDF로 출력하고 있습니다)



    6위에서 텐버거, 21위에서 핸들렛 버거를 노리는 잠재력이 있다는 결과가 되었습니다. 물론, 비트코인과 동등한 가치가 되면 이야기입니다만, 그래도 굉장한 포텐셜이군요.

    비고


    csv 그리고 모두 변환하고 있는 것은 중복이구나, 라고 쓰고 나서 생각했습니다.

    또, 뭔가 조언이 있으면 코멘트 남겨 주시면 다행입니다.

    그럼.

    좋은 웹페이지 즐겨찾기