Binance Websocket, Book Order, dan Candlestick Data (Skrip Python)

>

Binance terkenal sebagai pertukaran terbesar di pasaran crypto. Dari segi jumlah dagangan, tidak ada pertukaran lain yang mendekati jumlah besar yang dilaksanakan setiap hari di Binance.

Kecairan yang mengagumkan di Binance menyediakan platform yang sempurna untuk gabungan peniaga, institusi dan pelabur. Berpasangan dengan yuran perdagangan mereka yang rendah, terdapat sedikit, jika ada, pertukaran yang lebih baik untuk perdagangan sehari.

Sayangnya, banyak orang masih mengalami kesulitan ketika mengumpulkan data yang diperlukan untuk menganalisis strategi perdagangan, pengujian ulang, dan analisis portfolio. Artikel ini akan memberikan cara yang cekap dan menjimatkan bagi sesiapa sahaja untuk mengakses data pasaran langsung dan sejarah yang komprehensif dari Binance.

Dengan menggunakan Python, kami akan dapat mengumpulkan dan menyimpan data yang kami mahukan. Setiap skrip akan menguraikan data yang berbeza yang mungkin menarik bagi anda.

Jangan lupa untuk menyertai Pembangun Telegram Group yang didedikasikan untuk pembangun yang membuat aplikasi menarik yang menggunakan data dari pertukaran. Kami ingin mendengar apa yang anda buat dan membantu anda memulakannya!

Dapatkan Data Coinbase Sejarah

Akses berbilion titik data sejarah untuk Coinbase Pro. Snapshot buku pesanan, sejarah perdagangan, dan soket web langsung tersedia.

Bermula

Bahagian ini akan menubuhkan perpustakaan dan API yang kami perlukan untuk mula mengumpulkan data pertukaran Binance.

Memasang Shrimpy Python

Mulakan dengan memasang Perpustakaan Shrimpy Python.

pip pasang udang-python

Kekunci API Udang

Setelah Perpustakaan Shrimpy Python dipasang, kita perlu membuat satu set Kunci Induk API Shrimpy. Kekunci ini akan digunakan untuk mengakses data.

Mendaftar untuk API Pembangun Shrimpy, kemudian ikut panduan di sini untuk mengakses Kunci Induk anda.

Catatan: Kita perlu mengaktifkan izin “Data” pada Kunci Induk API sebelum kita dapat menjalankan skrip ini. Tidak ada kebenaran lain yang diperlukan untuk skrip ini.

Dalam setiap skrip contoh, anda akan melihat dua baris yang kelihatan seperti berikut. Di sinilah anda akan menetapkan kunci API awam dan rahsia anda sendiri yang anda hasilkan dalam akaun pembangun Shrimpy anda.

shrimpy_public_key = ‘…’

shrimpy_secret_key = ‘…’

Tukar Data Langsung

Dengan Shrimpy, terdapat dua cara untuk mengumpulkan data langsung. Pilihannya adalah melalui API REST atau soket web. Kedua kaedah ini akan menggunakan skrip yang sedikit berbeza untuk mengakses data. Mereka juga akan mengubah cara anda mengumpulkan dan memproses data.

Catatan: API Live REST boleh diakses tanpa langganan premium. Walau bagaimanapun, soket web memerlukan rancangan langganan “Peribadi” atau “Permulaan” untuk mengakses titik akhir ini. Oleh kerana kita tidak akan menggunakan titik akhir perdagangan dalam contoh ini, kita tidak memerlukan rancangan “Pengguna” / “Perdagangan”.

Titik Akhir Data Pasaran API REST

Seperti yang dibincangkan, skrip di bahagian ini tidak memerlukan langganan premium berbayar. Anda boleh menyalin skrip ini dan mula menggunakannya dengan segera.

Aset yang ada

Dengan menggunakan titik akhir get_exchange_assets, kita dapat mengambil aset yang ada di Binance.

import udang

# Tetapkan Kunci API Master Shrimpy awam dan rahsia

shrimpy_public_key = ‘…’

shrimpy_secret_key = ‘…’

# Buat pelanggan Shrimpy REST API

