Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Wrong calculations for orders. C# #22310

Closed
skuvv opened this issue Apr 27, 2024 · 19 comments · Fixed by #22420
Closed

Wrong calculations for orders. C# #22310

skuvv opened this issue Apr 27, 2024 · 19 comments · Fixed by #22420
Assignees
Labels

Comments

@skuvv
Copy link

skuvv commented Apr 27, 2024

Operating System

Windows 10

Programming Languages

No response

CCXT Version

4.3.6

Description

I placed buy limit order and wait to partial fill, log from WatchOrders:

On message: {"action":"snapshot","arg":{"instType":"SUSDT-FUTURES","channel":"orders","instId":"default"},"data":[{"accBaseVolume":"0","cTime":"1714234711855","clientOid":"240427191815_5","enterPointSource":"API","feeDetail":[{"feeCoin":"SUSDT","fee":"0"}],"force":"gtc","instId":"SXRPSUSDT","leverage":"10","marginCoin":"SUSDT","marginMode":"crossed","notionalUsd":"51.67","orderId":"1168150536860114952","orderType":"limit","posMode":"hedge_mode","posSide":"long","price":"0.5167","reduceOnly":"no","side":"buy","size":"100","status":"live","tradeSide":"open","uTime":"1714234711855"}],"ts":1714234711859}
Order[240427191815_5] exchangeOrderId: '1168150536860114952', status: 'open', price: '0,5167', size: '100', average: '', filled: '0', remain: '100'

On message: {"action":"snapshot","arg":{"instType":"SUSDT-FUTURES","channel":"orders","instId":"default"},"data":[{"accBaseVolume":"15","baseVolume":"15","cTime":"1714234711855","clientOid":"240427191815_5","enterPointSource":"API","feeDetail":[{"feeCoin":"SUSDT","fee":"-0.0015501"}],"fillFee":"-0.0015501","fillFeeCoin":"SUSDT","fillNotionalUsd":"7.7505","fillPrice":"0.5167","fillTime":"1714234729622","force":"gtc","instId":"SXRPSUSDT","leverage":"10","marginCoin":"SUSDT","marginMode":"crossed","notionalUsd":"51.67","orderId":"1168150536860114952","orderType":"limit","pnl":"0","posMode":"hedge_mode","posSide":"long","price":"0.5167","priceAvg":"0.5167","reduceOnly":"no","side":"buy","size":"100","status":"partially_filled","tradeId":"1168150611393327105","tradeScope":"M","tradeSide":"open","uTime":"1714234729622"}],"ts":1714234729648}
Order[240427191815_5] exchangeOrderId: '1168150536860114952', status: 'open', price: '0,5167', size: '15', average: '0,5167', filled: '15', remain: '0'
PartialFill, wrong remain here.

On message: {"action":"snapshot","arg":{"instType":"SUSDT-FUTURES","channel":"orders","instId":"default"},"data":[{"accBaseVolume":"15","cTime":"1714234711855","clientOid":"240427191815_5","enterPointSource":"API","feeDetail":[{"feeCoin":"SUSDT","fee":"-0.0015501"}],"force":"gtc","instId":"SXRPSUSDT","leverage":"10","marginCoin":"SUSDT","marginMode":"crossed","notionalUsd":"51.67","orderId":"1168150536860114952","orderType":"limit","posMode":"hedge_mode","posSide":"long","price":"0.5167","reduceOnly":"no","side":"buy","size":"100","status":"canceled","tradeSide":"open","uTime":"1714234743600"}],"ts":1714234743604}
Order[240427191815_5] exchangeOrderId: '1168150536860114952', status: 'canceled', price: '0,5167', size: '100', average: '3,4446666666666665', filled: '15', remain: '85'
Canceled, Wrong average here

using this

Console.WriteLine($"Order[{order.clientOrderId}] exchangeOrderId: '{order.id}', status: '{order.status}', price: '{order.price}', size: '{order.amount}', average: '{order.average}', filled: '{order.filled}', remain: '{order.remaining}'");

and one more log:

