Welcome to Cryptum!

What

Cryptum is an automated, momentum-trading crypto robot written in Ruby.

Why

The goal of cryptum is three-fold:

  • Identify bugs that qualify for bounty on H1
  • Take the emotion out of trading crypto currency.
  • Grow asset portfolios.

How

Leveraging multiple algorithms based upon portfolio balances, market trends / % margins of change, and a duration of time, cryptum determines order size amounts to trickle-buy crytpo. Once a given buy order is filled, a limit sell order is submitted immediately at a specific, fixed profit margin which can be defined by the user. By default, profit margins are determined by built-in algorithms which auto-calculate realistic values based upon conditions observed in the market.

Installation

Tested on Linux, & OSX leveraging Ruby via RVM.

$ rvm gemset create cryptum
$ rvm list gemsets
$ rvm use ruby-<VERSION>@cryptum
$ gem install --verbose cryptum
$ cryptum --help
  • Create a Local Cryptum Session Folder

    $ mkdir -p ~/cryptum/order_books
    
  • Copy the cryptum Gem's etc Folder to the Local Session Folder

    $ cp -a $(ruby -r cryptum -e 'puts "#{Gem.path.first}/gems/cryptum-#{Cryptum::VERSION}/etc"') ~/cryptum
    
  • Copy coinbase_pro.yaml.EXAMPLE to the Local Session Folder

    $ cp ~/cryptum/etc/coinbase_pro.yaml.EXAMPLE \
     ~/cryptum/etc/coinbase_pro.yaml
    
  • Add Your API Details to ~/cryptum/etc/coinbase_pro.yaml:

    $ vi ~/cryptum/etc/coinbase_pro.yaml
    

To Take Advantage of More Advanced AI Features

  • Copy open_ai.yaml.EXAMPLE to the Local Session Folder

    $ cp ~/cryptum/etc/open_ai.yaml.EXAMPLE \
     ~/cryptum/etc/open_ai.yaml
    
  • Add Your Bearer Token to ~/cryptum/etc/open_ai.yaml:

    $ vi ~/cryptum/etc/open_ai.yaml
    

Usage

$ rvm use ruby-<VERSION>@cryptum
$ cryptum --help

USAGE: cryptum [opts]
    -s, --symbol=SYMBOL              <Required - Crypto Symbol.(e.g. btc-usd, eth-usd, etc.)
    -l, --[no-]list-products         <Optional - List Supported Crypto Currency Products and Exit>
    -p, --proxy=PROXY                <Optional - HTTP Proxy e.g. "http://127.0.0.1:8080">
    -R, --[no-]reset-timers          <Optional - Reset Market Trend & Order Countdown at Session Init (Defaults to false)>
    -r, --session-root=PATH          <Optional - Directory with etc && order_books (Defaults to ~/cryptum)>
    -S, --[no-]sandbox               <Optional - Use Coinbase Sandbox Environment for Testing Ideas>
    -t, --trend-reset-time=TIME      <Optional - Time Between Market Trend Reset (Default 1D)>

Example usage to trade on weekly instead of default daily:

$ cryptum --symbol btc-usd \
          --session-root ~/cryptum \
          --trend-reset-time 1W

By default, cryptum resets the market trend (i.e. number of buys vs number of sells) every day (i.e. 1D). As Maker & Taker fees drop in value, it may be useful to change the market trend reset value to something lower (e.g. 4 hours):

$ cryptum --symbol btc-usd \
          --session-root ~/cryptum \
          --trend-reset-time 4h

Possible values for --trend-reset-time reside in the UI Label column: |Description|UI Label | |-----------|----------| |1 week |1W | |1 day |1D | |4 hours |4h | |3 hours |3h | |2 hours |2h | |1 hour |1h | |5 minutes |45m | |30 minutes |30m | |15 minutes |15m | |5 minutes |5m | |3 minutes |3m | |1 minute |1m |

If you choose a lower value than the default, the target profit margin's (i.e. TPM) will also be reduced (assuming the TPM is still higher than Maker + Taker fees). This may be desireable - although TPM is reduced, trading volume should increase resulting in better Maker & Taker fee tiers (i.e. lower cost / trade).

Another option (particularly useful with smaller balances) is bumping the market trend reset to 604800 (i.e. 1 week) which will immediately increase the TPM %'s. The downside to this approach is trading volume is reduced, resulting in higher maker & taker fee tiers (i.e. higher cost / trade).

From a monitoring perspective, logs can be monitored via:

$ tail -f /tmp/cryptum.log

Contributing

For details around contributing to this project, please refer to the Cryptum Development Guide.

Bug reports and pull requests are welcome on GitHub at https://github.com/0dayinc/cryptum. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the code of conduct.

Code of Conduct

Everyone interacting in the Cryptum project's codebases, issue trackers, chat rooms and mailing lists is expected to follow the code of conduct.

DISCLAIMER

Cryptum is for educational purposes only. No information, forward looking statements, or estimations presented herein represent any final determination on investment performance. While the capabilities implemented in this project have been researched and thought to be reasonably accurate, any investment is speculative in nature.

0day Inc. and/or its agents cannot and do not guarantee any rate of return or investment timeline based on the capabilities provided herein. Feel free to use cryptum at your own risk.