A cryptocurrency arbitrage framework implemented with ccxt and cplex. It can be used to monitor multiple exchanges, find a multi-lateral arbitrage path which maximizes rate of return, calculate the optimal trading amount for each pair in the path given flexible constraints, and execute trades with multi-threading implemenation.
crypto-arbitrage-framework-hzjken$ python3.9 main.py
/home/sparky/Lataukset/Binance-Crypto/Crypto-Arbitrage/crypto-arbitrage-framework-hzjken/path_optimizer.py:241: FutureWarning: Using a non-tuple sequence for multidimensional indexing is deprecated; use arr[tuple(seq)] instead of arr[seq]. In the future this will be interpreted as an array index, arr[np.array(seq)], which will result either in an error or a different result.
self.commission_matrix[np.meshgrid(indexes, indexes, indexing='ij', sparse=True)] = self.trading_fee[exc_name]
Traceback (most recent call last):
File "/home/sparky/Lataukset/Binance-Crypto/Crypto-Arbitrage/crypto-arbitrage-framework-hzjken/main.py", line 47, in
path_optimizer.find_arbitrage()
File "/home/sparky/Lataukset/Binance-Crypto/Crypto-Arbitrage/crypto-arbitrage-framework-hzjken/path_optimizer.py", line 101, in find_arbitrage
self.update_commission_fee()
File "/home/sparky/Lataukset/Binance-Crypto/Crypto-Arbitrage/crypto-arbitrage-framework-hzjken/path_optimizer.py", line 241, in update_commission_fee
self.commission_matrix[np.meshgrid(indexes, indexes, indexing='ij', sparse=True)] = self.trading_fee[exc_name]
IndexError: arrays used as indices must be of integer (or boolean) type
crypto-arbitrage-framework-hzjken$ python3.9 main.py /home/sparky/Lataukset/Binance-Crypto/Crypto-Arbitrage/crypto-arbitrage-framework-hzjken/path_optimizer.py:241: FutureWarning: Using a non-tuple sequence for multidimensional indexing is deprecated; use
path_optimizer.find_arbitrage()
File "/home/sparky/Lataukset/Binance-Crypto/Crypto-Arbitrage/crypto-arbitrage-framework-hzjken/path_optimizer.py", line 101, in find_arbitrage
self.update_commission_fee()
File "/home/sparky/Lataukset/Binance-Crypto/Crypto-Arbitrage/crypto-arbitrage-framework-hzjken/path_optimizer.py", line 241, in update_commission_fee
self.commission_matrix[np.meshgrid(indexes, indexes, indexing='ij', sparse=True)] = self.trading_fee[exc_name]
IndexError: arrays used as indices must be of integer (or boolean) type
arr[tuple(seq)]
instead ofarr[seq]
. In the future this will be interpreted as an array index,arr[np.array(seq)]
, which will result either in an error or a different result. self.commission_matrix[np.meshgrid(indexes, indexes, indexing='ij', sparse=True)] = self.trading_fee[exc_name] Traceback (most recent call last): File "/home/sparky/Lataukset/Binance-Crypto/Crypto-Arbitrage/crypto-arbitrage-framework-hzjken/main.py", line 47, in