On message: {"action":"snapshot","arg":{"instType":"SUSDT-FUTURES","channel":"orders","instId":"default"},"data":[{"accBaseVolume":"0","cTime":"1714235406333","clientOid":"240427192949_8","enterPointSource":"API","feeDetail":[{"feeCoin":"SUSDT","fee":"0"}],"force":"gtc","instId":"SEOSSUSDT","leverage":"10","marginCoin":"SUSDT","marginMode":"crossed","notionalUsd":"80.7","orderId":"1168153449674219523","orderType":"limit","posMode":"hedge_mode","posSide":"long","price":"0.807","reduceOnly":"no","side":"buy","size":"100","status":"live","tradeSide":"open","uTime":"1714235406333"}],"ts":1714235406336}
Order[240427192949_8] exchangeOrderId: '1168153449674219523', status: 'open', price: '0,807', size: '100', average: '', filled: '0', remain: '100'
On message: {"action":"snapshot","arg":{"instType":"SUSDT-FUTURES","channel":"orders","instId":"default"},"data":[{"accBaseVolume":"15","baseVolume":"15","cTime":"1714235406333","clientOid":"240427192949_8","enterPointSource":"API","feeDetail":[{"feeCoin":"SUSDT","fee":"-0.002421"}],"fillFee":"-0.002421","fillFeeCoin":"SUSDT","fillNotionalUsd":"12.105","fillPrice":"0.807","fillTime":"1714235421396","force":"gtc","instId":"SEOSSUSDT","leverage":"10","marginCoin":"SUSDT","marginMode":"crossed","notionalUsd":"80.7","orderId":"1168153449674219523","orderType":"limit","pnl":"0","posMode":"hedge_mode","posSide":"long","price":"0.807","priceAvg":"0.807","reduceOnly":"no","side":"buy","size":"100","status":"partially_filled","tradeId":"1168153512903782402","tradeScope":"M","tradeSide":"open","uTime":"1714235421396"}],"ts":1714235421404}
Order[240427192949_8] exchangeOrderId: '1168153449674219523', status: 'open', price: '0,807', size: '15', average: '0,807', filled: '15', remain: '0'
On message: {"action":"snapshot","arg":{"instType":"SUSDT-FUTURES","channel":"orders","instId":"default"},"data":[{"accBaseVolume":"35","baseVolume":"20","cTime":"1714235406333","clientOid":"240427192949_8","enterPointSource":"API","feeDetail":[{"feeCoin":"SUSDT","fee":"-0.005649"}],"fillFee":"-0.003228","fillFeeCoin":"SUSDT","fillNotionalUsd":"16.14","fillPrice":"0.807","fillTime":"1714235435736","force":"gtc","instId":"SEOSSUSDT","leverage":"10","marginCoin":"SUSDT","marginMode":"crossed","notionalUsd":"80.7","orderId":"1168153449674219523","orderType":"limit","pnl":"0","posMode":"hedge_mode","posSide":"long","price":"0.807","priceAvg":"0.807","reduceOnly":"no","side":"buy","size":"100","status":"partially_filled","tradeId":"1168153573050101762","tradeScope":"M","tradeSide":"open","uTime":"1714235435736"}],"ts":1714235435742}
Order[240427192949_8] exchangeOrderId: '1168153449674219523', status: 'open', price: '0,807', size: '20', average: '0,807', filled: '35', remain: '-15'
On message: {"action":"snapshot","arg":{"instType":"SUSDT-FUTURES","channel":"orders","instId":"default"},"data":[{"accBaseVolume":"70","baseVolume":"35","cTime":"1714235406333","clientOid":"240427192949_8","enterPointSource":"API","feeDetail":[{"feeCoin":"SUSDT","fee":"-0.011298"}],"fillFee":"-0.005649","fillFeeCoin":"SUSDT","fillNotionalUsd":"28.245","fillPrice":"0.807","fillTime":"1714235447747","force":"gtc","instId":"SEOSSUSDT","leverage":"10","marginCoin":"SUSDT","marginMode":"crossed","notionalUsd":"80.7","orderId":"1168153449674219523","orderType":"limit","pnl":"0","posMode":"hedge_mode","posSide":"long","price":"0.807","priceAvg":"0.807","reduceOnly":"no","side":"buy","size":"100","status":"partially_filled","tradeId":"1168153623427887106","tradeScope":"M","tradeSide":"open","uTime":"1714235447747"}],"ts":1714235447754}
Order[240427192949_8] exchangeOrderId: '1168153449674219523', status: 'open', price: '0,807', size: '35', average: '0,807', filled: '70', remain: '-35'
On message: {"action":"snapshot","arg":{"instType":"SUSDT-FUTURES","channel":"orders","instId":"default"},"data":[{"accBaseVolume":"100","baseVolume":"30","cTime":"1714235406333","clientOid":"240427192949_8","enterPointSource":"API","feeDetail":[{"feeCoin":"SUSDT","fee":"-0.01614"}],"fillFee":"-0.004842","fillFeeCoin":"SUSDT","fillNotionalUsd":"24.21","fillPrice":"0.807","fillTime":"1714235458879","force":"gtc","instId":"SEOSSUSDT","leverage":"10","marginCoin":"SUSDT","marginMode":"crossed","notionalUsd":"80.7","orderId":"1168153449674219523","orderType":"limit","pnl":"0","posMode":"hedge_mode","posSide":"long","price":"0.807","priceAvg":"0.807","reduceOnly":"no","side":"buy","size":"100","status":"filled","tradeId":"1168153670118879234","tradeScope":"M","tradeSide":"open","uTime":"1714235458879"}],"ts":1714235458887}
Order[240427192949_8] exchangeOrderId: '1168153449674219523', status: 'closed', price: '0,807', size: '30', average: '0,807', filled: '100', remain: '-70'

