adicionada chamada 'coin_ohlc_chart_by_id()'
This commit is contained in:
@ -765,17 +765,69 @@ def coin_historical_chart_data_within_time_range_by_id(
|
|||||||
# print(f'erro {codigo}: {dados}')
|
# print(f'erro {codigo}: {dados}')
|
||||||
|
|
||||||
|
|
||||||
def coin_ohlc_chart_by_id() -> tuple:
|
def coin_ohlc_chart_by_id(
|
||||||
pass
|
id_criptomoeda: str = '',
|
||||||
|
vs_currency: str = '',
|
||||||
|
days: str = '',
|
||||||
|
precision: str | int = 'full'
|
||||||
|
) -> tuple:
|
||||||
|
'''https://docs.coingecko.com/v3.0.1/reference/coins-id-ohlc
|
||||||
|
|
||||||
|
este endpoint permite fazer consulta ao gráfico OHLC (Open, High, Low, Close)
|
||||||
|
de uma moeda usando o seu id
|
||||||
|
'''
|
||||||
|
# dicionario parametros
|
||||||
|
api_parameters: dict = {
|
||||||
|
'id': '',
|
||||||
|
'vs_currency': '',
|
||||||
|
'days': '',
|
||||||
|
'precision': '',
|
||||||
|
}
|
||||||
|
# validacao de parametros
|
||||||
|
# id_criptomoeda (como 'id' é nome reservado, foi usado outro nome)
|
||||||
|
if not isinstance(id_criptomoeda, str):
|
||||||
|
raise TypeError('\'id_criptomoeda\' tem de ser do tipo \'str\'')
|
||||||
|
if id_criptomoeda == '':
|
||||||
|
raise ValueError('\'id_criptomoeda\' tem de ser definido')
|
||||||
|
api_parameters['id'] = id_criptomoeda
|
||||||
|
# vs_currency
|
||||||
|
if not isinstance(vs_currency, str):
|
||||||
|
raise TypeError('\'vs_currency\' tem de ser do tipo \'str\'')
|
||||||
|
if vs_currency == '':
|
||||||
|
raise ValueError('\'vs_currency\' tem de ser definido')
|
||||||
|
api_parameters['vs_currency'] = vs_currency
|
||||||
|
# days
|
||||||
|
if not isinstance(days, str):
|
||||||
|
raise TypeError('\'days\' tem de ser do tipo \'str\'')
|
||||||
|
if days == '':
|
||||||
|
raise ValueError('\'days\' tem de ser definido')
|
||||||
|
api_parameters['days'] = days
|
||||||
|
# precision
|
||||||
|
if not isinstance(precision, (str, int)):
|
||||||
|
raise TypeError('\'precision\' tem de ser do tipo \'(str, int)\'')
|
||||||
|
if isinstance(precision, str):
|
||||||
|
if precision != 'full':
|
||||||
|
precision = 'full'
|
||||||
|
if precision == 'full':
|
||||||
|
precision = '18'
|
||||||
|
precision = int(precision)
|
||||||
|
if isinstance(precision, int):
|
||||||
|
if precision < 0:
|
||||||
|
precision = 0
|
||||||
|
if precision > 18:
|
||||||
|
precision = 18
|
||||||
|
precision = str(precision)
|
||||||
|
api_parameters['precision'] = precision
|
||||||
|
|
||||||
|
return API(f'coins/{api_parameters['id']}/ohlc', api_parameters)
|
||||||
|
|
||||||
|
|
||||||
# debug (decomentar linhas seguintes para testar funcao)
|
# debug (decomentar linhas seguintes para testar funcao)
|
||||||
# url, codigo, dados = coins_list_with_market_data('eur', 'bitcoin')
|
# url, codigo, dados = coin_ohlc_chart_by_id('bitcoin','eur','1')
|
||||||
# print(f'url: {url}')
|
# print(f'url: {url}')
|
||||||
# if codigo == 200:
|
# if codigo == 200:
|
||||||
# print(f'codigo: {codigo}')
|
|
||||||
# for item in dados:
|
# for item in dados:
|
||||||
# print(item)
|
# print(f'{item}: {dados}')
|
||||||
# else:
|
# else:
|
||||||
# print(f'erro {codigo}: {dados}')
|
# print(f'erro {codigo}: {dados}')
|
||||||
|
|
||||||
@ -1137,43 +1189,4 @@ def public_companies_holdings() -> tuple:
|
|||||||
# for item in dados:
|
# for item in dados:
|
||||||
# print(item)
|
# print(item)
|
||||||
# else:
|
# else:
|
||||||
# print(f'erro {codigo}: {dados}')
|
# print(f'erro {codigo}: {dados}')
|
||||||
|
|
||||||
|
|
||||||
# =====================================================
|
|
||||||
# fazer consulta de dados OHLC
|
|
||||||
def consulta_ohcl(criptomoeda: str = '',
|
|
||||||
vs_currency: str = '',
|
|
||||||
dias: int | str = 30,
|
|
||||||
precisao: int | str = 3
|
|
||||||
) -> tuple:
|
|
||||||
# validacao de parametros
|
|
||||||
if not isinstance(criptomoeda, str):
|
|
||||||
raise TypeError('\'criptomoeda\' não é do tipo \'str\'')
|
|
||||||
if criptomoeda == '':
|
|
||||||
raise ValueError('\'criptomoeda\' tem de ser definido')
|
|
||||||
if not isinstance(vs_currency, str):
|
|
||||||
raise TypeError('\'vs_currency\' não é do tipo \'str\'')
|
|
||||||
if vs_currency == '':
|
|
||||||
raise ValueError('\'vs_currency\' tem de ser definido')
|
|
||||||
if (not isinstance(dias, str)) and (not isinstance(dias, int)):
|
|
||||||
raise TypeError('\'dias\' não é do tipo \'str\' ou \'int\'')
|
|
||||||
if isinstance(dias, int):
|
|
||||||
dias = str(dias)
|
|
||||||
if (not isinstance(precisao, str)) and (not isinstance(precisao, int)):
|
|
||||||
raise TypeError('\'precisao\' não é do tipo \'str\' ou \'int\'')
|
|
||||||
if isinstance(precisao, int):
|
|
||||||
precisao = str(precisao)
|
|
||||||
|
|
||||||
endpoint_api = 'coins/' + criptomoeda + '/ohlc?vs_currency=' + vs_currency + '&days=' + dias + '&precision=' + precisao
|
|
||||||
url_pedido = url_raiz_API + endpoint_api
|
|
||||||
resposta = requests.get(url_pedido, headers=headers)
|
|
||||||
return resposta.status_code, resposta.json()
|
|
||||||
|
|
||||||
|
|
||||||
# debug (decomentar linhas seguintes para testar funcao)
|
|
||||||
# codigo, dados = consulta_ohcl('dogecoin', 'eur', precisao=5)
|
|
||||||
# if codigo == 200:
|
|
||||||
# print(f'codigo: {codigo}')
|
|
||||||
# for item in dados:
|
|
||||||
# print(item)
|
|
||||||
Reference in New Issue
Block a user