본문으로 건너뛰기

시작하기

Local API를 켜고, 토큰을 받고, Python이나 TypeScript로 첫 요청을 보냅니다.

이 페이지는 실행 중인 터미널에서 시작해, 직접 만든 프로그램으로 실시간 데이터를 받을 때까지 안내합니다. 프로그램은 127.0.0.1하고만 통신하고, 거래소와는 터미널이 통신합니다.

API 켜기

터미널에서 Settings App → 일반을 열고 Local API를 켭니다. 재시작은 필요 없습니다.

이 항목에 포트가 표시됩니다. 터미널을 SPECTRE_LOCAL_API_PORT 환경 변수와 함께 시작하지 않았다면 포트는 48180입니다. 나중에 API를 끄면 열려 있는 스트림이 코드 1001로 닫힙니다.

토큰 받기

같은 항목에서 토큰 복사를 누르고, 토큰을 프로그램의 환경 변수에 넣습니다. 아래 값은 예시입니다.

export SPECTRE_LOCAL_API_TOKEN=spt_0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef

Windows에서 setx는 그 뒤에 연 명령 창부터 적용됩니다.

토큰은 주문 넣기를 포함해 터미널 창이 할 수 있는 모든 일을 허용합니다. 커밋하거나 버그 리포트에 붙여 넣지 마십시오. 같은 항목의 토큰 재발급은 토큰을 즉시 교체합니다.

클라이언트 설치

pip install spectre-terminal

첫 요청 보내기

from spectre_terminal import Terminal

terminal = Terminal.discover()
meta = terminal.meta()
print(meta.app_version, meta.scopes, meta.topics)

discover()는 포트를 찾고, 환경 변수에서 토큰을 읽고, 테스트 요청을 한 번 보냅니다. 토큰이 틀렸거나 터미널이 실행 중이 아니면 첫 데이터 호출이 아니라 여기에서 실패합니다. 탐색이 실패할 때를 참고하십시오.

데이터 읽기

for connection in terminal.connections():
    print(connection.id, connection.exchange, connection.market, connection.status.state)

book = terminal.orderbook("binance:futures:BTCUSDT", depth=5)
for price, size in book.bids:
    print(price, size)

종목에는 주소가 있습니다: exchange:market:symbol. 심볼은 거래소가 쓰는 표기 그대로 씁니다. 시장 데이터를 참고하십시오.

실시간 데이터 받기

import asyncio

async def main():
    async with terminal.stream() as stream:
        await stream.subscribe("trades", "binance:futures:BTCUSDT")
        async for frame in stream:
            print(frame)

asyncio.run(main())

이 루프는 체결이 도착하는 대로 출력합니다. 스트리밍을 참고하십시오.

제공되지 않는 것

거래 호출의 응답은 거래소가 무엇을 했는지 알려 주지 않습니다. accepted는 터미널이 명령을 접수했다는 뜻입니다. 결과는 계정에서 읽습니다. 거래를 참고하십시오.

모스크바 거래소(MOEX)는 지원하지 않습니다. 시장 데이터도 거래도 없습니다.

브라우저 페이지에서 보낸 요청은 거부됩니다.

이 페이지의 내용