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

>

Binance secara luas dikenal sebagai bursa terbesar di pasar crypto. Dalam hal volume perdagangan, tidak ada pertukaran lain yang mendekati volume besar yang dieksekusi setiap hari di Binance.

Likuiditas yang mengesankan di Binance menyediakan platform yang sempurna untuk para pedagang, institusi, dan investor untuk berkumpul. Dipasangkan dengan biaya perdagangan rendah mereka, ada beberapa, jika ada, pertukaran yang lebih baik untuk perdagangan harian.

Sayangnya, banyak orang masih mengalami kesulitan dalam mengumpulkan data yang diperlukan untuk menganalisis strategi perdagangan, pengujian ulang, dan analisis portofolio. Artikel ini akan memberikan cara yang efisien dan hemat biaya bagi siapa saja untuk mengakses data pasar langsung dan historis yang komprehensif dari Binance.

Dengan Python, kita bisa mengumpulkan dan menyimpan data apa pun yang kita inginkan. Setiap skrip akan memecah bagian data berbeda yang mungkin menarik bagi Anda.

Jangan lupa untuk bergabung dengan Pengembang Telegram Group yang didedikasikan untuk pembangun yang membuat aplikasi menarik yang menggunakan data dari pertukaran. Kami ingin sekali mendengar apa yang Anda bangun dan membantu Anda memulai!

Dapatkan Data Historis Coinbase

Akses miliaran poin data historis untuk Coinbase Pro. Cuplikan buku pesanan, riwayat perdagangan, dan soket web langsung semuanya tersedia.

Mulai

Bagian ini akan menyiapkan perpustakaan dan API yang kita perlukan untuk mulai mengumpulkan data pertukaran Binance.

Menginstal Shrimpy Python

Mulailah dengan menginstal Library Shrimpy Python.

pip instal shrimpy-python


Kunci API Shrimpy

Setelah Shrimpy Python Library diinstal, kita perlu membuat satu set Kunci Master API Shrimpy. Kunci-kunci ini akan digunakan untuk mengakses data.

Daftar ke API Pengembang Shrimpy, lalu ikuti panduannya sini untuk mengakses Master Key Anda.

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

Di setiap skrip contoh, Anda akan melihat dua baris yang terlihat seperti berikut. Di sinilah Anda akan menetapkan kunci API publik dan rahasia Anda sendiri yang Anda buat di akun pengembang Shrimpy Anda.

shrimpy_public_key = ‘…’

shrimpy_secret_key = ‘…’

Tukar Data Langsung

Dengan Shrimpy, ada dua cara untuk mengumpulkan data langsung. Opsinya bisa melalui REST API atau websockets. Kedua metode ini akan menggunakan skrip yang sedikit berbeda untuk mengakses data. Mereka juga akan mengubah cara Anda mengumpulkan dan memproses data.

Catatan: Live REST API gratis untuk diakses tanpa langganan premium. Namun, websockets memerlukan paket langganan “Pribadi” atau “Startup” untuk mengakses titik akhir ini. Karena kami tidak akan menggunakan titik akhir perdagangan dalam contoh ini, kami tidak memerlukan rencana “Pengguna” / “Perdagangan”.

Titik Akhir Data Pasar REST API

Seperti yang telah dibahas, skrip di bagian ini tidak memerlukan langganan premium berbayar. Anda dapat menyalin salah satu skrip ini dan mulai menggunakannya segera.

Aset yang Tersedia

Menggunakan endpoint get_exchange_assets, kita dapat mengambil aset yang tersedia di Binance.

impor udang

# Tetapkan Kunci API Master Shrimpy publik dan rahasia

shrimpy_public_key = ‘…’

shrimpy_secret_key = ‘…’

# Buat klien Shrimpy REST API

client = shrimpy.ShrimpyApiClient (shrimpy_public_key, shrimpy_secret_key)

exchange_assets = client.get_exchange_assets (‘binance’)

Pasangan Perdagangan Tersedia

Dengan menggunakan titik akhir get_trading_pairs, kita bisa mendapatkan akses ke pasangan perdagangan yang tersedia di Binance.

impor udang

# Tetapkan Kunci API Master Shrimpy publik dan rahasia

shrimpy_public_key = ‘…’

shrimpy_secret_key = ‘…’

# Buat klien Shrimpy REST API

client = shrimpy.ShrimpyApiClient (shrimpy_public_key, shrimpy_secret_key)

trading_pairs = client.get_trading_pairs (‘binance’)

Ticker Harga Sederhana

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

Titik akhir ticker diperbarui dalam interval 1 menit.

impor udang

# Tetapkan Kunci API Master Shrimpy publik dan rahasia

shrimpy_public_key = ‘…’

shrimpy_secret_key = ‘…’

# Buat klien Shrimpy REST API

client = shrimpy.ShrimpyApiClient (shrimpy_public_key, shrimpy_secret_key)

