Here is an example of an article explaining the problem:
Ethereum: “code” and “message” issue when creating futures order on Binance CCTX
As an Ethereum developer, you are probably familiar with trading on cryptocurrency exchanges such as Binance. In this article, we will look at a common problem that arises when trying to create simple futures orders on the CCTX (Coincheck Trade) exchange using the ccxt library for Ethereum.
Code and Configuration
Here is a code example demonstrating how to create a CCTX futures order using ccxt:
import ccxt
exchange = ccxt.binance({
'apiKey': config.api_key,
'apiSecret': config.api_secret,
})

Determine the contract and symbol for Ethereumcontract = exchange.getContract('ethusd', 'USDT')
symbol = 'USD/ETH'
Determine the future orderfuture = {
'type': 'future',
'symbol': symbol,
'side': 'buy',
'timeInForce': 'gtc',
'expiration': '2024-03-01T23:59:00Z',
expiration date and time'quantity': 10.0,
amount of ETH to trade}
Creation futures orderresult = exchange.createOrder(future)
print(result)
Problem
Now that we have the code configured, let’s resolve the “code” and “msg” issue mentioned in the error message.
In ccxt, when creating a futures order, you can specify the code
field as an integer. However, the problem arises if this code does not match the expected code provided by the contract (CCTX in this case). If the code does not match, ccxt will return an error message in the following format:
{"error": {"msg": "The order position does not match the user setting."}}
Solution
To solve this problem, it is necessary to make sure that the code
field corresponds to the expected code provided by the contract. In this case, the CCTX contract uses a different symbol (for example, ETHUSDT
) than the one we specified in our future
object.
One possible solution is to use the symbol
and contractSymbol
parameters provided by ccxt when creating a futures order:
Definition of a futures orderfuture = {
'type': 'future',
'symbol': symbol,
replace with the actual CCTX contract symbol'contractSymbol': 'ETHUSDT',
replace with the actual CCTX contract symbol'side': 'buy',
'timeInForce': 'gtc',
'expiration': '2024-03-01T23:59:00Z',
expiration date and time'quantity': 10.0,
amount of ETH to trade}
By using the symbol
parameter, we can ensure that the code
field corresponds to the expected code provided by the contract.
Usage Example
To demonstrate this solution in practice, let’s update our sample code:
import ccxt
exchange = ccxt.binance({
'apiKey': config.api_key,
'apiSecret': config.api_secret,
})
Define the CCTX contract symbol and exchange settingscontractSymbol = 'ETHUSDT'
exchange.symbol = contractSymbol
Determine the future orderfuture = {
'type': 'future',
'symbol': contractSymbol,
replace with actual CCTX contract symbol'side': 'buy',
'timeInForce': 'gtc',
'expiration': '2024-03-01T23:59:00Z',
expiration date and time'quantity': 10.0,
amount of ETH to trade}
Creation of futures orderresult = exchange.createOrder(future)
print(result)
With this updated code, we should no longer receive the “code” and “msg” error message when creating a CCTX Binance futures order using ccxt.
Hope this helps! Let me know if you have any additional questions or if there is anything else I can help with.