찾다
백엔드 개발파이썬 튜토리얼Python을 사용하여 바이낸스의 과거 거래를 쉽게 얻을 수 있습니다.

Python을 사용하여 바이낸스의 과거 거래를 쉽게 얻을 수 있습니다.

일부 전략에는 특정 수준의 기술 데이터가 필요한 반면 다른 전략에는 한 시간만 소요될 수 있다는 점을 감안할 때 프로세스가 항상 간단하지는 않으며 인프라, 가용성 및 연결성과 같은 요소는 데이터에 따라 달라질 수 있습니다. 종류는 매우 다양합니다.

그런데 왜 이 글은 "거래" 데이터를 얻는 것에 대해서만 다루고 있으며, 왜 우리는 바이낸스 API를 사용하고 있나요? 내 기사의 내용에 대해 몇 가지 질문이 있을 수 있습니다.

데이터 빈도 및 밸런싱

거래 데이터 엔드포인트는 주로 99.99%의 거래소에서 사용할 수 있다고 말하고 싶습니다. 이는 세분화되어 있으며, 고주파 거래(HFT) 전략 백테스팅을 위한 충분한 세부 정보(일부 매우 구체적인 경우)를 제공하며 OHLC 캔들(원하는 경우 1S ~ 24H 이상) 기반으로 사용할 수 있습니다.

거래 데이터는 보편적이며 다양한 빈도의 전략을 사용하여 수많은 실험을 허용합니다.

바이낸스를 선택하는 이유는 무엇인가요?

그 이유는 제가 거래량 때문에 뒤로 물러나는 경향이 있는 거래소 중 하나이기 때문입니다.

우리가 할 인코딩

한 쌍의 기호, 시작 날짜, 종료 날짜를 명령줄 인수로 받는 Python 스크립트를 만들 예정입니다. 모든 트랜잭션이 포함된 CSV 파일을 디스크에 출력합니다. 이 프로세스는 다음 단계를 통해 자세히 설명할 수 있습니다.

1. 기호, Starting_date 및ending_date 인수를 구문 분석합니다.

2. 시작일에 발생한 첫 번째 거래를 가져와 첫 번째 거래 trade_id를 가져옵니다.

3.ending_date에 도달할 때까지 요청당 1000개의 거래를 얻기 위해 루프를 실행합니다(Binance API 제한).

4. 마지막으로 데이터를 디스크에 저장합니다. 예를 들어 CSV로 저장했지만 다른 옵션이 있으므로 반드시 CSV로 저장할 필요는 없습니다.

5. 팬더, 요청, 시간, sys 및 날짜/시간을 사용합니다. 코드 조각에서는 설명에 값을 추가하지 않으므로 오류 유효성 검사가 표시되지 않습니다.

코딩 시간

스크립트는 다음 매개변수를 사용합니다:

1. 기호: 바이낸스가 정의한 거래 쌍의 기호입니다. 여기에서 쿼리하거나 바이낸스 웹 애플리케이션의 URL에서 복사할 수 있습니다(_ 문자 제외).

Python을 사용하여 바이낸스의 과거 거래를 쉽게 얻을 수 있습니다.

-starting_date 및 end_date: 설명이 필요합니다. 예상되는 형식은 mm/dd/yyyy 또는 Python 속어를 사용하는 %m/%d/%Y입니다.

매개변수를 얻으려면 내장 함수 sys를 사용하고(여기서는 별 내용 없음) 날짜를 구문 분석하기 위해 datetime 라이브러리를 사용할 것입니다.

Python을 사용하여 바이낸스의 과거 거래를 쉽게 얻을 수 있습니다.

end_date 시간 부분이 항상 23:59:59.999가 되도록 하루를 더하고 1마이크로초를 빼서 같은 날 간격을 얻는 것이 더 실용적입니다.

거래 가져오기

Binance의 API와 aggTrades 엔드포인트를 사용하면 시작 및 종료 매개변수를 사용하는 경우 한 번의 요청으로 최대 1000개의 거래를 얻을 수 있으며 그 간격은 최대 1시간입니다.