# Minta ticker untuk semua aset di Binance

ticker = client.get_ticker (‘binance’)

Cuplikan Buku Pesanan Langsung Sederhana

Dalam contoh ini, kita akan mengakses status live dari order book Binance dengan memanggil endpoint REST API untuk get_order_books.

impor udang

shrimpy_public_key = ‘…’

shrimpy_secret_key = ‘…’

# Buat klien API untuk panggilan REST

client = shrimpy.ShrimpyApiClient (shrimpy_public_key, shrimpy_secret_key)

# Ambil buku pesanan langsung

orderbooks = client.get_orderbooks (

‘binance’, # pertukaran

‘ETH’, # simbol_basis

‘BTC’, # quote_symbol

10 # batas

)

Lilin Langsung Sederhana

Titik akhir data pasar berikutnya menyediakan akses untuk memperdagangkan kandil melalui titik akhir get_candles. Lilin diperbarui secara real-time saat perdagangan baru dieksekusi di bursa. Skrip berikut hanya akan mengembalikan hingga 1.000 kandil terakhir. Untuk mengambil data kandil tambahan, Anda harus menggunakan titik akhir kandil “historis”.

impor udang

impor plotly.graph_objects sebagai go

# daftar ke Shrimpy Developer API untuk mendapatkan kunci API gratis Anda

shrimpy_public_key = ‘…’

shrimpy_secret_key = ‘…’

# kumpulkan data kandil historis

client = shrimpy.ShrimpyApiClient (shrimpy_public_key, shrimpy_secret_key)

candle = client.get_candles (

‘binance’, # pertukaran

‘ETH’, # simbol_basis_trading

‘BTC’, # quote_trading_symbol

Interval ‘1d’ #

)

tanggal = []

open_data = []

high_data = []

low_data = []

close_data = []

# format data agar sesuai dengan pustaka plotting

untuk lilin di lilin:

tanggal.append (lilin [‘waktu’])

open_data.append (candle [‘open’])

high_data.append (candle [‘high’])

low_data.append (candle [‘low’])

close_data.append (candle [‘close’])

# plot kandil

gambar = pergi. Gambar (data = [go.Candlestick (x = tanggal,

open = open_data, high = high_data,

low = low_data, close = close_data)])

fig.show ()

Titik Akhir Data Pasar Websocket

Kumpulan contoh skrip berikutnya akan menggunakan API websocket untuk mengumpulkan data pasar waktu nyata dari bursa Binance.

Skrip ini akan meminta Anda untuk berlangganan paket “Pribadi” atau “Memulai”. Jika Anda hanya berencana menggunakan websockets dan tidak ada data historis, paket “Pribadi” disarankan.

Ticker Harga Websocket

Contoh berikut adalah cara yang lebih kompleks untuk menerapkan ticker harga. Jika data waktu-nyata diperlukan untuk layanan Anda, opsi ini akan ideal untuk memastikan data yang paling mutakhir digunakan. Pilihan ini dapat menjadi pengganti “ticker sederhana” yang telah dibahas sebelumnya.

Contoh ini menggunakan soket web perdagangan waktu nyata.

impor udang

shrimpy_public_key = ‘…’

shrimpy_secret_key = ‘…’

# Ini adalah contoh penangan, ini hanya mencetak pesan masuk ke konsol

def error_handler (err):

cetak (err)

# Ini adalah contoh penangan, ini hanya mencetak pesan masuk ke konsol

def handler (msg):

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

# Buat klien websocket menggunakan token mentah yang diambil oleh REST API

api_client = shrimpy.ShrimpyApiClient (shrimpy_public_key, shrimpy_secret_key)

raw_token = api_client.get_token ()

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

# Data langganan untuk websocket

subscribe_data = {

"Tipe": "langganan",

"bertukar": "binance",

"pasangan": "eth-btc",

"saluran": "perdagangan"}

# Mulai memproses aliran websocket Shrimpy!

client.connect ()

client.subscribe (subscribe_data, handler)

# Setelah selesai, hentikan klien

client.disconnect ()

Buku Pesanan Langsung Websocket

Mirip dengan contoh ticker websocket, contoh berikut akan menggunakan websockets untuk mengumpulkan data buku pesanan langsung.

impor udang

shrimpy_public_key = ‘…’

shrimpy_secret_key = ‘…’

# Ini adalah contoh penangan, ini hanya mencetak pesan masuk ke konsol

def error_handler (err):

cetak (err)

# Ini adalah contoh penangan, ini hanya mencetak pesan masuk ke konsol

def handler (msg):

cetak (pesan)

# Buat klien 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’])

subscribe_data = {

"Tipe": "langganan",

"bertukar": "binance",

"pasangan": "eth-btc",

"saluran": "memesan buku"}

# Mulai memproses aliran websocket Shrimpy!

ws_client.connect ()

ws_client.subscribe (subscribe_data, handler)