pelanggan = shrimpy.ShrimpyApiClient (shrimpy_public_key, shrimpy_secret_key)

exchange_assets = client.get_exchange_assets (‘binance’)

Pasangan Dagangan yang Ada

Dengan menggunakan titik akhir get_trading_pairs, kita dapat mengakses pasangan perdagangan yang tersedia di Binance.

import udang

# Tetapkan Kunci API Master Shrimpy awam dan rahsia

shrimpy_public_key = ‘…’

shrimpy_secret_key = ‘…’

# Buat pelanggan Shrimpy REST API

pelanggan = shrimpy.ShrimpyApiClient (shrimpy_public_key, shrimpy_secret_key)

trading_pairs = client.get_trading_pairs (‘binance’)

Pencari Harga Ringkas

Contoh berikut akan memberikan harga yang mudah. Ticker akan menggunakan get_ticker panggilan REST API untuk mengumpulkan data harga khusus aset di Binance.

Titik akhir ticker dikemas kini pada selang 1 minit.

import udang

# Tetapkan Kunci API Master Shrimpy awam dan rahsia

shrimpy_public_key = ‘…’

shrimpy_secret_key = ‘…’

# Buat pelanggan Shrimpy REST API

pelanggan = shrimpy.ShrimpyApiClient (shrimpy_public_key, shrimpy_secret_key)

# Minta ticker untuk semua aset di Binance

ticker = client.get_ticker (‘binance’)

Ringkasan Buku Pesanan Secara Langsung

Dalam contoh ini, kita akan mengakses keadaan langsung buku pesanan Binance dengan memanggil titik akhir REST API untuk get_order_books.

import udang

shrimpy_public_key = ‘…’

shrimpy_secret_key = ‘…’

# Buat klien API untuk panggilan REST

pelanggan = shrimpy.ShrimpyApiClient (shrimpy_public_key, shrimpy_secret_key)

# Dapatkan semula buku pesanan langsung

buku pesanan = client.get_orderbooks (

‘binance’, # pertukaran

‘ETH’, # base_symbol

‘BTC’, # petikan_simbol

Had 10 #

)

Candlestick Hidup Ringkas

Titik akhir data pasaran seterusnya menyediakan akses ke candlestick perdagangan melalui titik akhir get_candles. Candlestick dikemas kini dalam masa nyata apabila perdagangan baru dilaksanakan di bursa. Skrip berikut hanya akan kembali ke 1,000 kandil terakhir. Untuk mendapatkan data candlestick tambahan, anda mesti menggunakan endpoint candlestick “historis”.

import udang

import plotly.graph_objects semasa pergi

# daftar ke Shrimpy Developer API untuk kunci API percuma anda

shrimpy_public_key = ‘…’

shrimpy_secret_key = ‘…’

# kumpulkan data candlestick sejarah

pelanggan = shrimpy.ShrimpyApiClient (shrimpy_public_key, shrimpy_secret_key)

lilin = client.get_candles (

‘binance’, # pertukaran

‘ETH’, # base_trading_symbol

‘BTC’, # petikan_trading_simbol

Selang ‘1d’ #

)

tarikh = []

open_data = []

tinggi_data = []

rendah_data = []

tutup_data = []

# format data agar sesuai dengan perpustakaan plot

untuk lilin dalam lilin:

tarikh.lampirkan (lilin [‘waktu’])

open_data.append (lilin [‘buka’])

high_data.append (lilin [‘tinggi’])

low_data.append (lilin [‘rendah’])

close_data.append (lilin [‘tutup’])

# petak lilin

fig = go.Figure (data = [go.Candlestick (x = tarikh,

buka = ​​open_data, tinggi = tinggi_data,

low = low_data, close = close_data)])

rajah. menunjukkan ()

Titik Akhir Data Pasaran Websocket

Kumpulan skrip contoh seterusnya akan menggunakan API soket web untuk mengumpulkan data pasaran masa nyata dari pertukaran Binance.

Skrip ini akan meminta anda untuk melanggan rancangan “Peribadi” atau “Permulaan”. Sekiranya anda hanya merancang untuk menggunakan soket web dan tidak ada data sejarah, rancangan “Peribadi” disyorkan.

Pemetik Harga Websocket

