Я разместил DEMO-ордер на OKEx с суммой 246 и ценой 0,46. Когда я смотрел на сайте, сумма заказа была больше 11k:
Я получил информацию о заказе:
{'info': {'accFillSz': '0', 'avgPx': '', 'cTime': '1652262833825', 'category': 'normal', 'ccy': '', 'clOrdId': 'e847386590ce4dBCc812b22b16d7807c', 'fee': '0', 'feeCcy': 'USDT', 'fillPx': '', 'fillSz': '0', 'fillTime': '', 'instId': 'XRP-USDT-SWAP', 'instType': 'SWAP', 'lever': '1', 'ordId': '444557778278035458', 'ordType': 'limit', 'pnl': '0', 'posSide': 'long', 'px': '0.45693', 'rebate': '0', 'rebateCcy': 'USDT', 'side': 'buy', 'slOrdPx': '-1', 'slTriggerPx': '0.44779', 'slTriggerPxType': 'mark', 'source': '', 'state': 'live', 'sz': '246', 'tag': '', 'tdMode': 'isolated', 'tgtCcy': '', 'tpOrdPx': '-1', 'tpTriggerPx': '0.46606', 'tpTriggerPxType': 'mark', 'tradeId': '', 'uTime': '1652262833825'}, 'id': '444557778278035458', 'clientOrderId': 'e847386590ce4dBCc812b22b16d7807c', 'timestamp': 1652262833825, 'datetime': '2022-05-11T09:53:53.825Z', 'lastTradeTimestamp': None, 'symbol': 'XRP/USDT:USDT', 'type': 'limit', 'timeInForce': None, 'postOnly': None, 'side': 'buy', 'price': 0.45693, 'stopPrice': 0.44779, 'average': None, 'cost': 0.0, 'amount': 246.0, 'filled': 0.0, 'remaining': 246.0, 'status': 'open', 'fee': {'cost': 0.0, 'currency': 'USDT'}, 'trades': [], 'fees': [{'cost': 0.0, 'currency': 'USDT'}]}
и сумма 246.
Вот мой код:
exchange = ccxt.okx(
{
'apiKey': API_KEY,
'secret': API_SECRET,
'password': API_PASSPHRASE,
'options': {
'defaultType': 'swap'
},
'headers': {
'x-simulated-trading': '1'
}
}
exchange.load_markets()
market = exchange.market(PAIR)
params = {
'tdMode': 'isolated',
'posSide': 'long',
'instId': market['id'],
'side': 'buy',
'sz': 246,
'tpOrdPx': '-1',
'slOrdPx': '-1',
'tpTriggerPx': str(take_profit),
'slTriggerPx': str(stop_loss),
'tpTriggerPxType': 'mark',
'slTriggerPxType': 'mark',
}
order = exchange.create_order(
f"{PAIR}", ORDER_TYPE, 'buy', summa, price, params=params)
info = exchange.fetch_order(order['id'], PAIR)
print(info)
Что я делаю неправильно?






Для начала вы можете купить только кратное 100 XRP, как вы можете видеть на скриншоте ниже, поэтому вы можете купить только 200 или 300, а не 246.
Во-вторых, похоже, что в API применяется множитель 100, где 1 = 100 XRP. Я смог вывести это, введя 24 600 XRP, что дает вам около 11 тысяч долларов, о которых вы упомянули.
В вашем случае, если вы хотите купить 200 или 300 XRP, вам нужно будет ввести 2 или 3 в качестве суммы в запросе API.
извините, какой именно у вас вопрос? также, если мой ответ решил вашу проблему, вы можете принять его, пожалуйста?
Печально, но нет. Не решено. Я пробовал все, и результат тот же. Может быть, можно изменить умножение в маркете или что-то еще. Я не знаю...
Я не понимаю, что именно вы пытаетесь сделать? Можете ли вы объяснить проблему, поскольку я не вижу, что это такое?
Кажется, я знаю решение. Ты прав. Я попробую и отмечу ответ, если помогло. Итак, мне нужно разделить мою сумму на размер лота, умножить на цену открытия, а затем округлить сумму.
Я получил информацию о рынке (pastebin.com/rfX1uze9) Странно, почему размер контракта 100, а плечо 75