본문 바로가기

Python 파이썬 공부하기

파이썬 초보의 Daybit API 이용하기 - 3. 서버 시간 알아오기 - get_server_time()

728x90
반응형


 이번에 볼 것은 Daybit 서버 시간을 알아오는 예제입니다.




모든 예제는 Daybit API 문서를 참고합니다.


https://docs.daybit.com/kr






문서에 get_server_time() 부분을 참고하였습니다.


왼쪽 부분은 이 함수의 쓰임새와 대략적인 정보에 대해 나와있습니다.




Rate limit의 뜻은 문서에도 찾아보면 나와있지만 간단히 설명드리겠습니다.


각 API는 매 초마다 호출 제한이 있는데, 이 제한을 넘기면 에러를 발생합니다.


이 때 매초마다 몇번까지 호출 할 수 있는지의 제한이 Rate limit입니다.


get_server_time()의 경우 Rate limit이 10이므로


1초에 10번까지 호출을 할 수 있다는 뜻입니다.




오른쪽엔 간단한 예제입니다.

만약 API key를 환경변수로 설정하지 않았다면

아래를 실행하면 서버에 연결할 수 없다고 에러를 뜹니다.




그럴때는 저번 시간에 했던 것처럼

daybit 객체를 생성할 때 API key를 직접 입력해줍니다.

앞으로 모든 예제에서 daybit 객체를 불러 올 때, 다음과 같이 하면 됩니다.



     from pydaybit import Daybit, PARAM_API_KEY, PARAM_API_SECRET  #필수 import


     async with Daybit(params={PARAM_API_KEY: "여기에 자신의 Active key 입력",

                                         PARAM_API_SECRET: "여기에 자신의 Secret key 입력"}) as daybit:


다음부터 이 설명은 생략하도록 하겠습니다.



그렇게 해서 프로그램을 실행하면 결과값이 출력이됩니다.

제가 실행한 결과값은 :

1540102796459 입니다.


인간이 알아볼 수 없는 숫자군요..

이것을 사람이 알아 볼 수 있는 시간으로 변환해야합니다.



다음과 같이 시간으로 변환하면 됩니다.

예제 : 

import asyncio
from pprint import pprint

from pydaybit import Daybit, PARAM_API_KEY, PARAM_API_SECRET
from datetime import datetime


async def daybit_get_server_time():
async with Daybit(params={PARAM_API_KEY: "Your active key",
PARAM_API_SECRET: "Your secret key"}) as daybit:

pprint(await daybit.get_server_time())

timestamp = await daybit.get_server_time()
time = datetime.fromtimestamp(timestamp / 1000)

pprint(time)
print(time.year)
print(time.month)
print(time.day)
print(time.hour)
print(time.minute)
print(time.second)
print(time.microsecond)



asyncio.get_event_loop().run_until_complete(daybit_get_server_time()) 


from datetime import datetime을  먼저 import 해줍니다.

그리고 받아온 서버 시간을 다음과 같이 계산합니다.

time = datetime.fromtimestampe(받아온 서버시간/1000)


이 time을 출력해보면 우리가 아는 시간으로 변환된 것을 알 수 있습니다.

각각 년도, 월, 날짜, 시간, 분, 초 등에 접근하려면

time.year, time.month ... 등으로 접근하면 됩니다.


결과 :





서버 시간을 받아서 어떻게 활용하면 좋을까요?

Daybit에서는 매시간 마다 거래를 하면 Day를 채굴 할 수 있습니다.



매시간 한정된 Day 토큰을 채굴할 수 있는데, Day 리워드율이 높을 경우

5분안에 채굴이 끝나기도 합니다.

채굴이 끝난 경우는 거래를 해도 Day 토큰을 얻을 수 없고, 다음 타임을 기다려야 하죠.


서버 시간을 알 수 있으면 매시간 리셋될 때 마다 

거래를 시작할 수 있습니다.


만약 정각에서 10분동안만 거래를 하고 싶고 싶을 때 쓸 수 있겠죠.

그럴 경우 아래와 같이 쓸 수 있겠습니다.


예제 : 

if time.minute >= 0 and time.minute <5:

#여기에 거래 action 추가




읽어주셔서 감사합니다.

Daybit 초대 코드를 입력하지 않으신 분이 있다면 저의 초대코드를 입력해주시면 감사하겠습니다.

초대 코드 : ZkMZdral



출처: http://roddong.tistory.com/358?category=817949 [두부킹 블로구]





반응형