간격 가져오기를 사용하여 몇 번 실패한 후(어느 시점에서 유동성이 급락하여 일부 귀중한 거래를 잃을 수 있음) from_id 전략을 시도하기로 결정했습니다.

압축된 거래를 반환하므로 aggTrades가 선택한 엔드포인트가 됩니다. 이렇게 하면 우리는 귀중한 정보를 잃지 않을 것입니다.

전체 거래를 압축하여 받으세요. 동일한 주문, 동일한 가격으로 동시에 실행된 거래는 수량을 합산합니다.

from_id 전략은 다음과 같습니다.

날짜 간격을 끝점까지 전송하여 첫 번째 트랜잭션의 시작 날짜를 가져오고 싶습니다. 그 후에는 처음 가져온 트랜잭션 ID부터 시작하여 1000개의 트랜잭션을 얻습니다. 그런 다음 end_date 이후에 마지막 거래가 발생했는지 확인합니다.

그렇다면 모든 기간을 반복했으며 결과를 파일에 저장할 수 있습니다. 그렇지 않으면 from_id 변수를 업데이트하여 마지막 트랜잭션 ID를 얻고 루프를 다시 시작합니다.

첫 번째 거래 번호 가져오기

Python을 사용하여 바이낸스의 과거 거래를 쉽게 얻을 수 있습니다.

먼저 new_end_date를 생성합니다. 이는 startTime 및 endTime 매개변수를 전달하여 aggTrades를 사용하기 때문입니다.

이제 해당 기간의 첫 번째 거래 번호만 알면 되므로 60초를 추가하겠습니다. 유동성이 낮은 통화쌍의 경우 요청 첫날에 거래가 발생한다는 보장이 없으므로 이 매개변수를 변경할 수 있습니다.

그런 다음 도우미 함수를 사용하여 날짜를 구문 분석하고 Calendar.timegm 함수를 사용하여 날짜를 Unix 밀리초 표현으로 변환합니다. timegm 함수는 날짜를 UTC로 유지하므로 선호되는 함수입니다.

Python을 사용하여 바이낸스의 과거 거래를 쉽게 얻을 수 있습니다.

요청에 대한 응답은 다음 형식으로 날짜별로 정렬된 거래 개체 목록입니다.

Python을 사용하여 바이낸스의 과거 거래를 쉽게 얻을 수 있습니다.