Contoh berikut adalah kaedah yang lebih kompleks untuk melaksanakan penentuan harga. Sekiranya data masa nyata diperlukan untuk perkhidmatan anda, pilihan ini sangat sesuai untuk memastikan data yang paling terkini digunakan. Pilihan ini boleh menjadi pengganti “ticker sederhana” yang telah dibincangkan sebelumnya.

Contoh ini menggunakan soket web perdagangan masa nyata.

import udang

shrimpy_public_key = ‘…’

shrimpy_secret_key = ‘…’

# Ini adalah pengendali sampel, ia hanya mencetak mesej masuk ke konsol

def error_handler (err):

cetak (salah)

# Ini adalah pengendali sampel, ia hanya mencetak mesej masuk ke konsol

pengendali def (msg):

cetak (msg [‘content’] [0] [‘price’])

# Buat klien soket web menggunakan token mentah yang diambil oleh REST API

api_client = shrimpy.ShrimpyApiClient (shrimpy_public_key, shrimpy_secret_key)

raw_token = api_client.get_token ()

pelanggan = shrimpy.ShrimpyWsClient (error_handler, raw_token [‘token’])

# Data langganan untuk soket web

langgan_data = {

"menaip": "melanggan",

"pertukaran": "binari",

"berpasangan": "et-btc",

"saluran": "perdagangan"}

# Mula memproses aliran websocket Shrimpy!

client.connect ()

client.subscribe (subscribe_data, pengendali)

# Setelah selesai, hentikan pelanggan

pelanggan.disconnect ()

Buku Pesanan Langsung Websocket

Sama dengan contoh ticker websocket, contoh berikut akan menggunakan soket web untuk mengumpulkan data buku pesanan langsung.

import udang

shrimpy_public_key = ‘…’

shrimpy_secret_key = ‘…’

# Ini adalah pengendali sampel, ia hanya mencetak mesej masuk ke konsol

def error_handler (err):

cetak (salah)

# Ini adalah pengendali sampel, ia hanya mencetak mesej masuk ke konsol

pengendali def (msg):

cetak (msg)

# Buat pelanggan websocket dengan mendapatkan token mentah.

api_client = shrimpy.ShrimpyApiClient (shrimpy_public_key, shrimpy_secret_key)

raw_token = api_client.get_token ()

ws_client = shrimpy.ShrimpyWsClient (error_handler, raw_token [‘token’])

langgan_data = {

"menaip": "melanggan",

"pertukaran": "binari",

"berpasangan": "et-btc",

"saluran": "buku pesanan"}

# Mula memproses aliran websocket Shrimpy!

ws_client.connect ()

ws_client.subscribe (subscribe_data, pengendali)

# Setelah selesai, hentikan pelanggan

ws_client.disconnect ()

Tukar Data Pasaran Sejarah

Bahagian ini akan menyoroti contoh bagaimana mengumpulkan data pasaran sejarah dari Binance. Setiap contoh akan mensasarkan jenis data tertentu yang sesuai dengan keperluan anda.

Panggilan ke titik akhir data sejarah memerlukan langganan “Permulaan”. Oleh kerana kami hanya akan mengumpulkan data, kami tidak memerlukan kredit pengguna / perdagangan. Itu bermakna anda boleh memindahkan slaid “Rencana Pengguna” ke “0 Pengguna Aktif”. Gelangsar “Pelan Data” harus disesuaikan dengan tahap data sejarah yang ingin anda akses.

Data Sejarah yang ada

Skrip berikut akan mengambil senarai data sejarah yang ada sekarang. Dengan cara itu anda boleh melihat katalog data Shrimpy dan menentukan data apa yang ingin anda kumpulkan. Ini akan menggunakan titik akhir get_historical_instruments.

import udang

# daftar ke Shrimpy Developer API untuk kunci API percuma anda

shrimpy_public_key = ‘…’

shrimpy_secret_key = ‘…’

# kumpulkan data candlestick sejarah

pelanggan = shrimpy.ShrimpyApiClient (shrimpy_public_key, shrimpy_secret_key)

instrumen = client.get_historical_instruments (‘binance’)

Candlesticks Bersejarah

