Voici comment utiliser l'API pour échanger automatiquement sur le célèbre échange Bitcoin Binance.
demande d'API
Lancez l'application Binance et saisissez votre API dans la recherche.
Sélectionnez l'élément Gestion des API dans la catégorie Fonctions.
Choisissez Créer une API.
Saisissez le libellé de clé approprié et sélectionnez le bouton Suivant.
Montez le puzzle pour plus de sécurité.
Procédez ensuite à la vérification par SMS du téléphone et à la vérification par e-mail.
À la fin, vous obtiendrez une clé API et une clé secrète.
J'ai coché Activer les contrats à terme pour les transactions à terme et Autoriser le transfert universel pour les dépôts et les retraits entre les transactions au comptant et à terme.
Installer la bibliothèque ccxt
Ensuite, installons ccxt, une bibliothèque Python, pour utiliser facilement l'API Binance.
Nous supposons que vous savez comment utiliser Python et continuez.
Les instructions et les instructions d'installation peuvent être trouvées sur le site suivant :
CCXT - Bibliothèque de trading CryptoCurrency eXchange
Vous pouvez l'installer avec la commande suivante.
pip install ccxt
API Binance prête à l'emploi
Tout d'abord, importez la bibliothèque ccxt.
import ccxt
Il s'agit du code pour créer une instance Binance en utilisant la valeur de la clé API demandée précédemment. Le defaultType de la partie options est spot, et le trading à terme est possible en saisissant future.
binance_access_key = "xxxxxxxxx"
binance_secret_key = "yyyyyyyyy"
binance = ccxt.binance(config={
'apiKey': binance_access_key,
'secret': binance_secret_key,
'enableRateLimit': True,
'options': {
'defaultType': 'future'
}
})
Demande de prix actuel
Vous pouvez simplement rechercher comme suit.
binance.fetch_ticker('BTC/USDT')
Demande de solde
Examinons d'abord le code qui récupère le solde USDT d'une transaction à terme. Entrez futur dans le type de params. Saisissez spot pour afficher le solde de la transaction spot.
balance = binance.fetch_balance(params={"type": "future"})
print(balance['USDT']['free'])
Écrivons également du code pour obtenir le volume de pièces détenues dans une transaction au comptant.
balance_info = binance.fetch_balance(params={"type": "spot"})
for balance in balance_info['info']['balances']:
if market['id'].find(balance['asset']) > -1:
print(abs(float(balance['free'])))
Le code suivant obtient le volume d'une pièce qui est entrée dans une position courte dans le commerce à terme. Veuillez noter la différence avec le code du commerce au comptant.
balance_info = binance.fetch_balance(params={"type": "future"})
for position in balance_info['info']['positions']:
if position['symbol'] == market['id']:
print(abs(float(position['positionAmt'])))
Saisie et compensation des contrats à terme
Vous trouverez ci-dessous le code pour saisir une position courte. Les échanges au marché et à cours limité sont possibles.
symbol='BTC/USDT'
# market sell order
sell_order = binance.create_market_sell_order(symbol=symbol, amount=0.1)
# limit sell order
btc = binance.fetch_ticker(symbol)
sell_order = binance.create_limit_sell_order(symbol=symbol, amount=0.1, price=btc['last'])
Et voici le code de nettoyage de la position courte. De même, des échanges de marché et de limite peuvent être effectués.
symbol='BTC/USDT'
# market buy order
buy_order = binance.create_market_buy_order(symbol=symbol, amount=0.1)
# limit buy order
btc = binance.fetch_ticker(symbol)
buy_order = binance.create_limit_buy_order(symbol=symbol, amount=0.1, price=btc['last'])
La saisie et la clôture d'une position longue peuvent être effectuées de la manière opposée, et le trading au comptant peut également être effectué en utilisant la même méthode.
Virement bancaire entre spot et futures
Pour transférer des espèces d'un compte au comptant à un compte à terme, il vous suffit de demander le solde du compte de trésorerie et de transférer la valeur directement sur votre compte à terme. Il n'y a pas de frais pour les transferts depuis des comptes au sein de Binance Exchange.
balance_spot = binance.fetch_balance(params={"type": "spot"})
balance_spot_free = balance_spot['USDT']['free']
if balance_spot_free > 0:
transfer = binance.transfer('USDT', balance_spot_free, 'spot', 'future')
L'inverse est également vrai.
balance_future = binance.fetch_balance(params={"type": "future"})
balance_future_free = balance_future ['USDT']['free']
if balance_future_free > 0:
transfer = binance.transfer('USDT', balance_future_free, 'future', 'spot')
Réglage de l'effet de levier
Pour le trading à terme, vous pouvez définir un effet de levier. Voici le code : Changez simplement le nombre dans la partie effet de levier.
markets = binance.load_markets()
market = binance.market('BTC/USDT')
resp = binance.fapiPrivate_post_leverage({
'symbol': market['id'],
'leverage': 2
})
Afficher les données des transactions
Vous pouvez interroger les données de transaction quotidiennes de 1 000 BTC en écrivant le code suivant :
candles = binance.fetch_ohlcv(
symbol='BTC/USDT',
timeframe='1d',
since=None,
limit=1000)