첫 번째 거래 ID가 필요하므로 해당 응답을 반환합니다.[0][" 가치.

메인 루프

이제 첫 번째 트랜잭션 ID가 있으므로 end_date에 도달할 때까지 한 번에 1000개의 트랜잭션을 가져올 수 있습니다. 다음 코드는 메인 루프에서 호출됩니다. startDate 및 endDate 매개변수를 삭제하고 from_id 매개변수를 사용하여 요청을 실행합니다.

Python을 사용하여 바이낸스의 과거 거래를 쉽게 얻을 수 있습니다.

이제 요청을 실행하고 DataFrame을 생성하는 메인 루프입니다.

Python을 사용하여 바이낸스의 과거 거래를 쉽게 얻을 수 있습니다.

current_time에 to_date보다 이후에 가장 최근에 가져온 거래 날짜가 포함되어 있는지 확인합니다. 그렇다면 다음과 같이 합니다.

  • from_id 매개변수를 사용하여 거래를 가져옵니다.
  • from_id 및 current_time 매개변수를 최신 트랜잭션
  • 멋진 디버그 메시지 인쇄
  • pd.concat 이러한 트랜잭션은 이전 트랜잭션 DataFrame과 비교됩니다.
  • Binance가 429 HTTP 응답을 제공하지 않도록 sleep을 사용하세요

정리하고 저장합니다

DataFrame을 조립한 후 간단한 데이터 정리를 수행해야 합니다. to_date 이후 발생한 트랜잭션과 중복된 트림이 있는 트랜잭션을 제거하겠습니다. (이 문제는 1000개 트랜잭션의 대부분을 가져오고 있으므로 일부 트랜잭션은 목표 종료 날짜 이후에 실행될 것으로 예상됩니다.)

트림 기능을 캡슐화할 수 있습니다:

Python을 사용하여 바이낸스의 과거 거래를 쉽게 얻을 수 있습니다.

데이터 정리를 수행합니다:

Python을 사용하여 바이낸스의 과거 거래를 쉽게 얻을 수 있습니다.

이제 to_csv 메서드를 사용하여 파일에 저장할 수 있습니다.

Python을 사용하여 바이낸스의 과거 거래를 쉽게 얻을 수 있습니다.

또한 Arctic과 같은 다른 데이터 저장 메커니즘을 사용합니다.

마지막으로: 데이터 확인

거래 전략을 사용할 때 데이터를 신뢰하는 것이 중요합니다. 다음 유효성 검사를 적용하여 가져온 트랜잭션 데이터로 이 작업을 쉽게 수행할 수 있습니다.

Python을 사용하여 바이낸스의 과거 거래를 쉽게 얻을 수 있습니다.

코드 조각에서 DataFrame을 NumPy 배열로 변환하고 행별로 반복하여 트랜잭션 ID가 다음과 같은지 확인합니다. 1씩 증가합니다.

바이낸스 거래 ID는 각 거래 기호마다 증분 번호가 매겨져 생성되므로 데이터가 올바른지 쉽게 확인할 수 있습니다.

PS: 성공적인 거래 전략을 세우는 첫 번째 단계는 올바른 데이터를 확보하는 것입니다.

위 내용은 Python을 사용하여 바이낸스의 과거 거래를 쉽게 얻을 수 있습니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명
이 기사는 51CTO.COM에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제
Python 학습 : 2 시간의 일일 연구가 충분합니까?Python 학습 : 2 시간의 일일 연구가 충분합니까?Apr 18, 2025 am 12:22 AM

하루에 2 시간 동안 파이썬을 배우는 것으로 충분합니까? 목표와 학습 방법에 따라 다릅니다. 1) 명확한 학습 계획을 개발, 2) 적절한 학습 자원 및 방법을 선택하고 3) 실습 연습 및 검토 및 통합 연습 및 검토 및 통합,이 기간 동안 Python의 기본 지식과 고급 기능을 점차적으로 마스터 할 수 있습니다.

웹 개발을위한 파이썬 : 주요 응용 프로그램웹 개발을위한 파이썬 : 주요 응용 프로그램Apr 18, 2025 am 12:20 AM

웹 개발에서 Python의 주요 응용 프로그램에는 Django 및 Flask 프레임 워크 사용, API 개발, 데이터 분석 및 시각화, 머신 러닝 및 AI 및 성능 최적화가 포함됩니다. 1. Django 및 Flask 프레임 워크 : Django는 복잡한 응용 분야의 빠른 개발에 적합하며 플라스크는 소형 또는 고도로 맞춤형 프로젝트에 적합합니다. 2. API 개발 : Flask 또는 DjangorestFramework를 사용하여 RESTFULAPI를 구축하십시오. 3. 데이터 분석 및 시각화 : Python을 사용하여 데이터를 처리하고 웹 인터페이스를 통해 표시합니다. 4. 머신 러닝 및 AI : 파이썬은 지능형 웹 애플리케이션을 구축하는 데 사용됩니다. 5. 성능 최적화 : 비동기 프로그래밍, 캐싱 및 코드를 통해 최적화

Python vs. C : 성능과 효율성 탐색Python vs. C : 성능과 효율성 탐색Apr 18, 2025 am 12:20 AM

