Как сделать фьючерсный ордер binance с ccxt в Python?
Как разместить рыночный ордер в ccxt на фьючерсы на binance? Торговля фьючерсами binance с ccxt уже реализована
https://github.com/ccxt/ccxt/pull/5907
В этом посте они предлагают использовать эту строку кода:
let binance_futures = new ccxt.binance({ options: { defaultMarket: 'futures' } })
Вышеупомянутая строка была написана на JavaScript. Как будет выглядеть эквивалентная строка в Python? Вот так я получаю ошибку:
binance_futures = ccxt.binance({ 'option': { defaultMarket: 'futures' } })
NameError: name 'defaultMarket' is not defined
5 ответов
Правильный ответ: 'defaultType'
(вместо того defaultMarket
) должны быть в кавычках, но и значение должно быть 'future'
(не 'futures'
)
import ccxt
print('CCXT version:', ccxt.__version__) # requires CCXT version > 1.20.31
exchange = ccxt.binance({
'apiKey': 'YOUR_API_KEY',
'secret': 'YOUR_API_SECRET',
'enableRateLimit': True,
'options': {
'defaultType': 'future', # ←-------------- quotes and 'future'
},
})
exchange.load_markets()
# exchange.verbose = True # uncomment this line if it doesn't work
# your code here...
Поместите цитаты вокругdefaultMarket
:
binance_futures = ccxt.binance({ 'option': { 'defaultMarket': 'futures' } })
Если вы ищете фьючерсы Binance COIN-M (например, для торговли на основе наличных фьючерсов), вам необходимо использовать
delivery
вариант вместо :
import ccxt
import pandas as pd
binance = ccxt.binance()
binance.options = {'defaultType': 'delivery', 'adjustForTimeDifference': True}
securities = pd.DataFrame(binance.load_markets()).transpose()
securities
датированные фьючерсы, как и ожидалось:
Обратите внимание, что приведенный выше фрагмент кода возвращает датированные фьючерсы, как и ожидалось. Однако альтернативное однострочное решение, показанное ниже, НЕ ДЕЛАЕТ (кажется, по умолчанию для спотовых рынков):
import ccxt
import pandas as pd
binance = ccxt.binance({'option': {'defaultType': 'delivery', 'adjustForTimeDifference': True}})
securities = pd.DataFrame(binance.load_markets()).transpose()
securities
возвращает спотовые рынки:
Новый рекомендуемый способ создания
exchange
объект:
exchange = ccxt.binanceusdm({
'apiKey': ...,
'secret': ...,
})
Об этом сообщил сопровождающий проекта (@kroitor) в Discord.
Старый способ (который на момент написания все еще работает):
exchange = ccxt.binance({
'apiKey': ...,
'secret': ...,
'options': {
'defaultType': 'future',
},
})
Код примера в репо еще не обновлен (тоже подтвержден).
Создайте экземпляр обмена binance и настройте его options
собственность {'defaultType': 'future'}
import ccxt
exchange_id = 'binance'
exchange_class = getattr(ccxt, exchange_id)
exchange = exchange_class({
'apiKey': 'your-public-api-key',
'secret': 'your-api-secret',
'timeout': 30000,
'enableRateLimit': True,
})
exchange.options = {'defaultType': 'future'}
markets = exchange.load_markets() # Load the futures markets
for market in markets:
print(market) # check for the symbol you want to trade here
# The rest of your code goes here