Sama dalam beberapa cara untuk menghidupkan candlestick, titik akhir candlestick sejarah membolehkan anda mengumpulkan data candlestick sejarah. Perbezaan utama antara skrip ini dan skrip candlestick sebelumnya adalah penggunaan julat tarikh, yang dapat berisi rentang waktu yang tersedia. Kami akan menggunakan titik akhir get_historical_candles untuk skrip ini.

Dengan skrip ini kita tidak terhad hanya mengumpulkan 1,000 lilin terakhir. Kami dapat mengumpulkan candlestick 1 minit dari 2012 atau candlestick 5 minit dari 2015 (nota: Data Binance tidak kembali sejauh itu, tetapi pertukaran lain mempunyai data yang kembali ke 2011). Segala data yang anda mahukan ada.

import udang

import plotly.graph_objects semasa pergi

# daftar ke Shrimpy Developer API untuk kunci API percuma anda

public_key = ‘…’

rahsia_kunci = ‘…’

pelanggan = shrimpy.ShrimpyApiClient (public_key, secret_key)

lilin = client.get_historical_candles (

‘binance’, # pertukaran

‘ETH’, # base_trading_symbol

‘BTC’, # petikan_trading_simbol

‘2017-02-11T00: 00: 00.000Z’, # mula_kali

‘2019-10-20T00: 00: 00.000Z’, # end_time

1000, # num_candles

Selang ‘1d’ #

)

tarikh = []

open_data = []

tinggi_data = []

rendah_data = []

tutup_data = []

untuk lilin dalam lilin:

tarikh.lampirkan (lilin [‘waktu’])

open_data.append (lilin [‘buka’])

high_data.append (lilin [‘tinggi’])

low_data.append (lilin [‘rendah’])

close_data.append (lilin [‘tutup’])

fig = go.Figure (data = [go.Candlestick (x = tarikh,

buka = ​​open_data, tinggi = tinggi_data,

low = low_data, close = close_data)])

rajah. menunjukkan ()

Perdagangan Bersejarah

Skrip berikut akan menunjukkan cara mengumpulkan data perdagangan tick-by-tick untuk mana-mana pasangan perdagangan yang ada di Binance. Skrip ini menggunakan titik akhir get_historical_trades.

import udang

# daftar ke Shrimpy Developer API untuk kunci API percuma anda

public_key = ‘…’

rahsia_kunci = ‘…’

pelanggan = shrimpy.ShrimpyApiClient (public_key, secret_key)

perdagangan = client.get_historical_trades (

‘binance’,

‘ETH’,

‘BTC’,

‘2019-05-19T00: 00: 00.000Z’,

‘2019-05-20T00: 00: 00.000Z’,

100

)

Petikan Buku Pesanan Bersejarah

Skrip akhir kami akan menggunakan titik akhir get_historical_orderbooks untuk mengumpulkan gambar pesanan buku 1 minit.

import udang

# daftar ke Shrimpy Developer API untuk kunci API percuma anda

public_key = ‘…’

rahsia_kunci = ‘…’

pelanggan = shrimpy.ShrimpyApiClient (public_key, secret_key)

buku pesanan = client.get_historical_orderbooks (

‘binance’,

‘ETH’,

‘BTC’,

‘2019-05-19T00: 00: 00.000Z’,

‘2019-05-20T00: 00: 00.000Z’,

100

)

Mengenai Udang

Udang adalah aplikasi untuk membina dana indeks cryptocurrency tersuai, menyeimbangkan semula, dan menguruskan pelbagai portfolio aset digital. Automasikan portfolio anda dengan menghubungkan ke salah satu daripada 17 pertukaran crypto yang kami sokong.

API Pertukaran Crypto Universal Shrimpy direka untuk pemaju. Menggabungkan dengan API gabungan kami memberi anda akses segera ke titik akhir yang seragam untuk perdagangan, pengumpulan data, pengurusan pengguna, dan banyak lagi di setiap pertukaran cryptocurrency utama.

Untuk mengakses perpustakaan Python dan Node yang lengkap, ikuti pautan ini:

Node

Python

Mike Owergreen Administrator
Sorry! The Author has not filled his profile.
follow me