How To Run Your Own Bitcoin Arbitrage Bot

taught by heynk in Economics

Crowdfunded by:

Practical Automated Arbitrage With Bitcoin

You need to create an account to enroll in this course. It only takes a second!

Sign Up


362 Students Enrolled

Course Description

Bitcoin may have pros and cons, but it is certainly a good medium for arbitrage. It's markets are more volatile than average, and it's digital nature make money transfer simple.

This course will teach you how to run your own bitcoin arbitrage bot.

Unfamiliar with arbitrage? Read this primer first.

I'm the creator of the rbtc_arbitrage project, a popular Ruby gem for bitcoin arbitrage. That library does a lot of the work for you when running your own bitcoin bot, but you still need to figure out complexities like hosting the bot, running it on a recurring schedule, viewing reports, and more. This course will teach you everything you need to know to get a fully automated, no-hassle bitcoin arbitrage bot up and running.

No technical experience required!

You don't have to know how to code. If you do, you'll be able to customize your bot, but this course will provide you with all of the materials and knowledge you need to launch your arbitrage bot. If you are unable to use the command line, skip straight to the hosting your bot section.

You'll learn about bitcoin arbitrage in general and strategies to apply to get ahead of the game.

Included in the course is some general information about bitcoin and arbitrage that'll give you the upper hand.

The most important part of creating an ultra-performant arbitrage bot is not being the same as everyone else. This course will also point you in the right direction so you can diversify your arbitrage bot and research more competitive advantage.

Broad exchange support

Including Bitstamp, BTC-E, CampBX, and Coinbase.

There is a section with instructions for adding new exchanges to the bot.

2-way arbitrage

You'll be able to run unlimited strategies, meaning you can simultaneously arbitrage in both directions between every exchange at once.

Simple hosting with Heroku

A huge focus of the course is hosting your bot so it can run without you doing anything.

Heroku is great because it:

  • is free
  • offers easy (and free) integration with services for email and logging

Built-in email notifications

rbtc_arbitrage has support for the free sendgrid heroku addon. You can configure alerts for when you make live trades or just when arbitrage levels go above a certain threshold.

An Awesome Learning Experience

Even if you don't intend to trade a bot live, this course is a great chance to learn more about:

  • Bitcoin Markets
  • Automated Trading
  • Arbitrage
  • Ruby
  • Software
  • Finance

One real user said:

"Overall, there was a lot of trial and error involved for a newbie like me. I think it's good that there were some fill in the blanks areas where I had to figure it out on my own. It helped me learn a lot more than blindly following step by step instructions."

Course Layout


Introduction To Arbitrage


What Is Arbitrage?


Constraints Of Bitcoin Arbitrage


Benefits Of Bitcoin Arbitrage




Using The Arbitrage Bot




Using The Toolkit


Setup Credentials


Setting Environment Variables


Live Trading


Adding A New Exchange


Hosting Your Bot On Heroku




Creating The App


Scheduling Trades


Getting Notifications


Logging Services

About the Teacher

Convert?fit=clip&h=20&w=20 heynk

I'm a founder of Uludum and the lead developer behind the website. Besides maintaining Uludum, I'm also a software engineer at Up Global, where I help programs like Startup Weekend run efficiently.

I write occasionally on my personal website about anything from software to startups and bitcoin. I contribute to and maintain lots of open source software.

Listing 6 comments


Jan 31

Order Keflex Online Acquistare Sildenafil 50 Mg cialis online Buy Prevacid I.V Male Ed Pharmacy Uso De La Viagra


Apr 8, 2015

I got this error while trying to install the gem:

ERROR:  While executing gem ... (Gem::DependencyResolutionError)
    conflicting dependencies i18n (~> 0.7) and i18n (= 0.6.9)
  Activated i18n-0.6.9
  which does not match conflicting dependency (~> 0.7)

  Conflicting dependency chains:
    rbtc_arbitrage (>= 0), 2.4.4 activated, depends on
    bitstamp-rbtc-arbitrage (= 0.4.0), 0.4.0 activated, depends on
    i18n (= 0.6.9), 0.6.9 activated

    rbtc_arbitrage (>= 0), 2.4.4 activated, depends on
    activemodel (~> 4.0), 4.2.1 activated, depends on
    activesupport (= 4.2.1), 4.2.1 activated, depends on
    i18n (~> 0.7)

  Gems matching i18n (~> 0.7):

Feb 12, 2015

@heynk I am afinancial guy, not IT guy. I see that the corse has a section about add exchange. I just was not able to understand ruby language and implement it. I am willing to pay for someone to do it for me. Would recommend anyone that could do it for me?


Convert?fit=clip&h=18&w=18heynk Creator

Feb 5, 2015

@rmguimar, about adding an exchange:

There is a subsection for that!

Feel free to email me with questions and I can help.


Feb 5, 2015

Hi. I purchased the course with intentions to use on the exchanges in Brasil ( ; ; ; ; ; ; ;

I only found on the course, pre estabilished bitstamp, gtmx, campbx, btc-e and coinbase.

How do I add other exchanges?



May 2, 2014


I followed this, but I have a problem in the heroku part. I added an exchange, kraken with the gem kraken_ruby. But we I try to run the script heroku gives me this error:

/app/vendor/bundle/ruby/2.0.0/gems/kraken_ruby-0.2.0/lib/kraken_ruby/client.rb:3:in require': cannot load such file -- Base64 (LoadError) from /app/vendor/bundle/ruby/2.0.0/gems/kraken_ruby-0.2.0/lib/kraken_ruby/client.rb:3:in' from /app/vendor/bundle/ruby/2.0.0/gems/kraken_ruby-0.2.0/lib/kraken_ruby.rb:2:in require' from /app/vendor/bundle/ruby/2.0.0/gems/kraken_ruby-0.2.0/lib/kraken_ruby.rb:2:in' from /app/lib/rbtc_arbitrage.rb:7:in require' from /app/lib/rbtc_arbitrage.rb:7:in' from /app/vendor/ruby-2.0.0/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in require' from /app/vendor/ruby-2.0.0/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:inrequire' from /app/bin/rbtc:4:in `'

It worked fine on local....

You must be signed in to post a comment.