question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Validate trades data from different exchanges

See original GitHub issue

How to validate trades data on data inconsistencies for case when id is not incremental integer? For example ‘id’: ‘62108d742e113d38dbd77080’

[{'info': {'symbol': 'ADA-USDT', 'side': 'buy', 'type': 'match', 'makerOrderId': '62108d597ee3b40001bdcd9b', 'sequence': '1620813227108', 'size': '271.5987', 'price': '1.009207', 'takerOrderId': '62108d74efab1800014e8490', 'time': '1645251956581730729', 'tradeId': '62108d742e113d38dbd77080'}, 'id': '62108d742e113d38dbd77080', 'order': None, 'timestamp': 1645251956581, 'datetime': '2022-02-19T06:25:56.581Z', 'symbol': 'ADA/USDT', 'type': None, 'takerOrMaker': None, 'side': 'buy', 'price': 1.009207, 'amount': 271.5987, 'cost': 274.0993092309, 'fee': None, 'fees': []}]
[{'info': {'symbol': 'ADA-USDT', 'side': 'buy', 'type': 'match', 'makerOrderId': '62108d597ee3b40001bdcd9b', 'sequence': '1620813227123', 'size': '271.5987', 'price': '1.009207', 'takerOrderId': '62108d7455756b0001502bbd', 'time': '1645251956614109596', 'tradeId': '62108d742e113d38dbd77081'}, 'id': '62108d742e113d38dbd77081', 'order': None, 'timestamp': 1645251956614, 'datetime': '2022-02-19T06:25:56.614Z', 'symbol': 'ADA/USDT', 'type': None, 'takerOrMaker': None, 'side': 'buy', 'price': 1.009207, 'amount': 271.5987, 'cost': 274.0993092309, 'fee': None, 'fees': []}, {'info': {'symbol': 'ADA-USDT', 'side': 'buy', 'type': 'match', 'makerOrderId': '62108d597ee3b40001bdcd9b', 'sequence': '1620813227129', 'size': '271.5987', 'price': '1.009207', 'takerOrderId': '62108d74f235a40001ba9c0a', 'time': '1645251956635220176', 'tradeId': '62108d742e113d38dbd77083'}, 'id': '62108d742e113d38dbd77083', 'order': None, 'timestamp': 1645251956635, 'datetime': '2022-02-19T06:25:56.635Z', 'symbol': 'ADA/USDT', 'type': None, 'takerOrMaker': None, 'side': 'buy', 'price': 1.009207, 'amount': 271.5987, 'cost': 274.0993092309, 'fee': None, 'fees': []}]
[{'info': {'symbol': 'ADA-USDT', 'side': 'buy', 'type': 'match', 'makerOrderId': '62108d597ee3b40001bdcd9b', 'sequence': '1620813227132', 'size': '271.5987', 'price': '1.009207', 'takerOrderId': '62108d74b061be0001c97443', 'time': '1645251956667442500', 'tradeId': '62108d742e113d38dbd77084'}, 'id': '62108d742e113d38dbd77084', 'order': None, 'timestamp': 1645251956667, 'datetime': '2022-02-19T06:25:56.667Z', 'symbol': 'ADA/USDT', 'type': None, 'takerOrMaker': None, 'side': 'buy', 'price': 1.009207, 'amount': 271.5987, 'cost': 274.0993092309, 'fee': None, 'fees': []}]
[{'info': {'symbol': 'ADA-USDT', 'side': 'buy', 'type': 'match', 'makerOrderId': '62108d597ee3b40001bdcd9b', 'sequence': '1620813227139', 'size': '271.5987', 'price': '1.009207', 'takerOrderId': '62108d749aecca0001a0e0cb', 'time': '1645251956700083632', 'tradeId': '62108d742e113d38dbd77085'}, 'id': '62108d742e113d38dbd77085', 'order': None, 'timestamp': 1645251956700, 'datetime': '2022-02-19T06:25:56.700Z', 'symbol': 'ADA/USDT', 'type': None, 'takerOrMaker': None, 'side': 'buy', 'price': 1.009207, 'amount': 271.5987, 'cost': 274.0993092309, 'fee': None, 'fees': []}]
[{'info': {'symbol': 'ADA-USDT', 'side': 'buy', 'type': 'match', 'makerOrderId': '62108d597ee3b40001bdcd9b', 'sequence': '1620813227148', 'size': '271.5987', 'price': '1.009207', 'takerOrderId': '62108d74152bd400010c949d', 'time': '1645251956731804143', 'tradeId': '62108d742e113d38dbd77086'}, 'id': '62108d742e113d38dbd77086', 'order': None, 'timestamp': 1645251956731, 'datetime': '2022-02-19T06:25:56.731Z', 'symbol': 'ADA/USDT', 'type': None, 'takerOrMaker': None, 'side': 'buy', 'price': 1.009207, 'amount': 271.5987, 'cost': 274.0993092309, 'fee': None, 'fees': []}, {'info': {'symbol': 'ADA-USDT', 'side': 'buy', 'type': 'match', 'makerOrderId': '62108d597ee3b40001bdcd9b', 'sequence': '1620813227153', 'size': '271.5987', 'price': '1.009207', 'takerOrderId': '62108d747ee3b40001be2440', 'time': '1645251956752651661', 'tradeId': '62108d742e113d38dbd77089'}, 'id': '62108d742e113d38dbd77089', 'order': None, 'timestamp': 1645251956752, 'datetime': '2022-02-19T06:25:56.752Z', 'symbol': 'ADA/USDT', 'type': None, 'takerOrMaker': None, 'side': 'buy', 'price': 1.009207, 'amount': 271.5987, 'cost': 274.0993092309, 'fee': None, 'fees': []}]
[{'info': {'symbol': 'ADA-USDT', 'side': 'buy', 'type': 'match', 'makerOrderId': '62108d597ee3b40001bdcd9b', 'sequence': '1620813227158', 'size': '271.5987', 'price': '1.009207', 'takerOrderId': '62108d744377fc0001a04d0e', 'time': '1645251956785136452', 'tradeId': '62108d742e113d38dbd7708a'}, 'id': '62108d742e113d38dbd7708a', 'order': None, 'timestamp': 1645251956785, 'datetime': '2022-02-19T06:25:56.785Z', 'symbol': 'ADA/USDT', 'type': None, 'takerOrMaker': None, 'side': 'buy', 'price': 1.009207, 'amount': 271.5987, 'cost': 274.0993092309, 'fee': None, 'fees': []}]
[{'info': {'symbol': 'ADA-USDT', 'side': 'buy', 'type': 'match', 'makerOrderId': '62108d723526430001a17aa0', 'sequence': '1620813227164', 'size': '271.5987', 'price': '1.009207', 'takerOrderId': '62108d74f938450001d556d2', 'time': '1645251956806578195', 'tradeId': '62108d742e113d38dbd7708c'}, 'id': '62108d742e113d38dbd7708c', 'order': None, 'timestamp': 1645251956806, 'datetime': '2022-02-19T06:25:56.806Z', 'symbol': 'ADA/USDT', 'type': None, 'takerOrMaker': None, 'side': 'buy', 'price': 1.009207, 'amount': 271.5987, 'cost': 274.0993092309, 'fee': None, 'fees': []}]