Size(amount) also wrong. By description this is size of order but it looks like dynamic property (order qty and last filled qty)...

Code

  

@ttodua
Copy link
Member

ttodua commented May 1, 2024

can you please specifically hint which values do you think to be incorrect?
from very first line, i see the "size": 100 in raw response, but on second line, "size": 15 in parsed response. do you mean that? please also list other errors with specific values, so i can see them quickly.

@ttodua ttodua self-assigned this May 1, 2024
@ttodua ttodua added the bug label May 1, 2024
@skuvv
Copy link
Author

skuvv commented May 2, 2024

@ttodua
for this part of log:

On message: {"action":"snapshot","arg":{"instType":"SUSDT-FUTURES","channel":"orders","instId":"default"},"data":[{"accBaseVolume":"0","cTime":"1714234711855","clientOid":"240427191815_5","enterPointSource":"API","feeDetail":[{"feeCoin":"SUSDT","fee":"0"}],"force":"gtc","instId":"SXRPSUSDT","leverage":"10","marginCoin":"SUSDT","marginMode":"crossed","notionalUsd":"51.67","orderId":"1168150536860114952","orderType":"limit","posMode":"hedge_mode","posSide":"long","price":"0.5167","reduceOnly":"no","side":"buy","size":"100","status":"live","tradeSide":"open","uTime":"1714234711855"}],"ts":1714234711859}
Order[240427191815_5] exchangeOrderId: '1168150536860114952', status: 'open', price: '0,5167', size: '100', average: '', filled: '0', remain: '100'

On message: {"action":"snapshot","arg":{"instType":"SUSDT-FUTURES","channel":"orders","instId":"default"},"data":[{"accBaseVolume":"15","baseVolume":"15","cTime":"1714234711855","clientOid":"240427191815_5","enterPointSource":"API","feeDetail":[{"feeCoin":"SUSDT","fee":"-0.0015501"}],"fillFee":"-0.0015501","fillFeeCoin":"SUSDT","fillNotionalUsd":"7.7505","fillPrice":"0.5167","fillTime":"1714234729622","force":"gtc","instId":"SXRPSUSDT","leverage":"10","marginCoin":"SUSDT","marginMode":"crossed","notionalUsd":"51.67","orderId":"1168150536860114952","orderType":"limit","pnl":"0","posMode":"hedge_mode","posSide":"long","price":"0.5167","priceAvg":"0.5167","reduceOnly":"no","side":"buy","size":"100","status":"partially_filled","tradeId":"1168150611393327105","tradeScope":"M","tradeSide":"open","uTime":"1714234729622"}],"ts":1714234729648}
Order[240427191815_5] exchangeOrderId: '1168150536860114952', status: 'open', price: '0,5167', size: '15', average: '0,5167', filled: '15', remain: '0'
PartialFill, wrong remain here.
Remain should be 85 not 0.
Size=15 what is it? Why not 100? Where is order amount?

