Giter Club home page Giter Club logo

cointaxman's People

Contributors

dependabot[bot] avatar eloo avatar g4m3r0 avatar griffsano avatar jhoogstraat avatar provinzio avatar scientes avatar sebastianelsner avatar shredengineer avatar sibbl avatar uvok avatar wearymanateevedaknotstabooresisting avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

cointaxman's Issues

Bitpanda exchange

I have some old Bitpanda (not Pro) trades. So, I would like to add the exchange. I can add this myself using the code from "pro" as a template. But it would help a lot if someone could post one actual data line of the bitpanda pro csv export for orientation! Much appreciated!

Support old Kraken statement files

The Kraken ledger file changed over the years. While current Kraken users may be able to generate a fresh statement (in the supported format), we could adjust our code, to support old files.

Missing transaction types for binance

2021-02-16 20:58:08,868 book INFO Reading file from exchange binance at account_statements\test_input.csv
2021-02-16 20:58:08,872 book WARNING Could not recognize operation Transaction Related in binance file account_statements\test_input.csv.
2021-02-16 20:58:08,874 book WARNING Could not recognize operation Transaction Related in binance file account_statements\test_input.csv.
2021-02-16 20:58:08,876 book WARNING Could not recognize operation The Easiest Way to Trade in binance file account_statements\test_input.csv.
2021-02-16 20:58:08,876 book WARNING Could not recognize operation The Easiest Way to Trade in binance file account_statements\test_input.csv.
2021-02-16 20:58:08,877 book WARNING Could not recognize operation Small assets exchange BNB in binance file account_statements\test_input.csv.
2021-02-16 20:58:08,880 book WARNING Could not recognize operation Small assets exchange BNB in binance file account_statements\test_input.csv.
2021-02-16 20:58:08,880 book WARNING Could not recognize operation Transaction Related in binance file account_statements\test_input.csv.
2021-02-16 20:58:08,881 book WARNING Could not recognize operation Transaction Related in binance file account_statements\test_input.csv.
2021-02-16 20:58:08,882 book WARNING Could not recognize operation Transaction Related in binance file account_statements\test_input.csv.
2021-02-16 20:58:08,882 book WARNING Could not recognize operation Transaction Related in binance file account_statements\test_input.csv.
2021-02-16 20:58:08,885 book WARNING Could not recognize operation Small assets exchange BNB in binance file account_statements\test_input.csv.
2021-02-16 20:58:08,885 book WARNING Could not recognize operation Small assets exchange BNB in binance file account_statements\test_input.csv.
2021-02-16 20:58:08,886 book WARNING Could not recognize operation Transaction Related in binance file account_statements\test_input.csv.
2021-02-16 20:58:08,886 book WARNING Could not recognize operation Transaction Related in binance file account_statements\test_input.csv.
2021-02-16 20:58:08,888 book WARNING Could not recognize operation Small assets exchange BNB in binance file account_statements\test_input.csv.
2021-02-16 20:58:08,888 book WARNING Could not recognize operation Small assets exchange BNB in binance file account_statements\test_input.csv.
2021-02-16 20:58:08,889 book WARNING Could not recognize operation Transaction Related in binance file account_statements\test_input.csv.
2021-02-16 20:58:08,890 book WARNING Could not recognize operation Transaction Related in binance file account_statements\test_input.csv.
2021-02-16 20:58:08,892 book WARNING Could not recognize operation Small assets exchange BNB in binance file account_statements\test_input.csv.
2021-02-16 20:58:08,892 book WARNING Could not recognize operation Small assets exchange BNB in binance file account_statements\test_input.csv.
2021-02-16 20:58:08,894 book WARNING Could not recognize operation Small assets exchange BNB in binance file account_statements\test_input.csv.
2021-02-16 20:58:08,907 book WARNING Could not recognize operation Small assets exchange BNB in binance file account_statements\test_input.csv.
Traceback (most recent call last):
File "C:\CoinTaxman-main\src\taxman.py", line 78, in _evaluate_taxation_GERMANY
sold_coins = bilance.sell(op.change)
File "C:\CoinTaxman-main\src\bilance_queue.py", line 118, in sell
bop: BilancedOperation = self.get()
File "C:\CoinTaxman-main\src\bilance_queue.py", line 67, in get
return self._get()
File "C:\CoinTaxman-main\src\bilance_queue.py", line 73, in _get
return self.queue.popleft()
IndexError: pop from an empty deque

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "C:\CoinTaxman-main\src\main.py", line 43, in
main()
File "C:\CoinTaxman-main\src\main.py", line 38, in main
taxman.evaluate_taxation()
File "C:\CoinTaxman-main\src\taxman.py", line 130, in evaluate_taxation
self.__evaluate_taxation(coin, operations)
File "C:\CoinTaxman-main\src\taxman.py", line 82, in _evaluate_taxation_GERMANY
raise RuntimeError(
RuntimeError: Not enough BTC in queue to remove sold ones.
test_input.zip

Proper Python linting (with flake8)

Currently, the code base is not well linted with respect to Python PEP-8.

I propse a linting of the code base by using flake8 to remove unused code, more explicit importing and adjust to consistent line lengths. This has been decided with to max-line-length=88 in the comments below.

I saw, that a lot of star-imports where used and that pylint was configured to ignore them (see main.py). The pythonic way would be to import modules and reference accordingly, like bilance_queue.BilanceQueue. If this is unwanted, we could move to a bit less favoured way to explicitly import the needed classes and functions from the model. However, star imports can confuse with increasing code-base complexity.

Kraken API requests frequency exceeds standard rate limit

The current request frequency has a too small period, resulting in the excess of the Kraken specified rate limit.

This leads to non-requested _get_price_kraken calls, which return 0 and seem to not be re-requested, thus leading to false calculations afterwards (an may be won't be re-queried in another run, since 0 is saved into the DB? Need confirmation, here).

2021-03-06 13:38:05,744 price_data   WARNING  Querying trades for #PAIR# at YYYY-mm-dd HH-MM-SS+T (offset=20m): Could not retrieve trades: ['EAPI:Rate limit exceeded']

No enough to sell

error:
2021-03-02 15:16:00,273 taxman ERROR test.csv: Line 5: Not enough IOTA in queue to sell (transaction from 2017-12-05 19:30:49+00:00 on binance)

Minimal reproducible example:

UTC_Time,Account,Operation,Coin,Change,Remark
2017-12-05 18:03:40,Spot,Buy,IOTA,2.00000000,""
2017-12-05 18:09:03,Spot,Buy,IOTA,2.00000000,""
2017-12-05 19:13:34,Spot,Sell,IOTA,-2.00000000,""
2017-12-05 19:30:49,Spot,Sell,IOTA,-2.00000000,""

changing https://github.com/provinzio/CoinTaxman/blob/main/src/bilance_queue.py#L125

if bop is None:
    return None

to

if bop is None:
    if len(sold_coins)>0:
       return sold_coins
   else:
       return None

should fix that
But i'm Not sure how good the fix is

Bug in _get_price_data_binance

UTC_Time,Account,Operation,Coin,Change,Remark
2021-05-08 21:30:41,Spot,Buy,BURGER,3.00000000,""
2021-05-08 23:01:34,Spot,Transaction Related,BURGER,-3.00000000,""

leads to an infinte recursion:

2021-05-09 21:11:32,579 taxman       DEBUG    Starting evaluation...
2021-05-09 21:11:32,590 price_data   DEBUG    Calling https://api.binance.com/api/v3/aggTrades?symbol=BURGEREUR&startTime=1620514864000&endTime=1620514924000
2021-05-09 21:11:33,140 price_data   DEBUG    Calling https://api.binance.com/api/v3/aggTrades?symbol=BURGERBTC&startTime=1620514864000&endTime=1620514924000
2021-05-09 21:11:33,554 price_data   DEBUG    Calling https://api.binance.com/api/v3/aggTrades?symbol=BTCBURGER&startTime=1620514864000&endTime=1620514924000
2021-05-09 21:11:33,950 price_data   DEBUG    Calling https://api.binance.com/api/v3/aggTrades?symbol=BTCBURGER&startTime=1620514864000&endTime=1620514924000
2021-05-09 21:11:34,366 price_data   DEBUG    Calling https://api.binance.com/api/v3/aggTrades?symbol=BTCBURGER&startTime=1620514864000&endTime=1620514924000
2021-05-09 21:11:34,771 price_data   DEBUG    Calling https://api.binance.com/api/v3/aggTrades?symbol=BTCBURGER&startTime=1620514864000&endTime=1620514924000
2021-05-09 21:11:35,185 price_data   DEBUG    Calling https://api.binance.com/api/v3/aggTrades?symbol=BTCBURGER&startTime=1620514864000&endTime=1620514924000
2021-05-09 21:11:35,701 price_data   DEBUG    Calling https://api.binance.com/api/v3/aggTrades?symbol=BTCBURGER&startTime=1620514864000&endTime=1620514924000
2021-05-09 21:11:36,217 price_data   DEBUG    Calling https://api.binance.com/api/v3/aggTrades?symbol=BTCBURGER&startTime=1620514864000&endTime=1620514924000
2021-05-09 21:11:36,618 price_data   DEBUG    Calling https://api.binance.com/api/v3/aggTrades?symbol=BTCBURGER&startTime=1620514864000&endTime=1620514924000
2021-05-09 21:11:37,025 price_data   DEBUG    Calling https://api.binance.com/api/v3/aggTrades?symbol=BTCBURGER&startTime=1620514864000&endTime=1620514924000
2021-05-09 21:11:37,436 price_data   DEBUG    Calling https://api.binance.com/api/v3/aggTrades?symbol=BTCBURGER&startTime=1620514864000&endTime=1620514924000
2021-05-09 21:11:37,949 price_data   DEBUG    Calling https://api.binance.com/api/v3/aggTrades?symbol=BTCBURGER&startTime=1620514864000&endTime=1620514924000
2021-05-09 21:11:38,365 price_data   DEBUG    Calling https://api.binance.com/api/v3/aggTrades?symbol=BTCBURGER&startTime=1620514864000&endTime=1620514924000
2021-05-09 21:11:39,295 price_data   DEBUG    Calling https://api.binance.com/api/v3/aggTrades?symbol=BTCBURGER&startTime=1620514864000&endTime=1620514924000

My idea why this is happening:
This fails due to only being tradeable with bnb and not btc thus breaking the normal get_price function

Script to find missing money

related to #11
Maybe a small script which runs before the main one would be nice for these use cases:
if the data for buying or selling is unknown for certain coins (due to the money coming from a deposit or withdrawal or something like that)
print the coins where editing or additional data is needed first before running the script.

Because current behavior of failing when no money is present (due to being from deposit) is suboptimal in my eyes.

sry if my explanation is not that good.

sorta related to #4

New exchange: Bitpanda Pro

I was in the process of writing a Python script for myself when I was pointed here.

I'd like to import data from the "Bitpanda Pro" exchange. I'd be willing to submit a PR, once I get familiar with the codebase.

The API documentation is provided here: https://developers.bitpanda.com/exchange/.
The API endpoint for trades is https://developers.bitpanda.com/exchange/#all-trades

The returned data contains the fee separately, that is, the trade is given without the fee. The API uses pagination. If the 'cursor' entry is in the JSON data, there's more data.

Sample data for trades:

{'cursor': 'base64data',
 'max_page_size': 5,
 'trade_history': [{'fee': {'collection_type': 'BEST',
                            'fee_amount': 'XXX',
                            'fee_currency': 'BEST',
                            'fee_group_id': 'default',
                            'fee_percentage': '0.08',
                            'fee_type': 'MAKER',
                            'running_trading_volume': 'XXX'},
                    'trade': {'account_id': 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx',
                              'amount': 'XXX',
                              'instrument_code': 'PAN_EUR',
                              'order_id': 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx',
                              'price': 'XXX',
                              'price_tick_sequence': 0,
                              'sequence': 1663784546,
                              'side': 'SELL',
                              'time': '2021-04-22T00:00:00.000000Z',
                              'trade_id': 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'}},
                   {'fee': {'collection_type': 'BEST',
                            'fee_amount': 'XXX',
                            'fee_currency': 'BEST',
                            'fee_group_id': 'default',
                            'fee_percentage': '0.08',
                            'fee_type': 'MAKER',
                            'running_trading_volume': 'XXX'},
                    'trade': {'account_id': 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx',
                              'amount': 'XXX',
                              'instrument_code': 'PAN_EUR',
                              'order_id': 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx',
                              'price': 'XXX',
                              'price_tick_sequence': 0,
                              'sequence': 1663783772,
                              'side': 'SELL',
                              'time': '2021-04-22T00:00:00.000000Z',
                              'trade_id': 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'}},
                   {'fee': {'collection_type': 'BEST',
                            'fee_amount': 'XXX',
                            'fee_currency': 'BEST',
                            'fee_group_id': 'default',
                            'fee_percentage': '0.12',
                            'fee_type': 'TAKER',
                            'running_trading_volume': 'XXX'},
                    'trade': {'account_id': 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx',
                              'amount': 'XXX',
                              'instrument_code': 'LTC_EUR',
                              'order_id': 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx',
                              'price': 'XXX',
                              'price_tick_sequence': 0,
                              'sequence': 1663679815,
                              'side': 'BUY',
                              'time': '2021-04-22T00:00:00.000000Z',
                              'trade_id': 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'}},
                   {'fee': {'collection_type': 'BEST',
                            'fee_amount': 'XXX',
                            'fee_currency': 'BEST',
                            'fee_group_id': 'default',
                            'fee_percentage': '0.12',
                            'fee_type': 'TAKER',
                            'running_trading_volume': 'XXX'},
                    'trade': {'account_id': 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx',
                              'amount': 'XXX',
                              'instrument_code': 'BEST_EUR',
                              'order_id': 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx',
                              'price': 'XXX',
                              'price_tick_sequence': 0,
                              'sequence': 1663674738,
                              'side': 'BUY',
                              'time': '2021-04-22T00:00:00.000000Z',
                              'trade_id': 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'}},
                   {'fee': {'collection_type': 'STANDARD',
                            'fallback_reason': {'best_balance': {'available': 'XXX',
                                                                 'locked': 'XXX',
                                                                 'needed': 'XXX'},
                                                'caused_by': 'INSUFFICIENT_FUNDS'},
                            'fee_amount': 'XXX',
                            'fee_currency': 'EUR',
                            'fee_group_id': 'default',
                            'fee_percentage': '0.15',
                            'fee_type': 'TAKER',
                            'running_trading_volume': 'XXX'},
                    'trade': {'account_id': 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx',
                              'amount': 'XXX',
                              'instrument_code': 'ETH_EUR',
                              'order_id': 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx',
                              'price': 'XXX',
                              'price_tick_sequence': 0,
                              'sequence': 1663646554,
                              'side': 'SELL',
                              'time': '2021-04-22T00:00:00.000000Z',
                              'trade_id': 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'}}]}

I don't know how fees are handled in regards to taxation, though.

In regards to historical price data, the relevant API endpoints seem to be either https://developers.bitpanda.com/exchange/#price-ticks-for-instrument or https://developers.bitpanda.com/exchange/#candlesticks (?)

Optimize getting Price data

Currently the price is calculated by getting the data for 60s from binance and then an average is made from these 60s.
Thus for every trade 3 calls are made to binance if i'm correct (buy/sell/fee) wouldn't it be easier to get the data for a larger timeframe for some coins (e.g bnb for fees and comissions) generate a lot of small transactions within a time frame.

I do not know when exactly the prices are calculated but a simple idea from my side:

1.group transactions of one coin in timeranges which are under one hour (max range on binance)
2.download the needed timerange
3.select the 60s needed for the calculation of the prices and calculate the prices and save to the db
4. maybe cache the api timerange if needed again (dunno if useful)

this could reduce the amount of api calls from for ex. bnb from 1 per entry to about 1 api request per 5-6 entries for bnb

if you have many entries (for ex 8000, around half or more are bnb,mostly due to comissions and fees) it would take around 5-6hours for the prices to load (2s per call) and if it would be possible to optimize that with stated algorithm it would maybe only take 3h)

if there is a better way to get this data would also be good for example get the ohlcv data from binance for the 1m timerange, cctx is a good lib for that, it works with many exhanges or just use: https://binance-docs.github.io/apidocs/spot/en/#kline-candlestick-data . on binance you can request 1000 1min candles with a single request if i'm not wrong, which would be alto faster.

Floating point issues lead to missing transactions exception

I'm currently setting this project up. However, I quickly ran into floating point issues which show up as Is your account statement missing any transactions? This error may also occur after deposits from unknown sources. exceptions.

I have the following BUY statements: 4.494 + 45.5 + 0.006 = 50 and the SELL statements 8.37 + 16.57 + 0.67 + 3.59 + 0.01 + 0.01 + 16.05 + 4.73 = 50. Both lists here are in the order they're actually being evaluated.

Now what happens when balance_queue.sell is called with the final change of 4.73?

  1. There's one last BalancedOperation in the queue with the value 45.5
  2. In the while loop, not_sold is calculated like the following (those are real life debug statements):
not_sold = 45.5 - 40.77
not_sold = 4.729999999999997
--> the else case is taken and change is set to 3.552713678800501e-15
  1. The while loop then sees that change > 0 is still true and tries to get the next item from the queue... which fails.

Unfortunately I'm not very familiar with Python but coming from other programming languages, I wonder whether decimal is a suitable approach here or whether there are better solutions like using some money packages.

[bug] Not enough BNB in queue to sell

2021-08-15 12:06:36,024 book INFO Reading file from exchange binance at X:\CoinTaxman-main\account_statements\part-00000-154c5b63-ff2c-4615-9ed2-4d89319596e4-c000.csv
2021-08-15 12:06:36,180 book WARNING I may have missed a remark in X:\CoinTaxman-main\account_statements\part-00000-154c5b63-ff2c-4615-9ed2-4d89319596e4-c000.csv:2584: Withdraw fee is included.
2021-08-15 12:06:37,588 book WARNING I may have missed a remark in X:\CoinTaxman-main\account_statements\part-00000-154c5b63-ff2c-4615-9ed2-4d89319596e4-c000.csv:26726: Withdraw fee is included.
2021-08-15 12:06:37,588 book WARNING I may have missed a remark in X:\CoinTaxman-main\account_statements\part-00000-154c5b63-ff2c-4615-9ed2-4d89319596e4-c000.csv:26754: Withdraw fee is included.
2021-08-15 12:06:37,728 book INFO Reading file from exchange binance at X:\CoinTaxman-main\account_statements\part-00000-21a78b20-5388-477e-be15-b0617f4cb439-c000.csv
2021-08-15 12:06:38,102 book WARNING I may have missed a remark in X:\CoinTaxman-main\account_statements\part-00000-21a78b20-5388-477e-be15-b0617f4cb439-c000.csv:6259: Withdraw fee is included.
2021-08-15 12:06:38,102 book WARNING I may have missed a remark in X:\CoinTaxman-main\account_statements\part-00000-21a78b20-5388-477e-be15-b0617f4cb439-c000.csv:6260: Withdraw fee is included.
2021-08-15 12:06:38,102 book WARNING I may have missed a remark in X:\CoinTaxman-main\account_statements\part-00000-21a78b20-5388-477e-be15-b0617f4cb439-c000.csv:6261: Withdraw fee is included.
2021-08-15 12:06:38,682 book INFO Reading file from exchange binance at X:\CoinTaxman-main\account_statements\part-00000-fc60df31-720b-487d-8fe5-e37f5b43deeb-c000.csv
2021-08-15 12:06:38,682 taxman DEBUG Starting evaluation...
2021-08-15 12:06:38,870 taxman ERROR part-00000-154c5b63-ff2c-4615-9ed2-4d89319596e4-c000.csv: Line 545: Not enough BNB in queue to sell (transaction from 2021-03-19 08:44:39+00:00 on binance)
This error occurs if your account statements have unmatched buy/sell positions.
Have you added all your account statements of the last years?
This error may also occur after deposits from unknown sources.

Traceback (most recent call last):
File "X:\CoinTaxman-main\src\main.py", line 44, in
main()
File "X:\CoinTaxman-main\src\main.py", line 38, in main
taxman.evaluate_taxation()
File "X:\CoinTaxman-main\src\taxman.py", line 194, in evaluate_taxation
self.__evaluate_taxation(coin, operations)
File "X:\CoinTaxman-main\src\taxman.py", line 109, in _evaluate_taxation_GERMANY
raise RuntimeError
RuntimeError

2021-03-19 08:12:34,Spot,Transaction Related,BNBUP,-0.14000000,""
2021-03-19 08:12:34,Spot,Fee,BNB,-0.00022759,""
2021-03-19 08:12:34,Spot,Buy,USDT,79.92600000,""
2021-03-19 08:44:39,Spot,Buy,BTC,0.00208771,""
2021-03-19 08:44:39,Spot,Fee,BNB,-0.00034544,""
2021-03-19 08:44:39,Spot,Transaction Related,BNB,-0.46000000,""

2021-03-19 09:04:33,Spot,Transaction Related,BTCUP,-0.01000000,""
2021-03-19 09:04:33,Spot,Transaction Related,BTCUP,-3.28000000,""
2021-03-19 09:04:33,Spot,Fee,BNB,-0.00175041,""
2021-03-19 09:04:33,Spot,Buy,USDT,620.02496000,""
2021-03-19 09:04:33,Spot,Buy,USDT,1.89032000,""
2021-03-19 09:04:33,Spot,Fee,BNB,-0.00000533,""

I tried manually to fake a BNB deposit in this history to try to fix this error:

UTC_Time,Account,Operation,Coin,Change,Remark
2021-02-11 08:57:34,Spot,Deposit,BNB,1.10664599,""
2021-02-11 13:20:51,Spot,Commission History,BNB,0.00002547,""
2021-02-11 18:32:00,Spot,Commission History,BNB,0.00003643,""
2021-02-12 13:01:54,Spot,Commission History,BNB,0.00001155,""

however this was unsuccesful:

2021-08-15 12:16:03,675 taxman ERROR part-00000-154c5b63-ff2c-4615-9ed2-4d89319596e4-c000.csv: Line 546: Not enough BNB in queue to sell (transaction from 2021-03-19 08:44:39+00:00 on binance)

Is there a fix for this bug or do you have some suggestions, what i can try?

New exchange: Coinbase Pro

I'd love to see Coinbase Pro as part of this tool and already started implementing it 🚀

For getting the prices, the official API for "Getting historical rates" can be used. My plan would be to get the nearest historic rate with the smallest granularity and use the average of high and low values.

However, there's the problem that Coinbase doesn't support XRP anymore and has removed the historical data from their API. I'm not sure how to tackle this. Should the tool be extended to use other exchances as kind of a fallback strategy?

Commission is not a gain operation

Commissions are currently not in the gain_operations list and are consequently sorted after SELL and FEE.
This can lead to having not enough coins in queue for selling.

Minimum example:

2021-09-07 10:00:00,Spot,Buy,COIN1,100,""
2021-09-07 10:00:00,Spot,Commission Fee Shared With You,COIN1,0.02,""
2021-09-07 10:00:00,Spot,Fee,COIN1,-0.1,""
2021-09-07 10:00:00,Spot,Transaction Related,COIN2,-200,""
2021-09-07 11:00:00,Spot,Buy,COIN2,300,""
2021-09-07 11:00:00,Spot,Transaction Related,COIN1,-99.92,""

Since 100 - 0.1 is 99.9, the last line produces Not enough COIN1 in queue to sell.
The correct calculation would be 100 - 0.1 + 0.02 = 99.92 (before selling).

Are fees in EUR recognized?

Fees in EUR might be buggy. As far as I remember, the fees are removed from the Balance queue. The "lost coins" are therefore not considered anymore, but EUR transactions aren't recognized as "taxable events", therefore fees in EUR might be ignored in the evaluation.

EUR fees should be saved separatly and removed from the taxes amount at the end of the taxation period.
This might deserve an issue.

Unfortunately I can not look into the code right now to confirm it.

Originally posted by @provinzio in #42 (comment)

problems with deposit/withdraw

In:
https://github.com/provinzio/CoinTaxman/blame/main/src/taxman.py#L133

why is Depositing/withdrawal not considered when using the balance?

this leads to:
ERROR test.csv: Line 4: Not enough ETH in queue to sell

sample csv:

UTC_Time,Account,Operation,Coin,Change,Remark
2017-12-05 17:49:31,Spot,Deposit,ETH,0.04351043,""
2017-12-05 18:01:21,Spot,Fee,BNB,-0.00100000,""
2017-12-05 18:01:21,Spot,Sell,ETH,-0.01138874,""
2017-12-05 18:01:21,Spot,Buy,BNB,2.00000000,""

this should work
(yes i changed year to 2017)

Implement exchange Kraken

For Kraken, there are two different CSV export options for account statements: Trades and Ledgers history.

We need to use the Ledgers history, as its format is vastly more useful for our purposes.

The transaction fees are listed in-line (and not in separate follow-up lines), so I think for each line the read-in function will have to generate two Operations (in the case of a non-zero fee).

Historical prices (OHLC data) and trade data can easily be fetched using the public API: https://support.kraken.com/hc/en-us/articles/218198197-How-to-retrieve-historical-time-and-sales-trading-history-using-the-REST-API-Trades-endpoint-

I'm currently working on this feature.

[Feature Request] Add margin Trading

This could be slightly complicated, so this is more of an idea what could be implemented. and a place to store information

information regarding margin trading in germany:

Kapitalerträge aus Margin Trading

Schließlich werden in dieser Kategorie alle Gewinne und Verluste aus Margin Trading abgebildet, also solche An- und Verkäufe die „auf Marge", das heißt mit einem Hebel durchgeführt wurden.
Margingewinne, -verluste und -gebühren werden in dieser Übersicht aufsummiert dargestellt, weil sie nicht dem persönlichen Einkommensteuersatz unterliegen. Sie werden pauschal mit einem Steuersatz von 25 Prozent der Kapitalertragsteuer unterworfen.

https://www.accointing.com/de/crypto-tax-guide/de/wie-versteuere-ich-verluste-aus-dem-cryptohandel

Berücksichtigung von Verlusten aus Margin Trading nur begrenzt möglich

Verluste aus Kapitalerträgen, wie z.B. durch Margin Trading mit Kryptowährungen auf BitMex, können auch berücksichtigt werden.
Allerdings ist hier der Verlustabzug ab dem 01.01.2020 aufgrund der neuen „Derivatesteuer“ nur noch sehr begrenzt möglich.
Eine vertikale Verrechnung von Verlusten aus der Anlage KAP und der Anlage SO war auch schon vor der Gesetzesänderung aufgrund der Verlustabzugsbeschränkungen ausgeschlossen.

https://winheller.com/blog/verluste-bitcoin-kryptowaehrungen-steuererklaerung/

haven't found more till now

Add git commit hash to export file

It should be easy to reconstruct an evaluation from the past.

We may be able to add the github repo link + current commit hash to the file metadata.

Issues with commission

Does not seem to work for the following file. Statement is from binance. Adjustments I made: tax year 2021. All else was left as it is.

UTC_Time,Account,Operation,Coin,Change,Remark
2021-01-01 00:41:08,Spot,Buy,USDT,11.35763200,""
2021-01-01 00:41:08,Spot,Commission Fee Shared With You,USDT,0.00227153,""
2021-01-01 00:41:08,Spot,Fee,USDT,-0.01135763,""
2021-01-01 00:41:08,Spot,Sell,KNC,-14.14400000,""
2021-01-01 01:28:56,Spot,Fee,USDT,-0.01123540,""
2021-01-01 01:28:56,Spot,Commission Fee Shared With You,USDT,0.00224708,""
2021-01-01 01:28:56,Spot,Buy,USDT,11.23540200,""
2021-01-01 01:28:56,Spot,Sell,EUR,-9.18000000,""
2021-01-01 07:12:37,Spot,Buy,DOT,2.54000000,""
2021-01-01 07:12:37,Spot,Sell,USDT,-22.30932800,""
2021-01-01 07:12:37,Spot,Commission Fee Shared With You,DOT,0.00050800,""
2021-01-01 07:12:37,Spot,Fee,DOT,-0.00254000,""
2021-01-01 07:24:08,Spot,Commission Fee Shared With You,USDT,0.00454069,""
2021-01-01 07:24:08,Spot,Sell,DOT,-2.53000000,""
2021-01-01 07:24:08,Spot,Buy,USDT,22.70346100,""
2021-01-01 07:24:08,Spot,Fee,USDT,-0.02270346,""
2021-01-01 11:10:45,Spot,Commission Fee Shared With You,USDC,0.00457800,""
2021-01-01 11:10:45,Spot,Fee,USDC,-0.02289000,""
2021-01-01 11:10:45,Spot,Buy,USDC,22.89000000,""
2021-01-01 11:10:45,Spot,Sell,USDT,-22.83506400,""
2021-01-01 13:43:24,Spot,Fee,USDT,-0.02282197,""
2021-01-01 13:43:24,Spot,Buy,USDT,22.82197300,""
2021-01-01 13:43:24,Spot,Commission Fee Shared With You,USDT,0.00456440,""
2021-01-01 13:43:24,Spot,Sell,USDC,-22.87000000,""
2021-01-01 14:32:00,Spot,Sell,USDT,-22.80811800,""
2021-01-01 14:32:00,Spot,Fee,XEM,-0.10574000,""
2021-01-01 14:32:00,Spot,Commission Fee Shared With You,XEM,0.02114800,""
2021-01-01 14:32:00,Spot,Buy,XEM,105.74000000,""
2021-01-01 15:54:01,Spot,Sell,XEM,-105.65000000,""
2021-01-01 15:54:01,Spot,Buy,USDT,23.17961000,""
2021-01-01 15:54:01,Spot,Fee,USDT,-0.02317961,""
2021-01-01 15:54:01,Spot,Commission Fee Shared With You,USDT,0.00463592,""
2021-01-01 16:03:24,Spot,Transaction Related,EUR,-200.00000000,""
2021-01-01 16:03:24,Spot,Transaction Related,USDT,243.28597000,""
2021-01-01 17:22:49,Spot,Sell,USDT,-49.86327600,""

I'm getting the following error:

PS C:\Users\k\coding\CryptoTaxMan\CoinTaxman\src> py .\main.py
2021-02-23 23:24:49,197 book INFO Reading file from exchange binance at C:\Users\k\coding\CryptoTaxMan\CoinTaxman\account_statements\part-00000-9de92497-2081-408b-a4c2-981f99a7c440-c000.csv
Traceback (most recent call last):
File "C:\Users\k\coding\CryptoTaxMan\CoinTaxman\src\main.py", line 44, in
main()
File "C:\Users\k\coding\CryptoTaxMan\CoinTaxman\src\main.py", line 32, in main
status = book.read_files()
File "C:\Users\k\coding\CryptoTaxMan\CoinTaxman\src\book.py", line 257, in read_files
self.read_file(file_path)
File "C:\Users\k\coding\CryptoTaxMan\CoinTaxman\src\book.py", line 217, in read_file
read_file(file_path)
File "C:\Users\k\coding\CryptoTaxMan\CoinTaxman\src\book.py", line 79, in _read_binance
for _utc_time, account, operation, coin, _change, remark in reader:
ValueError: not enough values to unpack (expected 6, got 0)

[Binance] Calculate price from transaction statement

Currently the price for a certain transaction statement is currently not known for binance and some other exchanges.
but for binance transactions that belong together always have the correct timestamp if i'm not mistaken.

2021-05-09 03:25:21,Spot,Transaction Related,USDT,-21.87041400,""
2021-05-09 03:25:21,Spot,Fee,BNB,-0.00002523,""
2021-05-09 03:25:21,Spot,Buy,VET,98.10000000,""

Thus the absolute of Transaction Related divided by buy should give us the price of VET/USDT without requiring an api request.
98.1/21.8741400=0.2294

This does not work for all statements but should improve the accuracy of some and the speed (if we have eur as base fiat we'd need to compute the USDT/EUR but we would save probably 1 api request)

Offer test account statements for code test of exchange integrations

Hereby, I request to offer artificial account statements (best, real statements with altered data), to test exchange integrations regarding valid implementation.

This includes the by-hand calculation of taxes with respect to the applicable law which is supported.

It should be noted, that all supported tax laws should be tested with each integration. Best, in a combined test file, which is the real world use-case when exporting exchange activity by users.

Regonize speculation period (Spekulationsfrist) for lending and staking.

According to a draft of the Federal Ministry of Finance of Germany ("Bundesfinanzministerium"), coin lending and staking raises the speculation period ("Spekulationsfrist") from one to ten years.

We shoud adjust the way, staking and lending profits are handled by CoinTaxman.

For me, it stays unclear whether FIFO has to be followed or not.
Example:

  1. I buy a coin
  2. I buy a second coin
  3. I stake one coin: Which coin do I stake? Do I have to use FIFO? Let's assume I stake the first coin.
  4. I wait so that both coins are older than 1 year. I am still staking the first coin.
  5. I sell a coin: Which coin do I sell? According to FIFO I have to sell the first coin which is currently staked and pay taxes on it because of the increased speculation period. But I'd rather sell the seconds coin, which is actually the only one available for me.

German Source:
https://www.heise.de/news/Fuer-Proof-of-Stake-genutztes-Kryptogeld-erst-nach-10-Jahren-steuerfrei-6114198.html
Draft of BMF: https://www.bundesfinanzministerium.de/Content/DE/Downloads/BMF_Schreiben/Steuerarten/Einkommensteuer/2021-06-17-est-kryptowaehrungen.pdf?__blob=publicationFile&v=2

[feature request] import bittytax exports

Hi folks,

The project bittytax (https://github.com/BittyTax/BittyTax) is a tax solution for UK.
One of its modules (bittytax_conv) allows the user to simplify their exported transaction files to a single xlsx file with different spreadsheets for every transaction file.
The columns which are the same for every file are:

Type | Buy Quantity | Buy Asset | Buy Value | Sell Quantity | Sell Asset | Sell Value | Fee Quantity | Fee Asset | Fee Value | Wallet | Timestamp

Maybe this exported file can be added as import file for CoinTaxman. This way, many exchanges could be added without the need for a new parser.
Also it would be a nice input file for custom transactions to be added.

Thank you
Sincerely
pardofelis

Using LIFO queue instead of fifo fails

  File "/home/bastian/Documents/git/CoinTaxman/src/main.py", line 44, in <module>
    main()
  File "/home/bastian/Documents/git/CoinTaxman/src/main.py", line 38, in main
    taxman.evaluate_taxation()
  File "/home/bastian/Documents/git/CoinTaxman/src/taxman.py", line 182, in evaluate_taxation
    self.__evaluate_taxation(coin, operations)
  File "/home/bastian/Documents/git/CoinTaxman/src/taxman.py", line 70, in _evaluate_taxation_GERMANY
    balance.remove_fee(op.change)
  File "/home/bastian/Documents/git/CoinTaxman/src/balance_queue.py", line 92, in remove_fee
    self.buffer_fee.append(fee)
AttributeError: 'BalanceLIFOQueue' object has no attribute 'buffer_fee'

Resolve deposits and withdrawls

Foreign currency/coin deposits have to match withdrawls from another exchange. Otherwhise the program is not able to calculate the tax gains properly.

Furthermore we have to resolve deposits and withdrawals between the exchanges to correctly evaluate the taxation (#86).

We should check this in between the book read-in and the evaluation nd raise a warning or an exception.

  • Find matching withdrawals and deposits or raise a warning
  • Resolve withdrawals/deposits from one exchange to another with FIFO/LIFO principle (according to config): Move transactions from the withdrawal-exchange to the deposit-exchange by changing operations.platform. Transactions might have to be splitted for this.

Adressed in https://github.com/provinzio/CoinTaxman/tree/4-resolve-deposits

Incorrect tax results

The following input should generate a tax event - if I am correct:

UTC_Time,Account,Operation,Coin,Change,Remark
2020-04-20 16:45:17,Spot,Fee,ETH,-0.0031030,""
2020-04-20 16:45:17,Spot,Buy,ETH,3.1030000,""
2020-04-20 16:45:17,Spot,Sell,EUR,-3320.92707600,""
2021-01-25 06:00:17,Spot,Sell,ETH,-3.0030000,""
2021-01-25 06:00:17,Spot,Buy,EUR,15320.92707600,""

Bought ~ 3 ETH for 3320 EUR and sold it <1 year for 15.000 EUR.
Therefore I made gains that I have to pay taxes on.

The output looks like this:
Date,Taxation Type,Taxed Gain in EUR,Action,Amount,Asset,Remark
2020-04-20 16:45:17,Sonstige Einkünfte,-0.5162864877875,Fee,0.003103,ETH,

Am I missing something?

Fail to import Kraken-ledger

Win10, 64 bit
Python 3.9.5150.1013

certifi | 2020.12.5 | 2021.5.30
chardet | 4.0.0 | 4.0.0
idna | 2.10 | 3.2
pip | 21.1.2 | 21.1.2
python-dateutil | 2.8.1 | 2.8.1
requests | 2.25.1 | 2.25.1
setuptools | 57.0.0 | 57.0.0
six | 1.15.0 | 1.16.0
urllib3 | 1.26.5 | 1.26.5

Hello!
I tried to import a brandnew kraken ledger, but when I start main.py an error occurs. What may be the problem?
The console reads

"C:\Users\Hugos Dell\PycharmProjects\Steuer\Scripts\python.exe" "C:/Users/Hugos Dell/PycharmProjects/Steuer/CoinTaxman-main/src/main.py"
2021-06-20 23:16:52,068 book INFO Reading file from exchange kraken_ledgers at C:\Users\Hugos Dell\PycharmProjects\Steuer\CoinTaxman-main\account_statements\ledgers.csv
2021-06-20 23:16:52,073 taxman DEBUG Starting evaluation...
2021-06-20 23:16:52,073 taxman WARNING Balance has outstanding fees which were not considered: 31.0797 EUR
Traceback (most recent call last):
File "C:\Users\Hugos Dell\PycharmProjects\Steuer\CoinTaxman-main\src\main.py", line 44, in
main()
File "C:\Users\Hugos Dell\PycharmProjects\Steuer\CoinTaxman-main\src\main.py", line 39, in main
taxman.export_evaluation_as_csv()
File "C:\Users\Hugos Dell\PycharmProjects\Steuer\CoinTaxman-main\src\taxman.py", line 234, in export_evaluation_as_csv
if commit_hash := misc.get_current_commit_hash():
File "C:\Users\Hugos Dell\PycharmProjects\Steuer\CoinTaxman-main\src\misc.py", line 236, in get_current_commit_hash
subprocess.check_output(["git", "rev-parse", "HEAD"])
File "D:\Programme\python\python3_9\lib\subprocess.py", line 424, in check_output
return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
File "D:\Programme\python\python3_9\lib\subprocess.py", line 505, in run
with Popen(*popenargs, **kwargs) as process:
File "D:\Programme\python\python3_9\lib\subprocess.py", line 951, in init
self._execute_child(args, executable, preexec_fn, close_fds,
File "D:\Programme\python\python3_9\lib\subprocess.py", line 1420, in _execute_child
hp, ht, pid, tid = _winapi.CreateProcess(executable, args,
FileNotFoundError: [WinError 2] Das System kann die angegebene Datei nicht finden

Process finished with exit code 1

Thank you for your help

Implement fallback exchange

Binance for example does not provide full historical data for all pairs.
We should implement a fallback like coinbase, coinmarketcape, coingecko ... for situations where we can not retrieve historical prices from an exchange.

We should add an additional column to our price database which holds the fallback exchange in case one was used.

Add more binance csv operations

binance has some products which are not yet implemented fully:
https://www.binance.com/de/earn#flex-item

For Example binance has a product called bnb vault and launchpool which generate some interesting statement currently not implemented:
https://launchpad.binance.com/
here is one from tests (bnb vault):

2021-03-18 01:02:29,Spot,Super BNB Mining,ALICE,0.00006904,""

should we count that as normal staking?

ill test it some more to generate statement we currently do not know

Other types than Spot are currently not supported. Please create an Issue or PR.

I exported only spot history on binance, however on spot i traded leveraged tokens. Are these unsupported?

X:\CoinTaxman-main\src>python main.py
2021-08-14 21:22:26,286 book INFO Reading file from exchange binance at X:\CoinTaxman-main\account_statements\part-00000-85c9025f-e4d2-44c5-8858-8dc0d18f126e-c000.csv
Traceback (most recent call last):
File "X:\CoinTaxman-main\src\main.py", line 44, in
main()
File "X:\CoinTaxman-main\src\main.py", line 32, in main
status = book.read_files()
File "X:\CoinTaxman-main\src\book.py", line 766, in read_files
self.read_file(file_path)
File "X:\CoinTaxman-main\src\book.py", line 721, in read_file
read_file(file_path)
File "X:\CoinTaxman-main\src\book.py", line 107, in _read_binance
assert account == "Spot", (
AssertionError: Other types than Spot are currently not supported. Please create an Issue or PR.

Detect duplicate transactions (maybe based on transaction ID)

I haven't tried out whether saving account statements covering overlapping time ranges causes problems

However, the transaction ID of other exchanges doesn't appear to be used yet. Do you think it's beneficial to use it for detecting "duplicate" transactions?

Missing money bug

UTC_Time,Account,Operation,Coin,Change,Remark
2021-02-06 01:18:30,Spot,Buy,OCEAN,37.00000000,""
2021-02-06 01:40:03,Spot,Sell,OCEAN,-37.00000000,""
2021-02-23 10:33:31,Spot,Buy,OCEAN,22.66000000,""
2021-02-23 12:49:21,Spot,Sell,OCEAN,-20.17000000,""
2021-02-23 12:49:37,Spot,Sell,OCEAN,-2.49000000,""

this should be exactly 0

but fails with:

test.csv: Line 6: Not enough OCEAN in queue to sell (transaction from 2021-02-23 12:49:37+00:00 on binance)
        Is your account statement missing any transactions?
        This error may also occur after deposits from unknown sources.

Possible fix:
use fixed point numbers (python decimals) instead of floats to ensure better precision:

from decimal import *
print(37.00000000-37.00+22.66-20.17-2.49) #-1.7763568394002505e-15
print(float(Decimal("37.00000000")-Decimal("37.00")+Decimal("22.66")-Decimal("20.17")-Decimal("2.49"))) #0.0

Move user configuration to programming language agnostic file format

Currently, the configuration is done by manipulating src/config.py which is loaded during Python module load. The user has to first navigate into the src directory and additionally manipulate a Python language code file, this is prone to errors.

However, the configuration can be moved to a file in the project root, and could be represented in a broad known file format, like JSON or INI. Subsequently, the configuration file format is easier to exchange for later usage.

Possible first approach would be a JSON which is read in during src/main.py:

{
    "country": "germany",
    "tax_fiat": "EUR",
    "tax_year": 2020,
    "tax_principle": "FIFO",
    "long_term": true,
    "long_term_duration": 365,
    "...paths": "...tbc"
}

Please provide different suggestions for the file format.

[Feature Request] Add GUI (desktop program, web app, ...)

To make this programm accessible to a wider audience it should be considered making it usable for people who do not know how to use python/ a terminal. Maybe a simple gui/ local webpage or something like that. And or even compilation into an executable for windows.

Note that this is not a that important feature Request, but more an idea for people who want to contribute.

[feature request] implent referrer rebates (binance, Spot and Future markets)

After my issue in #58 i wanted to post some more lines from the whole transaction history. Please note i didn't trade futures (maybe someone else can help out with a history here).

Referrer rebates line is not recognized under spot (2021-08-15 11:56:15,108 book WARNING Could not recognize operation Referrer rebates in binance file X:\CoinTaxman-main\account_statements\part-00000-154c5b63-ff2c-4615-9ed2-4d89319596e4-c000.csv:45475.) and future markets (AssertionError: Other types than Spot are currently not supported. Please create an Issue or PR.) .

UTC_Time,Account,Operation,Coin,Change,Remark
2021-05-12 00:00:36,USDT-Futures,Referrer rebates,BNB,0.00000433,""
2021-05-12 00:01:57,Spot,Fee,BNB,-0.00025714,""
2021-05-12 00:01:57,Spot,Buy,RLC,24.00000000,""
2021-05-12 00:01:57,Spot,Transaction Related,BTC,-0.00404808,""
2021-05-12 00:03:07,USDT-Futures,Referrer rebates,BNB,5.1E-7,""
2021-05-12 00:04:05,USDT-Futures,Referrer rebates,BNB,4.3E-7,""
2021-05-12 00:04:21,Spot,Buy,DOTDOWN,89.14000000,""
2021-05-12 00:04:21,Spot,Fee,BNB,-0.00008958,""
2021-05-12 00:04:21,Spot,Transaction Related,USDT,-80.00315000,""
2021-05-12 00:05:07,USDT-Futures,Referrer rebates,BNB,2.1E-7,""
2021-05-12 00:06:06,USDT-Futures,Referrer rebates,BNB,0.00000122,""
2021-05-12 00:07:50,Spot,Fee,BNB,-0.00051858,""
2021-05-12 00:07:50,Spot,Buy,RLC,49.00000000,""
2021-05-12 00:07:50,Spot,Transaction Related,BTC,-0.00809725,""
2021-05-12 00:10:05,USDT-Futures,Referrer rebates,BNB,3.3E-7,""
2021-05-12 00:10:05,USDT-Futures,Referrer rebates,BNB,8.2E-7,""
2021-05-12 00:15:06,USDT-Futures,Referrer rebates,BNB,4.4E-7,""
2021-05-12 00:30:17,Spot,Fee,BNB,-0.00012729,""
2021-05-12 00:30:17,Spot,Buy,DASH,0.27000000,""
2021-05-12 00:30:17,Spot,Transaction Related,BTC,-0.00200259,""
2021-05-12 00:50:11,Spot,Fee,BNB,-0.00012843,""
2021-05-12 00:50:11,Spot,Transaction Related,DASH,-0.27000000,""
2021-05-12 00:50:11,Spot,Buy,BTC,0.00201636,""
2021-05-12 01:00:24,USDT-Futures,Referrer rebates,BNB,2.9E-7,""
2021-05-12 01:11:31,Spot,Fee,BNB,-0.00103110,""
2021-05-12 01:11:31,Spot,Transaction Related,DOT,-23.50000000,""
2021-05-12 01:11:31,Spot,Buy,BTC,0.01615014,""
2021-05-12 01:15:50,Spot,Fee,BNB,-0.00059265,""
2021-05-12 01:15:50,Spot,Transaction Related,DOTUP,-5.15000000,""
2021-05-12 01:15:50,Spot,Buy,USDT,530.69205000,""
2021-05-12 01:16:28,Spot,Fee,BNB,-0.00046095,""
2021-05-12 01:16:28,Spot,Transaction Related,DOTUP,-4.00000000,""
2021-05-12 01:16:28,Spot,Buy,USDT,412.18800000,""
2021-05-12 01:16:28,Spot,Buy,USDT,201.97212000,""
2021-05-12 01:16:28,Spot,Transaction Related,DOTUP,-1.96000000,""
2021-05-12 01:16:28,Spot,Fee,BNB,-0.00022586,""
2021-05-12 01:30:30,USDT-Futures,Referrer rebates,BNB,2.9E-7,""
2021-05-12 01:46:14,USDT-Futures,Referrer rebates,BNB,0.00000123,""
2021-05-12 02:20:08,USDT-Futures,Referrer rebates,BNB,0.00000190,""
2021-05-12 02:22:09,USDT-Futures,Referrer rebates,BNB,6.7E-7,""
2021-05-12 02:22:12,USDT-Futures,Referrer rebates,BNB,2.2E-7,""
2021-05-12 02:23:12,Spot,Transaction Related,USDT,-10.10161100,""
2021-05-12 02:23:12,Spot,Fee,BNB,-0.00001139,""
2021-05-12 02:23:12,Spot,Buy,DOTDOWN,12.01000000,""
2021-05-12 02:23:30,Spot,Buy,DOTDOWN,178.22000000,""
2021-05-12 02:23:30,Spot,Fee,BNB,-0.00016619,""
2021-05-12 02:23:30,Spot,Transaction Related,USDT,-149.90084200,""
2021-05-12 02:24:07,USDT-Futures,Referrer rebates,BNB,6.8E-7,""
2021-05-12 02:24:11,USDT-Futures,Referrer rebates,BNB,1.1E-7,""
2021-05-12 02:24:14,USDT-Futures,Referrer rebates,BNB,8.4E-7,""
2021-05-12 02:24:14,USDT-Futures,Referrer rebates,BNB,3.1E-7,""
2021-05-12 02:24:15,USDT-Futures,Referrer rebates,BNB,7.6E-7,""
2021-05-12 02:25:11,USDT-Futures,Referrer rebates,BNB,4.5E-7,""
2021-05-12 02:25:13,USDT-Futures,Referrer rebates,BNB,1.1E-7,""
2021-05-12 02:28:06,USDT-Futures,Referrer rebates,BNB,2.3E-7,""
2021-05-12 02:28:08,USDT-Futures,Referrer rebates,BNB,2.3E-7,""
2021-05-12 02:29:20,USDT-Futures,Referrer rebates,BNB,8.1E-7,""
2021-05-12 02:29:34,USDT-Futures,Referrer rebates,BNB,4.8E-7,""
2021-05-12 02:32:15,USDT-Futures,Referrer rebates,BNB,9.4E-7,""
2021-05-12 03:02:15,USDT-Futures,Referrer rebates,BNB,1.1E-7,""
2021-05-12 03:02:25,USDT-Futures,Referrer rebates,BNB,1.1E-7,""
2021-05-12 03:11:08,Spot,Buy,BNBDOWN,2.81000000,""
2021-05-12 03:11:08,Spot,Fee,BNB,-0.00002212,""
2021-05-12 03:11:08,Spot,Transaction Related,USDT,-20.00720000,""
2021-05-12 03:11:21,Spot,Buy,BNBDOWN,1.42000000,""
2021-05-12 03:11:21,Spot,Transaction Related,USDT,-10.11040000,""
2021-05-12 03:11:21,Spot,Fee,BNB,-0.00001117,""
2021-05-12 03:12:16,Spot,Fee,BNB,-0.00003174,""
2021-05-12 03:12:16,Spot,Buy,BNBDOWN,4.02000000,""
2021-05-12 03:12:16,Spot,Transaction Related,USDT,-28.62240000,""
2021-05-12 03:12:31,Spot,Fee,BNB,-0.00002361,""
2021-05-12 03:12:31,Spot,Transaction Related,USDT,-21.28880000,""
2021-05-12 03:12:31,Spot,Buy,BNBDOWN,2.99000000,""
2021-05-12 03:39:26,Spot,Transaction Related,USDT,-200.00008460,""
2021-05-12 03:39:26,Spot,Fee,BNB,-0.00022227,""
2021-05-12 03:39:26,Spot,Buy,BTCDOWN,4695.94000000,""
2021-05-12 03:45:14,Spot,Transaction Related,BTC,-0.00200018,""
2021-05-12 03:45:14,Spot,Fee,BNB,-0.00012735,""
2021-05-12 03:45:14,Spot,Buy,XEM,314.00000000,""
2021-05-12 03:45:42,Spot,Buy,OMG,9.80000000,""
2021-05-12 03:45:42,Spot,Fee,BNB,-0.00012743,""
2021-05-12 03:45:42,Spot,Transaction Related,BTC,-0.00200116,""
2021-05-12 03:49:15,USDT-Futures,Referrer rebates,BNB,1.1E-7,""
2021-05-12 03:49:15,USDT-Futures,Referrer rebates,BNB,2.3E-7,""
2021-05-12 03:50:12,USDT-Futures,Referrer rebates,BNB,2.3E-7,""
2021-05-12 03:50:15,USDT-Futures,Referrer rebates,BNB,0.00000253,""
2021-05-12 03:52:14,USDT-Futures,Referrer rebates,BNB,8.5E-7,""
2021-05-12 03:52:14,USDT-Futures,Referrer rebates,BNB,8.5E-7,""
2021-05-12 03:53:29,Spot,Buy,OMG,9.84000000,""
2021-05-12 03:53:29,Spot,Fee,BNB,-0.00012726,""
2021-05-12 03:53:29,Spot,Transaction Related,BTC,-0.00200047,""
2021-05-12 03:54:32,Spot,Buy,OMG,19.89000000,""
2021-05-12 03:54:32,Spot,Transaction Related,BTC,-0.00400186,""
2021-05-12 03:54:32,Spot,Fee,BNB,-0.00025685,""
2021-05-12 03:55:08,USDT-Futures,Referrer rebates,BNB,0.00000384,""
2021-05-12 03:56:39,Spot,Buy,BTC,0.00806016,""
2021-05-12 03:56:39,Spot,Transaction Related,OMG,-39.53000000,""
2021-05-12 03:56:39,Spot,Fee,BNB,-0.00051146,""
2021-05-12 03:56:43,Spot,Transaction Related,BTC,-0.00200025,""
2021-05-12 03:56:43,Spot,Buy,OMG,9.81000000,""
2021-05-12 03:56:43,Spot,Fee,BNB,-0.00012656,""
2021-05-12 04:00:22,USDT-Futures,Referrer rebates,BNB,0.00000145,""
2021-05-12 04:00:53,USDT-Futures,Referrer rebates,BNB,0.00000423,""
2021-05-12 04:05:08,USDT-Futures,Referrer rebates,BNB,4.4E-7,""
2021-05-12 04:05:08,USDT-Futures,Referrer rebates,BNB,0.00000110,""
2021-05-12 04:07:15,Spot,Fee,BNB,-0.00012812,""
2021-05-12 04:07:15,Spot,Buy,BTC,0.00201399,""
2021-05-12 04:07:15,Spot,Transaction Related,OMG,-9.81000000,""
2021-05-12 04:07:21,Spot,Buy,XTZ,16.64000000,""
2021-05-12 04:07:21,Spot,Transaction Related,BTC,-0.00200012,""
2021-05-12 04:07:21,Spot,Fee,BNB,-0.00012738,""
2021-05-12 04:13:03,Spot,Buy,XTZ,13.19000000,""
2021-05-12 04:13:03,Spot,Transaction Related,BTC,-0.00157752,""
2021-05-12 04:13:03,Spot,Transaction Related,BTC,-0.00042338,""
2021-05-12 04:13:03,Spot,Buy,XTZ,3.54000000,""
2021-05-12 04:13:03,Spot,Fee,BNB,-0.00002702,""
2021-05-12 04:13:03,Spot,Fee,BNB,-0.00010070,""
2021-05-12 04:18:05,Spot,Buy,XEM,316.00000000,""
2021-05-12 04:18:05,Spot,Transaction Related,BTC,-0.00200344,""
2021-05-12 04:18:05,Spot,Fee,BNB,-0.00012839,""
2021-05-12 04:43:11,USDT-Futures,Referrer rebates,BNB,6.2E-7,""
2021-05-12 04:50:46,Spot,Buy,BTC,0.00403109,""
2021-05-12 04:50:46,Spot,Fee,BNB,-0.00025618,""
2021-05-12 04:50:46,Spot,Transaction Related,XTZ,-33.37000000,""
2021-05-12 04:50:50,Spot,Transaction Related,BTC,-0.00202730,""
2021-05-12 04:50:50,Spot,Buy,IOTA,55.00000000,""
2021-05-12 04:50:50,Spot,Fee,BNB,-0.00012866,""
2021-05-12 04:52:53,Spot,Buy,IOTA,55.00000000,""
2021-05-12 04:52:53,Spot,Fee,BNB,-0.00012882,""
2021-05-12 04:52:53,Spot,Transaction Related,BTC,-0.00201850,""
2021-05-12 04:55:16,Spot,Transaction Related,USDT,-74.85910000,""
2021-05-12 04:55:16,Spot,Buy,EOSUP,6.70000000,""
2021-05-12 04:55:16,Spot,Fee,BNB,-0.00008268,""
2021-05-12 05:00:00,Spot,Transaction Related,EOSUP,-2.26000000,""
2021-05-12 05:00:00,Spot,Buy,USDT,25.67586000,""
2021-05-12 05:00:00,Spot,Fee,BNB,-0.00002842,""
2021-05-12 05:00:01,Spot,Fee,BNB,-0.00005585,""
2021-05-12 05:00:01,Spot,Buy,USDT,50.44284000,""
2021-05-12 05:00:01,Spot,Transaction Related,EOSUP,-4.44000000,""
2021-05-12 05:17:12,Spot,Buy,BTC,0.00407330,""
2021-05-12 05:17:12,Spot,Transaction Related,IOTA,-110.00000000,""
2021-05-12 05:17:12,Spot,Fee,BNB,-0.00025894,""
2021-05-12 05:40:16,Spot,Buy,WAN,52.00000000,""
2021-05-12 05:40:16,Spot,Fee,BNB,-0.00012804,""
2021-05-12 05:40:16,Spot,Transaction Related,BTC,-0.00202280,""
2021-05-12 05:59:08,Spot,Buy,WAN,9.00000000,""
2021-05-12 05:59:08,Spot,Fee,BNB,-0.00002214,""
2021-05-12 05:59:08,Spot,Transaction Related,BTC,-0.00034857,""
2021-05-12 06:04:09,USDT-Futures,Referrer rebates,BNB,2.3E-7,""
2021-05-12 06:04:11,USDT-Futures,Referrer rebates,BNB,4.6E-7,""
2021-05-12 06:09:14,USDT-Futures,Referrer rebates,BNB,8.2E-7,""
2021-05-12 06:15:52,Spot,Fee,BNB,-0.00010612,""
2021-05-12 06:15:52,Spot,Buy,WAN,43.00000000,""
2021-05-12 06:15:52,Spot,Transaction Related,BTC,-0.00166539,""
2021-05-12 06:17:12,USDT-Futures,Referrer rebates,BNB,4.1E-7,""
2021-05-12 06:23:13,USDT-Futures,Referrer rebates,BNB,0.00000125,""
2021-05-12 06:25:10,USDT-Futures,Referrer rebates,BNB,4.1E-7,""
2021-05-12 06:25:12,USDT-Futures,Referrer rebates,BNB,4.1E-7,""
2021-05-12 06:25:17,Spot,Fee,BNB,-0.00008367,""
2021-05-12 06:25:17,Spot,Transaction Related,USDT,-75.00060000,""
2021-05-12 06:25:17,Spot,Buy,XTZUP,77.40000000,""
2021-05-12 06:25:41,Spot,Buy,LTCUP,0.92000000,""
2021-05-12 06:25:41,Spot,Buy,LTCUP,0.43000000,""
2021-05-12 06:25:41,Spot,Fee,BNB,-0.00002644,""
2021-05-12 06:25:41,Spot,Transaction Related,USDT,-23.90198000,""
2021-05-12 06:25:41,Spot,Fee,BNB,-0.00005658,""
2021-05-12 06:25:41,Spot,Transaction Related,USDT,-51.13728000,""
2021-05-12 06:26:13,Spot,Buy,LINKUP,1.58000000,""
2021-05-12 06:26:13,Spot,Transaction Related,USDT,-41.19744000,""
2021-05-12 06:26:13,Spot,Fee,BNB,-0.00004586,""
2021-05-12 06:26:13,Spot,Transaction Related,USDT,-33.90364000,""
2021-05-12 06:26:13,Spot,Fee,BNB,-0.00003774,""
2021-05-12 06:26:13,Spot,Buy,LINKUP,1.92000000,""
2021-05-12 06:32:15,Spot,Fee,BNB,-0.00008468,""
2021-05-12 06:32:15,Spot,Transaction Related,XTZUP,-77.40000000,""
2021-05-12 06:32:15,Spot,Buy,USDT,76.31640000,""
2021-05-12 06:35:19,Spot,Fee,BNB,-0.00015837,""
2021-05-12 06:35:19,Spot,Buy,USDT,142.63680000,""
2021-05-12 06:35:19,Spot,Transaction Related,BNBDOWN,-19.38000000,""
2021-05-12 06:45:49,Spot,Fee,BNB,-0.00016780,""
2021-05-12 06:45:49,Spot,Transaction Related,USDT,-150.12734000,""
2021-05-12 06:45:49,Spot,Buy,LTCUP,2.74000000,""
2021-05-12 06:52:09,Spot,Transaction Related,BTC,-0.00402570,""
2021-05-12 06:52:09,Spot,Buy,WAN,105.00000000,""
2021-05-12 06:52:09,Spot,Fee,BNB,-0.00025979,""
2021-05-12 06:58:08,USDT-Futures,Referrer rebates,BNB,4.1E-7,""
2021-05-12 06:59:08,USDT-Futures,Referrer rebates,BNB,4.1E-7,""
2021-05-12 07:00:22,USDT-Futures,Referrer rebates,BNB,4.1E-7,""
2021-05-12 07:20:08,USDT-Futures,Referrer rebates,BNB,4.1E-7,""
2021-05-12 07:37:48,Spot,Fee,BNB,-0.00001530,""
2021-05-12 07:37:48,Spot,Buy,BTC,0.00024320,""
2021-05-12 07:37:48,Spot,Transaction Related,XEM,-38.00000000,""
2021-05-12 07:38:41,Spot,Transaction Related,XEM,-592.00000000,""
2021-05-12 07:38:41,Spot,Fee,BNB,-0.00024178,""
2021-05-12 07:38:41,Spot,Buy,BTC,0.00378880,""
2021-05-12 07:38:45,Spot,Fee,BNB,-0.00001279,""
2021-05-12 07:38:45,Spot,Transaction Related,BTC,-0.00017937,""
2021-05-12 07:38:45,Spot,Buy,DASH,0.02800000,""
2021-05-12 07:38:45,Spot,Fee,BNB,-0.00001142,""
2021-05-12 07:38:45,Spot,Transaction Related,BTC,-0.00020090,""
2021-05-12 07:38:45,Spot,Buy,DASH,0.02500000,""
2021-05-12 07:38:47,Spot,Transaction Related,BTC,-0.00056682,""
2021-05-12 07:38:47,Spot,Fee,BNB,-0.00003610,""
2021-05-12 07:38:47,Spot,Buy,DASH,0.07900000,""
2021-05-12 07:38:48,Spot,Buy,DASH,0.02500000,""
2021-05-12 07:38:48,Spot,Fee,BNB,-0.00001142,""
2021-05-12 07:38:48,Spot,Transaction Related,BTC,-0.00017937,""
2021-05-12 07:38:49,Spot,Buy,DASH,0.02600000,""
2021-05-12 07:38:49,Spot,Fee,BNB,-0.00001188,""
2021-05-12 07:38:49,Spot,Transaction Related,BTC,-0.00018655,""
2021-05-12 07:39:38,Spot,Transaction Related,BTC,-0.00020140,""
2021-05-12 07:39:38,Spot,Transaction Related,BTC,-0.00048912,""
2021-05-12 07:39:38,Spot,Fee,BNB,-0.00003115,""
2021-05-12 07:39:38,Spot,Fee,BNB,-0.00001282,""
2021-05-12 07:39:38,Spot,Buy,DASH,0.06800000,""
2021-05-12 07:39:38,Spot,Buy,DASH,0.02800000,""
2021-05-12 07:43:58,Spot,Fee,BNB,-0.00012873,""
2021-05-12 07:43:58,Spot,Transaction Related,DASH,-0.27900000,""
2021-05-12 07:43:58,Spot,Buy,BTC,0.00201717,""
2021-05-12 07:55:15,Spot,Buy,NEO,1.02000000,""
2021-05-12 07:55:15,Spot,Transaction Related,BTC,-0.00200634,""
2021-05-12 07:55:15,Spot,Fee,BNB,-0.00012816,""
2021-05-12 07:56:18,Spot,Fee,BNB,-0.00025567,""
2021-05-12 07:56:18,Spot,Buy,USDT,228.94593000,""
2021-05-12 07:56:18,Spot,Transaction Related,LTCUP,-4.09000000,""
2021-05-12 07:56:44,Spot,Fee,BNB,-0.00012926,""
2021-05-12 07:56:44,Spot,Buy,NEO,1.03000000,""
2021-05-12 07:56:44,Spot,Transaction Related,BTC,-0.00201674,""
2021-05-12 08:00:11,Spot,Buy,XTZDOWN,338.52000000,""
2021-05-12 08:00:11,Spot,Transaction Related,USDT,-1.86863040,""
2021-05-12 08:00:11,Spot,Fee,BNB,-0.00002058,""
2021-05-12 08:00:11,Spot,Buy,XTZDOWN,3284.67000000,""
2021-05-12 08:00:11,Spot,Transaction Related,USDT,-18.13137840,""
2021-05-12 08:00:11,Spot,Fee,BNB,-0.00000212,""
2021-05-12 08:00:25,Spot,Fee,BNB,-0.00004516,""
2021-05-12 08:00:25,Spot,Transaction Related,USDT,-40.00004800,""

[...]

2021-06-24 03:36:09,Spot,Fee,BNB,-0.00013027,""
2021-06-24 03:36:09,Spot,Buy,USDT,-49.98490800,""
2021-06-24 03:36:09,Spot,Buy,BTCDOWN,764.88000000,""
2021-06-24 03:42:24,Spot,Fee,BNB,-0.00013300,""
2021-06-24 03:42:24,Spot,Sell,USDT,50.82627600,""
2021-06-24 03:42:24,Spot,Sell,BTCDOWN,-764.88000000,""
2021-06-24 04:09:09,Spot,Buy,BTCDOWN,758.27000000,""
2021-06-24 04:09:09,Spot,Buy,USDT,-49.96241030,""
2021-06-24 04:09:09,Spot,Fee,BNB,-0.00013052,""
2021-06-24 04:21:07,Spot,Sell,USDT,50.80409000,""
2021-06-24 04:21:07,Spot,Sell,BTCDOWN,-758.27000000,""
2021-06-24 04:21:07,Spot,Fee,BNB,-0.00013408,""
2021-06-24 05:01:07,USDT-Futures,Referrer rebates,BNB,3.3E-7,""
2021-06-24 05:39:08,Spot,Fee,BNB,-0.00013040,""
2021-06-24 05:39:08,Spot,Buy,BTCDOWN,761.74000000,""
2021-06-24 05:39:08,Spot,Buy,USDT,-50.00061360,""
2021-06-24 05:50:33,Spot,Buy,USDT,-98.81178100,""
2021-06-24 05:50:33,Spot,Fee,BNB,-0.00000312,""
2021-06-24 05:50:33,Spot,Buy,BTCDOWN,18.37000000,""
2021-06-24 05:50:33,Spot,Buy,BTCDOWN,1527.23000000,""
2021-06-24 05:50:33,Spot,Buy,USDT,-1.18853900,""
2021-06-24 05:50:33,Spot,Fee,BNB,-0.00026043,""
2021-06-24 06:47:07,USDT-Futures,Referrer rebates,BNB,2.5E-7,""
2021-06-24 06:47:07,USDT-Futures,Referrer rebates,BNB,0.00000738,""
2021-06-24 06:50:09,USDT-Futures,Referrer rebates,BNB,1.9E-7,""
2021-06-24 06:50:09,USDT-Futures,Referrer rebates,BNB,9E-8,""
2021-06-24 06:50:21,USDT-Futures,Referrer rebates,BNB,0.00000144,""
2021-06-24 06:56:20,USDT-Futures,Referrer rebates,BNB,1.3E-7,""
2021-06-24 07:15:41,USDT-Futures,Referrer rebates,BNB,0.00000126,""
2021-06-24 07:25:10,USDT-Futures,Referrer rebates,BNB,0.00000144,""
2021-06-24 07:25:10,USDT-Futures,Referrer rebates,BNB,3.6E-7,""
2021-06-24 07:30:13,USDT-Futures,Referrer rebates,BNB,1.0E-7,""
2021-06-24 07:31:18,USDT-Futures,Referrer rebates,BNB,1.8E-7,""
2021-06-24 07:31:18,USDT-Futures,Referrer rebates,BNB,7.2E-7,""
2021-06-24 08:19:19,USDT-Futures,Referrer rebates,BNB,1.5E-7,""
2021-06-24 08:19:39,USDT-Futures,Referrer rebates,BNB,1.0E-7,""
2021-06-24 08:22:07,USDT-Futures,Referrer rebates,BNB,0.00000144,""
2021-06-24 08:54:53,Spot,Buy,USDT,-200.00017710,""
2021-06-24 08:54:53,Spot,Fee,BNB,-0.00049557,""
2021-06-24 08:54:53,Spot,Buy,BTCDOWN,3188.27000000,""
2021-06-24 09:12:08,USDT-Futures,Referrer rebates,BNB,8E-8,""
2021-06-24 09:41:18,USDT-Futures,Referrer rebates,BNB,7.2E-7,""
2021-06-24 09:44:41,Spot,Commission History,BNB,0.00002391,""
2021-06-24 09:45:27,Spot,Commission History,BNB,0.00002250,""
2021-06-24 09:45:55,Spot,Commission History,BNB,0.00000311,""
2021-06-24 09:45:55,Spot,Commission History,BNB,0.00001770,""
2021-06-24 09:46:25,Spot,Commission History,BNB,0.00002100,""
2021-06-24 11:09:52,USDT-Futures,Referrer rebates,BNB,3E-8,""
2021-06-24 11:11:20,USDT-Futures,Referrer rebates,BNB,0.00000343,""
2021-06-24 12:04:16,USDT-Futures,Referrer rebates,BNB,3.6E-7,""
2021-06-24 12:04:25,Spot,Fee,BNB,-0.00098766,""
2021-06-24 12:04:25,Spot,Buy,BTCDOWN,6803.88000000,""
2021-06-24 12:04:25,Spot,Buy,USDT,-400.00010520,""
2021-06-24 12:31:30,USDT-Futures,Referrer rebates,BNB,1.2E-7,""
2021-06-24 12:48:08,USDT-Futures,Referrer rebates,BNB,1.2E-7,""
2021-06-24 12:48:19,USDT-Futures,Referrer rebates,BNB,9E-8,""
2021-06-24 13:20:20,USDT-Futures,Referrer rebates,BNB,3.2E-7,""
2021-06-24 13:22:55,USDT-Futures,Referrer rebates,BNB,3.2E-7,""
2021-06-24 15:13:09,USDT-Futures,Referrer rebates,BNB,5E-8,""
2021-06-24 15:13:15,USDT-Futures,Referrer rebates,BNB,3.6E-7,""
2021-06-24 15:24:54,Spot,Fee,BNB,-0.00196800,""
2021-06-24 15:24:54,Spot,Buy,BTCDOWN,13956.73000000,""
2021-06-24 15:24:54,Spot,Buy,USDT,-799.99976360,""
2021-06-24 15:53:30,Spot,Sell,BTCDOWN,-401.85000000,""
2021-06-24 15:53:30,Spot,Fee,BNB,-0.00375564,""
2021-06-24 15:53:30,Spot,Sell,USDT,23.88596400,""
2021-06-24 15:53:30,Spot,Sell,BTCDOWN,-25854.37000000,""
2021-06-24 15:53:30,Spot,Sell,USDT,1536.78375280,""
2021-06-24 15:53:30,Spot,Fee,BNB,-0.00005837,""
2021-06-24 16:39:09,Spot,Buy,BTCDOWN,859.85000000,""
2021-06-24 16:39:09,Spot,Fee,BNB,-0.00012138,""
2021-06-24 16:39:09,Spot,Buy,USDT,-50.00027750,""
2021-06-24 16:52:49,Spot,Buy,BTCDOWN,1744.60000000,""
2021-06-24 16:52:49,Spot,Fee,BNB,-0.00024266,""
2021-06-24 16:52:49,Spot,Buy,USDT,-100.00047200,""
2021-06-24 16:58:07,USDT-Futures,Referrer rebates,BNB,7.2E-7,""
2021-06-24 17:05:30,Spot,Buy,BTCDOWN,3599.07000000,""
2021-06-24 17:05:30,Spot,Fee,BNB,-0.00048476,""
2021-06-24 17:05:30,Spot,Buy,USDT,-200.00031990,""
2021-06-24 18:02:28,USDT-Futures,Referrer rebates,BNB,0.00000310,""
2021-06-24 19:58:11,USDT-Futures,Referrer rebates,BNB,3E-8,""
2021-06-24 20:57:09,USDT-Futures,Referrer rebates,BNB,3.1E-7,""
2021-06-24 22:18:21,USDT-Futures,Referrer rebates,BNB,3.1E-7,""
2021-06-24 22:59:09,USDT-Futures,Referrer rebates,BNB,3E-8,""
2021-06-24 23:23:38,USDT-Futures,Referrer rebates,BNB,0.00000284,""
2021-06-24 23:25:09,USDT-Futures,Referrer rebates,BNB,0.00000260,""
2021-06-24 23:26:15,USDT-Futures,Referrer rebates,BNB,3E-8,""
2021-06-25 00:02:07,USDT-Futures,Referrer rebates,BNB,4E-8,""
2021-06-25 00:06:12,USDT-Futures,Referrer rebates,BNB,5E-8,""
2021-06-25 00:10:31,USDT-Futures,Referrer rebates,BNB,0.00000230,""
2021-06-25 00:13:14,USDT-Futures,Referrer rebates,BNB,4E-8,""
2021-06-25 00:26:07,USDT-Futures,Referrer rebates,BNB,1.8E-7,""
2021-06-25 00:56:07,USDT-Futures,Referrer rebates,BNB,3.2E-7,""
2021-06-25 00:57:36,USDT-Futures,Referrer rebates,BNB,3.2E-7,""
2021-06-25 01:01:37,Spot,Fee,BNB,-0.00086598,""
2021-06-25 01:01:37,Spot,Sell,USDT,355.89594240,""
2021-06-25 01:01:37,Spot,Sell,BTCDOWN,-6203.52000000,""
2021-06-25 01:05:04,USDT-Futures,Referrer rebates,BNB,0.00000108,""
2021-06-25 01:58:14,USDT-Futures,Referrer rebates,BNB,1E-8,""
2021-06-25 02:00:10,Spot,Fee,BNB,-0.00012291,""
2021-06-25 02:00:10,Spot,Buy,USDT,-50.00035320,""
2021-06-25 02:00:10,Spot,Buy,BTCDOWN,904.82000000,""

Change method for getting price for Bitpanda Pro

As discussed in #42 :

Use the closest trade, rather than the "candlesticks" approach.

If there is a function call (_get_price_bitpanda_pro) to get the price at 2021-04-12T12:00:00Z:

  • If there's a trade (price) at 2021-04-12T11:59:30Z, and another one at 2021-04-12T12:00:15Z, use the price of the latter one
  • If there's a trade (price) at 2021-04-12T11:59:45Z, and another one at 2021-04-12T12:00:30Z, use the price of the former one

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.