Inspiration

The technical lead recalled a few cryptocurrency automatic trading bots that would repeatedly lose profits despite showing strong almost impossible gains in the simulations. Many surmised that this was due to the lack of options and narrow-sightedness of these bots, and using Zabo, this cryptocurrency trading bot can both speed up trades and have more options utilizing mongoDB's sharding as well as Zabo's wallet collection functionality. This is a prototypical attempt to create a 'functional' cryptocurrency trading bot, which can be very profitable if successful.

What it does

It is a prototype of a web application that uses a few Forex analysis methods to automatically trade stocks while using Zabo to link to any number of cryptocurrency trading wallets that belong to the user, and use those wallets in order to trade very quickly, accurately, and efficiently. This method makes it very user friendly to simply input their wallet keys and set trade parameters, and run the bot server (sharded-node) side.

How we built it

Splitting into two members, and a technical design lead, we began by all sitting down to learn node.js, and applying our knowledge of other languages in order to create both the bot and zabo interface. After we ran into the problem of having child processes, we all rushed to complete the (very crude) prototypical UX/UI design.

Challenges we ran into

Using JavaScript as a completely new language was definitely the hardest thing about this Hackathon. We decided to accept it, as the Zabo framework was in JavaScript, but our previous experience using Java did not prepare us for this challenge enough, and we took way too much time working out bugs. In the end we were unable to automate it in time, as we did not have the time to write so many node.js child_process functions that would interact with the .exe functions that were the buy/sell/trade functions.

Accomplishments that we're proud of

Implementing our own Forex AI based algorithms, including Bollinger bands, and overlapping Fibbonacci Forex. Here is a node.js snippet that displays most of the things that we have implemented in our trading bot. ''' console.log() console.log(s.exchange.name.toUpperCase() + ' exchange active trading options:'.grey) console.log() process.stdout.write(z(22, 'STRATEGY'.grey, ' ') + '\t' + so.strategy + '\t' + (require(../extensions/strategies/${so.strategy}/strategy).description).grey) console.log('\n') process.stdout.write([ z(24, (so.mode === 'paper' ? so.mode.toUpperCase() : so.mode.toUpperCase()) + ' MODE'.grey, ' '), z(26, 'PERIOD'.grey, ' '), z(30, 'ORDER TYPE'.grey, ' '), z(28, 'SLIPPAGE'.grey, ' '), z(33, 'EXCHANGE FEES'.grey, ' ') ].join('') + '\n') process.stdout.write([ z(20, (so.order_type === 'maker' ? so.order_type + ' ' + s.exchange.makerFee : so.order_type + ' ' + s.exchange.takerFee), ' ') ].join('') + '\n') process.stdout.write('') process.stdout.write([ z(19, 'BUY %'.grey, ' '), z(20, 'SELL %'.grey, ' '), z(35, 'TRAILING STOP %'.grey, ' '), z(33, 'TRAILING DISTANCE %'.grey, ' ') ].join('') + '\n') process.stdout.write([ z(9, so.buy_pct + '%', ' '), z(9, so.sell_pct + '%', ' '), z(20, so.profit_stop_enable_pct + '%', ' '), z(20, so.profit_stop_pct + '%', ' ') ].join('') + '\n') process.stdout.write('') } '''

What we learned

-JavaScript: None of us knew JavaScript nor any of the frameworks like node.js and express.js before. We learned how to implement it, and the forms of integration that it provides. -MongoDB: the integration of sharding aspects into website interactions with node.js provided a unique experience for us to learn how websites interact with JavaScript and exactly what sharding was and how it worked on a macro and micro scale- milliseconds of speed count for hundreds of dollars in the cryptocurrency market. -CSS/HTML: Our frontend development team worked with CSS/HTML before, but creating a frontend webapp within

What's next for Zab0t

  • Automatic trade support for all Zabo wallets (Zabo currently only allows for automatic trade from some of their wallets, but using our own node.js code, developers can trade automatically by themselves)
  • Hybrid market decisions (Using hybrids of Forex analysis methods can sometimes be better and implementing cautious bubble on top of Bollinger bands can help the bot know not only when the value will explode, but specifically when it will explode upwards more often than not)
  • Create control over trade functions (Currently the user is only able to control thresholds and strategies, but later they may be able to control times of day to trade to further increase profit)
  • Greater integration of Zabo API allowing for faster and more profitable transactions (faster is better in the crypto trading world, and a lot of security between Zabo's API and the server gets in the way sometimes)
  • More effective representation of data
Share this project:

Updates