On message: {"action":"snapshot","arg":{"instType":"SUSDT-FUTURES","channel":"orders","instId":"default"},"data":[{"accBaseVolume":"15","cTime":"1714234711855","clientOid":"240427191815_5","enterPointSource":"API","feeDetail":[{"feeCoin":"SUSDT","fee":"-0.0015501"}],"force":"gtc","instId":"SXRPSUSDT","leverage":"10","marginCoin":"SUSDT","marginMode":"crossed","notionalUsd":"51.67","orderId":"1168150536860114952","orderType":"limit","posMode":"hedge_mode","posSide":"long","price":"0.5167","reduceOnly":"no","side":"buy","size":"100","status":"canceled","tradeSide":"open","uTime":"1714234743600"}],"ts":1714234743604}
Order[240427191815_5] exchangeOrderId: '1168150536860114952', status: 'canceled', price: '0,5167', size: '100', average: '3,4446666666666665', filled: '15', remain: '85'
Canceled, Wrong average here
average should be 0,5167 not 3,4446666666666665.

@skuvv
Copy link
Author

skuvv commented May 2, 2024

for this log:

On message: {"action":"snapshot","arg":{"instType":"SUSDT-FUTURES","channel":"orders","instId":"default"},"data":[{"accBaseVolume":"0","cTime":"1714235406333","clientOid":"240427192949_8","enterPointSource":"API","feeDetail":[{"feeCoin":"SUSDT","fee":"0"}],"force":"gtc","instId":"SEOSSUSDT","leverage":"10","marginCoin":"SUSDT","marginMode":"crossed","notionalUsd":"80.7","orderId":"1168153449674219523","orderType":"limit","posMode":"hedge_mode","posSide":"long","price":"0.807","reduceOnly":"no","side":"buy","size":"100","status":"live","tradeSide":"open","uTime":"1714235406333"}],"ts":1714235406336}
Order[240427192949_8] exchangeOrderId: '1168153449674219523', status: 'open', price: '0,807', size: '100', average: '', filled: '0', remain: '100'
Size=100 ok, it's amount of placed order here.

On message: {"action":"snapshot","arg":{"instType":"SUSDT-FUTURES","channel":"orders","instId":"default"},"data":[{"accBaseVolume":"15","baseVolume":"15","cTime":"1714235406333","clientOid":"240427192949_8","enterPointSource":"API","feeDetail":[{"feeCoin":"SUSDT","fee":"-0.002421"}],"fillFee":"-0.002421","fillFeeCoin":"SUSDT","fillNotionalUsd":"12.105","fillPrice":"0.807","fillTime":"1714235421396","force":"gtc","instId":"SEOSSUSDT","leverage":"10","marginCoin":"SUSDT","marginMode":"crossed","notionalUsd":"80.7","orderId":"1168153449674219523","orderType":"limit","pnl":"0","posMode":"hedge_mode","posSide":"long","price":"0.807","priceAvg":"0.807","reduceOnly":"no","side":"buy","size":"100","status":"partially_filled","tradeId":"1168153512903782402","tradeScope":"M","tradeSide":"open","uTime":"1714235421396"}],"ts":1714235421404}
Order[240427192949_8] exchangeOrderId: '1168153449674219523', status: 'open', price: '0,807', size: '15', average: '0,807', filled: '15', remain: '0'
Remain should be 85 not 0.
Size=20 what is it? Why not 100? Where is order amount?