Python은 개발 효율에서 C보다 낫지 만 C는 실행 성능이 높습니다. 1. Python의 간결한 구문 및 풍부한 라이브러리는 개발 효율성을 향상시킵니다. 2.C의 컴파일 유형 특성 및 하드웨어 제어는 실행 성능을 향상시킵니다. 선택할 때는 프로젝트 요구에 따라 개발 속도 및 실행 효율성을 평가해야합니다.

Python in Action : 실제 예제Python in Action : 실제 예제Apr 18, 2025 am 12:18 AM

Python의 실제 응용 프로그램에는 데이터 분석, 웹 개발, 인공 지능 및 자동화가 포함됩니다. 1) 데이터 분석에서 Python은 Pandas 및 Matplotlib를 사용하여 데이터를 처리하고 시각화합니다. 2) 웹 개발에서 Django 및 Flask 프레임 워크는 웹 응용 프로그램 생성을 단순화합니다. 3) 인공 지능 분야에서 Tensorflow와 Pytorch는 모델을 구축하고 훈련시키는 데 사용됩니다. 4) 자동화 측면에서 파이썬 스크립트는 파일 복사와 같은 작업에 사용할 수 있습니다.

Python의 주요 용도 : 포괄적 인 개요Python의 주요 용도 : 포괄적 인 개요Apr 18, 2025 am 12:18 AM

Python은 데이터 과학, 웹 개발 및 자동화 스크립팅 필드에 널리 사용됩니다. 1) 데이터 과학에서 Python은 Numpy 및 Pandas와 같은 라이브러리를 통해 데이터 처리 및 분석을 단순화합니다. 2) 웹 개발에서 Django 및 Flask 프레임 워크를 통해 개발자는 응용 프로그램을 신속하게 구축 할 수 있습니다. 3) 자동 스크립트에서 Python의 단순성과 표준 라이브러리가 이상적입니다.

파이썬의 주요 목적 : 유연성과 사용 편의성파이썬의 주요 목적 : 유연성과 사용 편의성Apr 17, 2025 am 12:14 AM

Python의 유연성은 다중 파리가 지원 및 동적 유형 시스템에 반영되며, 사용 편의성은 간단한 구문 및 풍부한 표준 라이브러리에서 나옵니다. 유연성 : 객체 지향, 기능 및 절차 프로그래밍을 지원하며 동적 유형 시스템은 개발 효율성을 향상시킵니다. 2. 사용 편의성 : 문법은 자연 언어에 가깝고 표준 라이브러리는 광범위한 기능을 다루며 개발 프로세스를 단순화합니다.

파이썬 : 다목적 프로그래밍의 힘파이썬 : 다목적 프로그래밍의 힘Apr 17, 2025 am 12:09 AM

Python은 초보자부터 고급 개발자에 이르기까지 모든 요구에 적합한 단순성과 힘에 호의적입니다. 다목적 성은 다음과 같이 반영됩니다. 1) 배우고 사용하기 쉽고 간단한 구문; 2) Numpy, Pandas 등과 같은 풍부한 라이브러리 및 프레임 워크; 3) 다양한 운영 체제에서 실행할 수있는 크로스 플랫폼 지원; 4) 작업 효율성을 향상시키기위한 스크립팅 및 자동화 작업에 적합합니다.

하루 2 시간 안에 파이썬 학습 : 실용 가이드하루 2 시간 안에 파이썬 학습 : 실용 가이드Apr 17, 2025 am 12:05 AM

예, 하루에 2 시간 후에 파이썬을 배우십시오. 1. 합리적인 학습 계획 개발, 2. 올바른 학습 자원을 선택하십시오. 3. 실습을 통해 학습 된 지식을 통합하십시오. 이 단계는 짧은 시간 안에 Python을 마스터하는 데 도움이 될 수 있습니다.

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

MinGW - Windows용 미니멀리스트 GNU

MinGW - Windows용 미니멀리스트 GNU

이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

WebStorm Mac 버전

WebStorm Mac 버전

유용한 JavaScript 개발 도구

ZendStudio 13.5.1 맥

ZendStudio 13.5.1 맥

강력한 PHP 통합 개발 환경

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기