Issue Analytics

  • State:closed
  • Created 2 years ago
  • Comments:8 (5 by maintainers)

github_iconTop GitHub Comments

1reaction
kroitorcommented, Feb 19, 2022

Question - what is better from performance point of view - python or javascript for the described task?

They’re comparable, it depends more on the architecture of the code, not so much on the programming language.

1reaction
kroitorcommented, Feb 19, 2022

I need fetch data for all pairs

Then you will need a cloud of VPCs on your backend. You can’t really watch all pairs from all exchanges with a single machine at once without some serious infrastructure.

I’ve pushed a couple of examples here, JFYI:

Read more comments on GitHub >

github_iconTop Results From Across the Web

How Binance, Coinbase and Other Major Crypto Exchanges ...
Crypto services usually need multiple partners to maintain their websites and process trades, so they have to share users' data with those ...
Read more >
On-chain volume vs. Trading volume: Differences explained
As some exchanges manipulate data to fake volumes, examining trade volume along with on-chain volume enables you to verify volume at diverse price...
Read more >
Be Smart: Check Registration & Backgrounds Before You Trade
Verify the registration status and disciplinary history of the person or firm selling a product or strategy before researching the risks or potential...
Read more >
Data Downloading - Freqtrade
This data can be useful if you need many different timeframes, since it is only downloaded once, and then resampled locally to the...
Read more >
Market Price Validation (MPV)
The MPV data solution is a consensus-based price validation service that provides benchmarking and validation of non-observable markets for OTC swaps, ...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found