On message: {"action":"snapshot","arg":{"instType":"SUSDT-FUTURES","channel":"orders","instId":"default"},"data":[{"accBaseVolume":"35","baseVolume":"20","cTime":"1714235406333","clientOid":"240427192949_8","enterPointSource":"API","feeDetail":[{"feeCoin":"SUSDT","fee":"-0.005649"}],"fillFee":"-0.003228","fillFeeCoin":"SUSDT","fillNotionalUsd":"16.14","fillPrice":"0.807","fillTime":"1714235435736","force":"gtc","instId":"SEOSSUSDT","leverage":"10","marginCoin":"SUSDT","marginMode":"crossed","notionalUsd":"80.7","orderId":"1168153449674219523","orderType":"limit","pnl":"0","posMode":"hedge_mode","posSide":"long","price":"0.807","priceAvg":"0.807","reduceOnly":"no","side":"buy","size":"100","status":"partially_filled","tradeId":"1168153573050101762","tradeScope":"M","tradeSide":"open","uTime":"1714235435736"}],"ts":1714235435742}
Order[240427192949_8] exchangeOrderId: '1168153449674219523', status: 'open', price: '0,807', size: '20', average: '0,807', filled: '35', remain: '-15'
Remain should be 65 not -15.
Size=20 what is it?

On message: {"action":"snapshot","arg":{"instType":"SUSDT-FUTURES","channel":"orders","instId":"default"},"data":[{"accBaseVolume":"70","baseVolume":"35","cTime":"1714235406333","clientOid":"240427192949_8","enterPointSource":"API","feeDetail":[{"feeCoin":"SUSDT","fee":"-0.011298"}],"fillFee":"-0.005649","fillFeeCoin":"SUSDT","fillNotionalUsd":"28.245","fillPrice":"0.807","fillTime":"1714235447747","force":"gtc","instId":"SEOSSUSDT","leverage":"10","marginCoin":"SUSDT","marginMode":"crossed","notionalUsd":"80.7","orderId":"1168153449674219523","orderType":"limit","pnl":"0","posMode":"hedge_mode","posSide":"long","price":"0.807","priceAvg":"0.807","reduceOnly":"no","side":"buy","size":"100","status":"partially_filled","tradeId":"1168153623427887106","tradeScope":"M","tradeSide":"open","uTime":"1714235447747"}],"ts":1714235447754}
Order[240427192949_8] exchangeOrderId: '1168153449674219523', status: 'open', price: '0,807', size: '35', average: '0,807', filled: '70', remain: '-35'
Remain should be 30 not -35.
Size=35 what is it?

On message: {"action":"snapshot","arg":{"instType":"SUSDT-FUTURES","channel":"orders","instId":"default"},"data":[{"accBaseVolume":"100","baseVolume":"30","cTime":"1714235406333","clientOid":"240427192949_8","enterPointSource":"API","feeDetail":[{"feeCoin":"SUSDT","fee":"-0.01614"}],"fillFee":"-0.004842","fillFeeCoin":"SUSDT","fillNotionalUsd":"24.21","fillPrice":"0.807","fillTime":"1714235458879","force":"gtc","instId":"SEOSSUSDT","leverage":"10","marginCoin":"SUSDT","marginMode":"crossed","notionalUsd":"80.7","orderId":"1168153449674219523","orderType":"limit","pnl":"0","posMode":"hedge_mode","posSide":"long","price":"0.807","priceAvg":"0.807","reduceOnly":"no","side":"buy","size":"100","status":"filled","tradeId":"1168153670118879234","tradeScope":"M","tradeSide":"open","uTime":"1714235458879"}],"ts":1714235458887}
Order[240427192949_8] exchangeOrderId: '1168153449674219523', status: 'closed', price: '0,807', size: '30', average: '0,807', filled: '100', remain: '-70'
Remain should be 0 not -70.
Size=30 what is it?

@ttodua
Copy link
Member

ttodua commented May 2, 2024