# Setelah selesai, hentikan klien

ws_client.disconnect ()

Pertukaran Data Pasar Historis

Bagian ini akan menyoroti contoh bagaimana mengumpulkan data pasar historis dari Binance. Setiap contoh akan menargetkan jenis data tertentu yang sesuai dengan kebutuhan Anda.

Panggilan ke titik akhir data historis akan membutuhkan langganan “Startup”. Karena kami hanya akan mengumpulkan data, kami tidak memerlukan kredit pengguna / perdagangan. Itu berarti Anda dapat memindahkan penggeser “Rencana Pengguna” ke “0 Pengguna Aktif”. Slider “Data Plan” harus disesuaikan dengan tingkat data historis yang ingin Anda akses.

Data Historis yang Tersedia

Skrip berikut akan mengambil daftar data historis yang tersedia saat ini. Dengan cara itu Anda dapat menjelajahi katalog data Shrimpy dan menentukan data apa yang ingin Anda kumpulkan. Ini akan menggunakan endpoint get_historical_instruments.

impor udang

# daftar ke Shrimpy Developer API untuk mendapatkan kunci API gratis Anda

shrimpy_public_key = ‘…’

shrimpy_secret_key = ‘…’

# kumpulkan data kandil historis

client = shrimpy.ShrimpyApiClient (shrimpy_public_key, shrimpy_secret_key)

instrumen = klien.get_historical_instruments (‘binance’)

Lilin Historis

Mirip dalam beberapa cara untuk kandil hidup, titik akhir kandil historis memungkinkan Anda mengumpulkan data kandil historis. Perbedaan utama antara skrip ini dan skrip kandil sebelumnya adalah penggunaan rentang tanggal, yang dapat berisi rentang waktu apa pun yang tersedia. Kami akan menggunakan titik akhir get_historical_candles untuk skrip ini.

Dengan skrip ini kami tidak dibatasi hanya mengumpulkan 1.000 candle terakhir. Kami dapat mengumpulkan kandil 1 menit dari tahun 2012 atau kandil 5 menit dari 2015 (catatan: data Binance tidak sejauh itu, tetapi pertukaran lain memiliki data yang kembali ke tahun 2011). Data apa pun yang Anda inginkan tersedia.

impor udang

impor plotly.graph_objects sebagai go

# daftar ke Shrimpy Developer API untuk mendapatkan kunci API gratis Anda

public_key = ‘…’

rahasia_key = ‘…’

client = shrimpy.ShrimpyApiClient (public_key, secret_key)

candle = client.get_historical_candles (

‘binance’, # pertukaran

‘ETH’, # simbol_basis_trading

‘BTC’, # quote_trading_symbol

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

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

1000, # num_candles

Interval ‘1d’ #

)

tanggal = []

open_data = []

high_data = []

low_data = []

close_data = []

untuk lilin di lilin:

tanggal.append (lilin [‘waktu’])

open_data.append (candle [‘open’])

high_data.append (candle [‘high’])

low_data.append (candle [‘low’])

close_data.append (candle [‘close’])

gbr = go.Figure (data = [go.Candlestick (x = tanggal,

open = open_data, high = high_data,

low = low_data, close = close_data)])

fig.show ()

Perdagangan Historis

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

impor udang

# daftar ke Shrimpy Developer API untuk mendapatkan kunci API gratis Anda

public_key = ‘…’

rahasia_key = ‘…’

client = shrimpy.ShrimpyApiClient (public_key, secret_key)

tradees = client.get_historical_trades (

‘binance’,

‘ETH’,

‘BTC’,

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

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

100

)

Cuplikan Buku Pesanan Historis

Skrip terakhir kita akan menggunakan titik akhir get_historical_orderbooks untuk mengumpulkan snapshot buku pesanan 1 menit.

impor udang

# daftar ke Shrimpy Developer API untuk mendapatkan kunci API gratis Anda

public_key = ‘…’

rahasia_key = ‘…’

client = shrimpy.ShrimpyApiClient (public_key, secret_key)

orderbooks = client.get_historical_orderbooks (

‘binance’,

‘ETH’,

‘BTC’,

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

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

100

)

Tentang Shrimpy

Udang adalah aplikasi untuk membangun dana indeks cryptocurrency kustom, menyeimbangkan kembali, dan mengelola beragam portofolio aset digital. Otomatiskan portofolio Anda dengan menautkan ke salah satu dari 17 bursa crypto yang kami dukung.

API Universal Crypto Exchange Shrimpy dirancang untuk pengembang. Mengintegrasikan dengan API terpadu kami memberi Anda akses instan ke titik akhir seragam untuk perdagangan, pengumpulan data, manajemen pengguna, dan lainnya di setiap pertukaran mata uang kripto utama.

Untuk mengakses pustaka Python dan Node lengkap, ikuti tautan berikut:

Node

Python

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