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에서 복사할 수 있습니다(_ 문자 제외).
-starting_date 및 end_date: 설명이 필요합니다. 예상되는 형식은 mm/dd/yyyy 또는 Python 속어를 사용하는 %m/%d/%Y입니다.
매개변수를 얻으려면 내장 함수 sys를 사용하고(여기서는 별 내용 없음) 날짜를 구문 분석하기 위해 datetime 라이브러리를 사용할 것입니다.
end_date 시간 부분이 항상 23:59:59.999가 되도록 하루를 더하고 1마이크로초를 빼서 같은 날 간격을 얻는 것이 더 실용적입니다.
거래 가져오기
Binance의 API와 aggTrades 엔드포인트를 사용하면 시작 및 종료 매개변수를 사용하는 경우 한 번의 요청으로 최대 1000개의 거래를 얻을 수 있으며 그 간격은 최대 1시간입니다.
간격 가져오기를 사용하여 몇 번 실패한 후(어느 시점에서 유동성이 급락하여 일부 귀중한 거래를 잃을 수 있음) from_id 전략을 시도하기로 결정했습니다.
압축된 거래를 반환하므로 aggTrades가 선택한 엔드포인트가 됩니다. 이렇게 하면 우리는 귀중한 정보를 잃지 않을 것입니다.
전체 거래를 압축하여 받으세요. 동일한 주문, 동일한 가격으로 동시에 실행된 거래는 수량을 합산합니다.
from_id 전략은 다음과 같습니다.
날짜 간격을 끝점까지 전송하여 첫 번째 트랜잭션의 시작 날짜를 가져오고 싶습니다. 그 후에는 처음 가져온 트랜잭션 ID부터 시작하여 1000개의 트랜잭션을 얻습니다. 그런 다음 end_date 이후에 마지막 거래가 발생했는지 확인합니다.
그렇다면 모든 기간을 반복했으며 결과를 파일에 저장할 수 있습니다. 그렇지 않으면 from_id 변수를 업데이트하여 마지막 트랜잭션 ID를 얻고 루프를 다시 시작합니다.
첫 번째 거래 번호 가져오기
먼저 new_end_date를 생성합니다. 이는 startTime 및 endTime 매개변수를 전달하여 aggTrades를 사용하기 때문입니다.
이제 해당 기간의 첫 번째 거래 번호만 알면 되므로 60초를 추가하겠습니다. 유동성이 낮은 통화쌍의 경우 요청 첫날에 거래가 발생한다는 보장이 없으므로 이 매개변수를 변경할 수 있습니다.
그런 다음 도우미 함수를 사용하여 날짜를 구문 분석하고 Calendar.timegm 함수를 사용하여 날짜를 Unix 밀리초 표현으로 변환합니다. timegm 함수는 날짜를 UTC로 유지하므로 선호되는 함수입니다.
요청에 대한 응답은 다음 형식으로 날짜별로 정렬된 거래 개체 목록입니다.
첫 번째 거래 ID가 필요하므로 해당 응답을 반환합니다.[0][" 가치.
메인 루프
이제 첫 번째 트랜잭션 ID가 있으므로 end_date에 도달할 때까지 한 번에 1000개의 트랜잭션을 가져올 수 있습니다. 다음 코드는 메인 루프에서 호출됩니다. startDate 및 endDate 매개변수를 삭제하고 from_id 매개변수를 사용하여 요청을 실행합니다.
이제 요청을 실행하고 DataFrame을 생성하는 메인 루프입니다.
current_time에 to_date보다 이후에 가장 최근에 가져온 거래 날짜가 포함되어 있는지 확인합니다. 그렇다면 다음과 같이 합니다.
- from_id 매개변수를 사용하여 거래를 가져옵니다.
- from_id 및 current_time 매개변수를 최신 트랜잭션
- 멋진 디버그 메시지 인쇄
- pd.concat 이러한 트랜잭션은 이전 트랜잭션 DataFrame과 비교됩니다.
- Binance가 429 HTTP 응답을 제공하지 않도록 sleep을 사용하세요
정리하고 저장합니다
DataFrame을 조립한 후 간단한 데이터 정리를 수행해야 합니다. to_date 이후 발생한 트랜잭션과 중복된 트림이 있는 트랜잭션을 제거하겠습니다. (이 문제는 1000개 트랜잭션의 대부분을 가져오고 있으므로 일부 트랜잭션은 목표 종료 날짜 이후에 실행될 것으로 예상됩니다.)
트림 기능을 캡슐화할 수 있습니다:
데이터 정리를 수행합니다:
이제 to_csv 메서드를 사용하여 파일에 저장할 수 있습니다.
또한 Arctic과 같은 다른 데이터 저장 메커니즘을 사용합니다.
마지막으로: 데이터 확인
거래 전략을 사용할 때 데이터를 신뢰하는 것이 중요합니다. 다음 유효성 검사를 적용하여 가져온 트랜잭션 데이터로 이 작업을 쉽게 수행할 수 있습니다.
코드 조각에서 DataFrame을 NumPy 배열로 변환하고 행별로 반복하여 트랜잭션 ID가 다음과 같은지 확인합니다. 1씩 증가합니다.
바이낸스 거래 ID는 각 거래 기호마다 증분 번호가 매겨져 생성되므로 데이터가 올바른지 쉽게 확인할 수 있습니다.
PS: 성공적인 거래 전략을 세우는 첫 번째 단계는 올바른 데이터를 확보하는 것입니다.
위 내용은 Python을 사용하여 바이낸스의 과거 거래를 쉽게 얻을 수 있습니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

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

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

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











통화 서클의 상위 3 개 무료 시장보기 소프트웨어는 OKX, Binance 및 Gate.io입니다. 1. OKX는 다양한 차트 및 시장 분석을 지원하는 간단한 인터페이스 및 실시간 데이터를 제공합니다. 2. Binance는 강력한 기능, 정확한 데이터를 가지고 있으며 모든 종류의 거래자에게 적합합니다. 3. Gate.io는 안정성과 포괄적 성으로 유명하며 장기 및 단기 투자자에게 적합합니다.

밈 동전 거래에 가장 적합한 플랫폼은 다음과 같습니다. 1. 유동성이 높은 세계 최대의 Binance, 높은 유동성과 낮은 취급 수수료; 2. 다양한 밈 동전을 지원하는 효율적인 거래 엔진 인 OKX; 3. Xbit, 분산, 교차 체인 거래 지원; 4. 혈청 주문서와 결합 된 저렴한 비용, 저렴한 비용; 5. Pancakeswap (BSC DEX), 낮은 거래 수수료 및 빠른 속도; 6. Orca (Solana Dex), 사용자 경험 최적화; 7. 코인베이스, 높은 보안, 초보자에게 적합한; 8. 아시아에서 잘 알려진 Huobi, 풍부한 거래 쌍; 9. Dexrabbit, 지능

신뢰할 수 있고 사용하기 쉬운 가상 환전 앱은 다음과 같습니다. 1. Binance, 2. OKX, 3. Gate.io, 4. Coinbase, 5. Kraken, 6. Huobi Global, 7. Bitfinex, 8. Kucoin, 9. Poloniex. 이 플랫폼은 거래량, 사용자 경험 및 보안에 가장 적합한 것으로 선정되었으며 모두 등록, 확인, 입금, 인출 및 거래 운영을 제공합니다.

초보자에게 적합한 디지털 통화 거래 플랫폼을 선택할 때는 보안, 사용 편의성, 교육 자원 및 비용 투명성을 고려해야합니다. 1. 냉장 저장, 2 요인 검증 및 자산 보험을 제공하는 플랫폼에 우선 순위가 부여됩니다. 2. 간단한 인터페이스와 명확한 작동이있는 앱은 초보자에게 더 적합합니다. 3. 플랫폼은 튜토리얼 및 시장 분석과 같은 학습 도구를 제공해야합니다. 4. 거래 수수료 및 현금 인출 수수료와 같은 숨겨진 비용에주의하십시오.

상위 10 개 디지털 가상 통화 앱은 다음과 같습니다. 1. OKX, 2. BINANCE, 3. GATE.IO, 4. COINBASE, 5. KRAKEN, 6. HUOBI, 7. KUCOIN, 8. BITFINEX, 9. BITSTAMP, 10. POLONIEX. 이러한 거래소는 거래량, 사용자 경험 및 보안과 같은 요소를 기반으로 선택되며 모두 다양한 디지털 통화 거래 서비스 및 효율적인 거래 경험을 제공합니다.

상위 10 개 가상 통화 시청 플랫폼에 대한 권장 앱 : 1. OKX, 2. BINANCE, 3. GATE.IO, 4. HUOBI, 5. COINBASE, 6. KRAKE, 7. BITFINEX, 8. KUCOIN, 9. BITSTAMP, 실시간 시장 트렌드, 기술적 인 분석 및 사용자 제공 기준을 제공하는 데 도움이됩니다.

상위 10 개 디지털 환전 교환에서 권장되는 앱 : 1. OKX, 2. BINANCE, 3. GATE.IO, 4. HUOBI, 5. COINBASE, 6. KUCOIN, 7. KRAKEN, 8. BITFINEX, 9. BITSTAMP, 이러한 앱은 실시간 시장 동향, 기술 분석 및 가격 리마 닉을 제공하는 데 도움이됩니다.

환전 플랫폼의 상위 10 개 거래 소프트웨어는 다음과 같습니다. 1. OKX, 2. BINANCE, 3. GATE.IO, 4. HUOBI GLOBAL, 5. KUCOIN, 6. COINBASE, 7. KRAKEN, 8. BITFINEX, 9. BITSTAMP, 10. POLONIEX. 이 플랫폼은 사용자 자산의 안전을 보장하기 위해 다양한 거래 모드 및 보안 조치를 제공합니다.