@skuvv for next times (would be good now too) please post the sample code you are running (i.e. .createOrder (which_symbol, .. what_amount, etc...)

@ttodua
Copy link
Member

ttodua commented May 2, 2024

I'm checking this now, but with random symbol & amount

@ttodua
Copy link
Member

ttodua commented May 2, 2024

please provide exact symbol / amounts, after thorough testing i couldn't detect the issue, so I want to know the exact details (maybe market-type differs)

@skuvv
Copy link
Author

skuvv commented May 3, 2024

@ttodua
Exchange is Bitget
try this solution, credential are required.
DemoForDebug.zip

@ttodua
Copy link
Member

ttodua commented May 6, 2024

@skuvv
I've been checking this for a while, reading your logs manually trying to understand where is the problem, but i still can't reproduce.

I have tried all modes - cross-vs-isolated, Hedge-vs-OneWay modes...

from your last DemoDebug project the following log comes out:

Order[1171436898434584576] exchangeOrderId: '1171436898401030249', status: 'open', price: '0.838', size: '100', average: '', filled: '0', remain: '100'
Order[1171436898434584576] exchangeOrderId: '1171436898401030249', status: 'closed', price: '0.838', size: '100', average: '0.838', filled: '100', remain: '0'
Order[1171436948489408513] exchangeOrderId: '1171436948472631297', status: 'open', price: '', size: '15', average: '', filled: '0', remain: '15'
Order[1171436948489408513] exchangeOrderId: '1171436948472631297', status: 'closed', price: '0.835', size: '15', average: '0.835', filled: '15', remain: '0'
Order[1171436958786424832] exchangeOrderId: '1171436958769647623', status: 'open', price: '', size: '20', average: '', filled: '0', remain: '20'
Order[1171436958786424832] exchangeOrderId: '1171436958769647623', status: 'closed', price: '0.835', size: '20', average: '0.835', filled: '20', remain: '0'
Order[1171436968877920257] exchangeOrderId: '1171436968865337345', status: 'open', price: '', size: '35', average: '', filled: '0', remain: '35'
Order[1171436968877920257] exchangeOrderId: '1171436968865337345', status: 'closed', price: '0.835', size: '35', average: '0.835', filled: '35', remain: '0'
Order[1171436979032330240] exchangeOrderId: '1171436979015553031', status: 'open', price: '', size: '30', average: '', filled: '0', remain: '30'
Order[1171436979032330240] exchangeOrderId: '1171436979015553031', status: 'closed', price: '0.835', size: '30', average: '0.835', filled: '30', remain: '0'

does that look correct?

@ttodua
Copy link
Member

ttodua commented May 6, 2024

what log do you get from that demodebug project? please share

@ttodua
Copy link
Member

ttodua commented May 6, 2024

I suspect of something other issue, checking now.

@ttodua
Copy link
Member

ttodua commented May 6, 2024

strange, i have reproduced eventually, but i had to run it few times in a row, and only in hedge mode

@ttodua
Copy link
Member

ttodua commented May 6, 2024

I've converted this into other langs and the issue is also reproducible there too. seems implementational issue with bitget-only (fortunately) and not c# issue.
will post further updates

@ttodua
Copy link
Member

ttodua commented May 7, 2024

found the reasons for issues, fixing it now and will push a PR in the next hour/s

@skuvv
Copy link
Author

skuvv commented May 7, 2024

@skuvv I've been checking this for a while, reading your logs manually trying to understand where is the problem, but i still can't reproduce.

I have tried all modes - cross-vs-isolated, Hedge-vs-OneWay modes...

from your last DemoDebug project the following log comes out:

Order[1171436898434584576] exchangeOrderId: '1171436898401030249', status: 'open', price: '0.838', size: '100', average: '', filled: '0', remain: '100'
Order[1171436898434584576] exchangeOrderId: '1171436898401030249', status: 'closed', price: '0.838', size: '100', average: '0.838', filled: '100', remain: '0'
Order[1171436948489408513] exchangeOrderId: '1171436948472631297', status: 'open', price: '', size: '15', average: '', filled: '0', remain: '15'
Order[1171436948489408513] exchangeOrderId: '1171436948472631297', status: 'closed', price: '0.835', size: '15', average: '0.835', filled: '15', remain: '0'
Order[1171436958786424832] exchangeOrderId: '1171436958769647623', status: 'open', price: '', size: '20', average: '', filled: '0', remain: '20'
Order[1171436958786424832] exchangeOrderId: '1171436958769647623', status: 'closed', price: '0.835', size: '20', average: '0.835', filled: '20', remain: '0'
Order[1171436968877920257] exchangeOrderId: '1171436968865337345', status: 'open', price: '', size: '35', average: '', filled: '0', remain: '35'
Order[1171436968877920257] exchangeOrderId: '1171436968865337345', status: 'closed', price: '0.835', size: '35', average: '0.835', filled: '35', remain: '0'
Order[1171436979032330240] exchangeOrderId: '1171436979015553031', status: 'open', price: '', size: '30', average: '', filled: '0', remain: '30'
Order[1171436979032330240] exchangeOrderId: '1171436979015553031', status: 'closed', price: '0.835', size: '30', average: '0.835', filled: '30', remain: '0'

does that look correct?

This log is different, because the main order (qty=100) is filled before next chunk is sent.
I tried to sent opposite order to make partial fill on my first order.

@ttodua
Copy link
Member

ttodua commented May 7, 2024

I've linked PR to this issue. once it's merged & this issue closed, in few hours thereafter update your ccxt and let us know.

@skuvv
Copy link
Author

skuvv commented May 10, 2024

@ttodua @carlosmiei
Checked, not fixed:

CCXT Version:4.3.18
11 loaded
waiting
SXRP/SUSDT:SUSDT bid:0,5167 ask:0,5169
Order[1172738109620264974] exchangeOrderId: '1172738109586710553', status: 'open', price: '0,5168', size: '100', average: '', filled: '0', remain: '100'
Order[1172738125881581569] exchangeOrderId: '1172738125873192970', status: 'open', price: '', size: '15', average: '', filled: '0', remain: '15'
Order[1172738125881581569] exchangeOrderId: '1172738125873192970', status: 'closed', price: '0,5168', size: '15', average: '0,5168', filled: '15', remain: '0'
Order[1172738109620264974] exchangeOrderId: '1172738109586710553', status: 'open', price: '0,5168', size: '15', average: '0,5168', filled: '15', remain: '0' //remain should be 100-15=85
Order[1172738131590029328] exchangeOrderId: '1172738131590029317', status: 'open', price: '', size: '20', average: '', filled: '0', remain: '20'
Order[1172738131590029328] exchangeOrderId: '1172738131590029317', status: 'closed', price: '0,5168', size: '20', average: '0,5168', filled: '20', remain: '0'
Order[1172738109620264974] exchangeOrderId: '1172738109586710553', status: 'open', price: '0,5168', size: '20', average: '0,5168', filled: '35', remain: '-15' //remain should be 100-15-20=65
Order[1172738137164259330] exchangeOrderId: '1172738137164259329', status: 'open', price: '', size: '35', average: '', filled: '0', remain: '35'
Order[1172738137164259330] exchangeOrderId: '1172738137164259329', status: 'closed', price: '0,5168', size: '35', average: '0,5168', filled: '35', remain: '0'
Order[1172738109620264974] exchangeOrderId: '1172738109586710553', status: 'open', price: '0,5168', size: '35', average: '0,5168', filled: '70', remain: '-35' //remain should be 100-15-20-35=30
Order[1172738142985953299] exchangeOrderId: '1172738142985953292', status: 'open', price: '', size: '30', average: '', filled: '0', remain: '30'
Order[1172738142985953299] exchangeOrderId: '1172738142985953292', status: 'closed', price: '0,5168', size: '30', average: '0,5168', filled: '30', remain: '0'
Order[1172738109620264974] exchangeOrderId: '1172738109586710553', status: 'closed', price: '0,5168', size: '30', average: '0,5168', filled: '100', remain: '-70' //remain should be 100-15-20-35-30=0

@skuvv
Copy link
Author

skuvv commented May 10, 2024

Found a clue
image
You use amount for calculations

        object amount = this.safeString(order, "baseVolume");

image
So your remaining in your case means = last filled - total filled. This is wrong.
I think amount should be 'size' here not 'baseVolume'

this code is skipped because amount is filled:

        if (isTrue(isTrue(getValue(market, "swap")) && isTrue((isEqual(amount, null)))))
        {
            amount = this.safeString(order, "size");
        }

image

@ttodua
Copy link
Member

ttodua commented May 10, 2024

@skuvv I think there is some issue in package deployment, because the code you see is not of really updated version. I'll check this with my lead and let you know

@ttodua
Copy link
Member

ttodua commented May 10, 2024

@skuvv please update now, the correct version is now released, I confirm

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants