Hi new overcomer,
Yeah, I think the algos need to be looked at alright. Maybe they just need a bit of tweaking rather than a total overhaul. I've been dancing around the edges of this part of the code.
Any suggestions for improvement?
Feel free to use the issues page on github to report any bugs or issues:
https://github.com/aido/IsisATP/issues. I suppose it's a better way to track these sort of things. I see there are currently 0 issues, so the code must be perfect

At first I didn't understand how the original Isis arbitrage algoithm could work. It seemed the decision to trade is based solely on largest and smallest exchange rate between different currencies and BTC. On closer inspection I now
think it works OK. I temporarily changed the arbitrage decision to use more complicated edge weighted directed graph and Bellman-Ford shortest path algorithms (don't be fooled by my use of these terms, I am neither coder nor mathematician; rather, Google is my friend). The end result seemed to be the same as the original algo so I quickly dropped that approach.
You also mention a deadlock. Are you sure it's a deadlock causing the problem? I recently changed the Ticker Manager code to use streaming instead of polling. I think the socketIO connections could be dropping. I currently don't have any check to test and reconnect a dropped socket. I hope to add this functionality as soon as it is added to XChange:
https://github.com/timmolter/XChange/issues/6Maybe if someone 'nudged' the developer of XChange it may encourage a speedy implementation of this functionality in his code.
When I get a chance I'll test for deadlocks also, just in case. I had already written a handy script to make it a lot easier to test for deadlocks in the original Isis code.