- evaluate the performance, is it fast enough for real-time trading?
- implement unit tests
- client
- ...
- fetch
- unified network names
exchange.options['networks']{'UNIFIED_KEY': 'ID'}- e.g.
kucoin.options['networks']{'LIGHTNING': 'btcln'}
- implement random currency selection option
- figure out the criteria for optimal currency selection
- maximize arbitrage return
- it likely requires arbitrage to have >0.1% deviation of prices to fully cover taker fees
- estimate the necessary price deviation for a feasible arbitrage opportunity
- or consider how to reduce the fees? use maker fees? find exchanges with exclusive cheaper fees?
- it likely requires arbitrage to have >0.1% deviation of prices to fully cover taker fees
- unified network names
- arbitrage
- refactor FindArbitrage() to handle arbitrage cycles which do not have any of the source assets inside of them
- if none of the source assets are in the arbitrage cycle, it must determine the cheapest path from the source assets (multi-source node) to the cheapest arbitrage cycle starting node, and back to the source assets (multi-source node). Then it evaluates whether it is still profitable, if yes then it returns the overall path, otherwise no arbitrage is found.
- refactor FindArbitrage() to handle arbitrage cycles which do not have any of the source assets inside of them
- watch
- improve reliability of the watcher implementation
- make it reliable enough to cover watching the entire network simultaneously
- improve reliability of the watcher implementation
- trade
- implement safe fallback if transaction fails for whatever reason
- ...