Comments (23)
@ttodua
Exchange is Bitget
try this solution, credential are required.
DemoForDebug.zip
from ccxt.
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.
from ccxt.
@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.
from ccxt.
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?
from ccxt.
@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...)
from ccxt.
I'm checking this now, but with random symbol & amount
from ccxt.
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)
from ccxt.
@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?
from ccxt.
what log do you get from that demodebug project? please share
from ccxt.
I suspect of something other issue, checking now.
from ccxt.
strange, i have reproduced eventually, but i had to run it few times in a row, and only in hedge mode
from ccxt.
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
from ccxt.
found the reasons for issues, fixing it now and will push a PR in the next hour/s
from ccxt.
@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.
from ccxt.
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.
from ccxt.
@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
from ccxt.
Found a clue
You use amount for calculations
object amount = this.safeString(order, "baseVolume");
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");
}
from ccxt.
@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
from ccxt.
@skuvv please update now, the correct version is now released, I confirm
from ccxt.
tested again, not fixed:
CCXT Version:4.3.22
11 loaded
waiting
SXRP/SUSDT:SUSDT bid:0,5052 ask:0,5054
Order[1174342338436833282] exchangeOrderId: '1174342338432638977', status: 'open', price: '0,5053', size: '100', average: '', filled: '', remain: '' //size ok, remain empty
Order[1174342355235020802] exchangeOrderId: '1174342355230826499', status: 'open', price: '', size: '15', average: '', filled: '', remain: ''
Order[1174342355235020802] exchangeOrderId: '1174342355230826499', status: 'closed', price: '0,5053', size: '15', average: '0,5053', filled: '15', remain: '0'
Order[1174342338436833282] exchangeOrderId: '1174342338432638977', status: 'open', price: '0,5053', size: '100', average: '0,5053', filled: '15', remain: '85' //size and remain OK
Order[1174342361031548929] exchangeOrderId: '1174342361027354657', status: 'open', price: '', size: '20', average: '', filled: '', remain: ''
Order[1174342361031548929] exchangeOrderId: '1174342361027354657', status: 'closed', price: '0,5053', size: '20', average: '0,5053', filled: '20', remain: '0'
Order[1174342338436833282] exchangeOrderId: '1174342338432638977', status: 'open', price: '0,5053', size: '100', average: '0,5053', filled: '20', remain: '80' //size ok, remain Wrong, should be 100-15-20 = 65
Order[1174342370242240529] exchangeOrderId: '1174342370238046209', status: 'open', price: '', size: '35', average: '', filled: '', remain: ''
Order[1174342370242240529] exchangeOrderId: '1174342370238046209', status: 'closed', price: '0,5053', size: '35', average: '0,5053', filled: '35', remain: '0'
Order[1174342338436833282] exchangeOrderId: '1174342338432638977', status: 'open', price: '0,5053', size: '100', average: '0,5053', filled: '35', remain: '65' //size ok, remain Wrong, should be 100-15-20-35 = 30
Order[1174342376181374978] exchangeOrderId: '1174342376181374977', status: 'open', price: '', size: '30', average: '', filled: '', remain: ''
Order[1174342376181374978] exchangeOrderId: '1174342376181374977', status: 'closed', price: '0,5053', size: '30', average: '0,5053', filled: '30', remain: '0'
Order[1174342338436833282] exchangeOrderId: '1174342338432638977', status: 'closed', price: '0,5053', size: '100', average: '0,5053', filled: '30', remain: '70' //size ok, remain Wrong, should be 100-15-20-35-30 = 0
from ccxt.
@ttodua
One thing is remaining - use "AccBaseVolume" instead of "BaseVolume". Look at API docs above.
Filled = 20 should be 35 here. 20 is latest fill.
from ccxt.
@skuvv I was confused with bitget api, and now I've pushed a fix that should solve it. please test out a new version (after you see the green build in https://app.travis-ci.com/github/ccxt/ccxt/builds, t will be released and update then) and let me know
from ccxt.
@ttodua
Almost done:
CCXT Version:4.3.30
11 loaded
waiting
SXRP/SUSDT:SUSDT bid:0.5216 ask:0.5218
Order[1177623369373884416] exchangeOrderId: '1177623369315164164', status: 'open', price: '0.5217', size: '100', average: '', filled: '0', remain: '100' //size ok, remain ok
Order[1177623386176266240] exchangeOrderId: '1177623386172071939', status: 'open', price: '', size: '15', average: '', filled: '0', remain: '15'
Order[1177623386176266240] exchangeOrderId: '1177623386172071939', status: 'closed', price: '0.5217', size: '15', average: '0.5217', filled: '15', remain: '0'
Order[1177623369373884416] exchangeOrderId: '1177623369315164164', status: 'open', price: '0.5217', size: '100', average: '0.5217', filled: '15', remain: '85' //size ok, remain ok
Order[1177623392425779204] exchangeOrderId: '1177623392425779203', status: 'open', price: '', size: '20', average: '', filled: '0', remain: '20'
Order[1177623392425779204] exchangeOrderId: '1177623392425779203', status: 'closed', price: '0.5217', size: '20', average: '0.5217', filled: '20', remain: '0'
Order[1177623369373884416] exchangeOrderId: '1177623369315164164', status: 'open', price: '0.5217', size: '100', average: '0.5217', filled: '20', remain: '65' //size ok, remain ok
Order[1177623398473965578] exchangeOrderId: '1177623398473965574', status: 'open', price: '', size: '35', average: '', filled: '0', remain: '35'
Order[1177623398473965578] exchangeOrderId: '1177623398473965574', status: 'closed', price: '0.5217', size: '35', average: '0.5217', filled: '35', remain: '0'
Order[1177623369373884416] exchangeOrderId: '1177623369315164164', status: 'open', price: '0.5217', size: '100', average: '0.5217', filled: '35', remain: '30' //size ok, remain ok
Order[1177623404698312707] exchangeOrderId: '1177623404694118409', status: 'open', price: '', size: '30', average: '', filled: '0', remain: '30'
Order[1177623404698312707] exchangeOrderId: '1177623404694118409', status: 'closed', price: '0.5217', size: '30', average: '0.5217', filled: '30', remain: '0'
Order[1177623369373884416] exchangeOrderId: '1177623369315164164', status: 'closed', price: '0.5217', size: '100', average: '0.5217', filled: '30', remain: '70' //size ok, remain wrong, should be 0
from ccxt.
Related Issues (20)
- Send spot limit order to ByBit, price and amount rounding HOT 2
- Kraken: Support for createMarketOrderWithCost using "viqc" flag HOT 18
- CCXT requires this.marketsLoaded = true set each new constructor, scaling problem HOT 1
- Bitget missing GET /api/v2/earn/account/assets HOT 1
- BITGET create order error HOT 3
- Coinbase - removed symbols cause glitch with orders HOT 4
- Correctly support KrakenFutures positions API HOT 1
- fetchTrades "since" doesn't work for okx, and bybit HOT 3
- Bingx - stoploss orders not parsed correctly HOT 1
- Bingx - parse order price / cost wrong HOT 2
- bitfinex: fetchOHLCV() returns incorrect result HOT 3
- Whitebit: Support for createMarketBuyOrderWithCost HOT 3
- Coinbase - provide an option to use the private methods instead of public methods to reduce rate limit errors HOT 10
- Publish CCXT on JSR - New JS / TS Package Registry HOT 3
- Can't not fetch leverage with binace HOT 5
- Biance watch_ticker response value is None HOT 11
- Binance Portfolio Margin `timeInForce` option `PO` results in no TIF parameter in new order (UM) request HOT 7
- Bitget order subscription duplication. C# HOT 6
- Subscription does not receive any result. C# HOT 6
- Move event handler map from exchange.handle_message to an exchange instance variable HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from ccxt.