Bitcoin Forum
November 16, 2024, 11:43:52 PM *
News: Check out the artwork 1Dq created to commemorate this forum's 15th anniversary
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: [Announcement] ArBit - An Open Source Bitcoin Arbitrage Bot  (Read 5982 times)
tebou (OP)
Newbie
*
Offline Offline

Activity: 10
Merit: 0


View Profile
September 25, 2011, 09:00:50 PM
 #1

https://github.com/goteppo/ArBit

ArBit looks for arbitrage opportunities by monitoring buy and sell quotes at Mt Gox, TradeHill, and ExchB. And once an arbitrage opportunity is found it will automatically execute the trades.

ArBit is written in Go (GoLang) using the Google App Engine SDK, and is mainly a practice project I started in order to learn the Go programming language. I decided to open source it in hopes of getting feedback regarding my code, and also hoping that releasing it would be useful to this community.

Any feedback would be highly appreciated.

Thanks,

Teppo
CliffordM
Member
**
Offline Offline

Activity: 95
Merit: 10


View Profile
September 25, 2011, 10:07:19 PM
 #2

Arbitrage is a great idea -- it adds liquidity and stabilises the market -- as long as the automated processes don't do anything crazy.  The more people running sensible bots like these the better, to broaden the markets, and bring prices inline.
nefanon
Member
**
Offline Offline

Activity: 112
Merit: 10



View Profile
September 26, 2011, 03:07:05 PM
 #3

WTH is this... <checks wikipedia> ... NICE!  Cheesy
tebou (OP)
Newbie
*
Offline Offline

Activity: 10
Merit: 0


View Profile
September 29, 2011, 04:14:30 PM
 #4

Thanks for the positive comments.

I would also be curious to know if anybody has started using it yet, and if so, how is it working out for you?
jwzguy
Hero Member
*****
Offline Offline

Activity: 868
Merit: 1002



View Profile
September 29, 2011, 04:19:41 PM
 #5

Wouldn't every additional person running the same arbitrage code significantly increase the risk of unexecuted trades (on one side) for the others?

I assume you're not running this yourself?
tebou (OP)
Newbie
*
Offline Offline

Activity: 10
Merit: 0


View Profile
September 29, 2011, 06:48:32 PM
 #6

Wouldn't every additional person running the same arbitrage code significantly increase the risk of unexecuted trades (on one side) for the others?

That would be true if running the program exactly as it is, with no modifications.

I haven't heard if anyone's started using it yet, but if someone has, one simple way to reduce the risk of orders not filling would be to run the once-per-minute cron job for example at the 30-second mark instead, and try to avoid running the script exactly the same time as someone else. (Not sure if there's an easy way to do that other than by adjusting your computer/server clock though.)

And of course since it's open source, it could be made to run in real-time instead of just once every minute, and that would give you advantage until someone else figured out how to do the same.

Quote
I assume you're not running this yourself?

I considered that before I made the program available to everyone, but realized that it would also stop the feedback loop on how it's working, and that would make it much more difficult to continue the development or find out about potential bugs etc.

If I do get a confirmation that someone is using it and is willing to provide feedback on how it's working, I'd be happy to turn mine off and only run mine at times when I really need to for development purposes. (Eventually of course if many people were already running it, then it wouldn't make much difference anymore if I ran it too, and I might as well just keep running it too in order to get more data for further development.)

If you have any ideas or suggestions on how to handle this better, I'd be happy to hear your thoughts.
jwzguy
Hero Member
*****
Offline Offline

Activity: 868
Merit: 1002



View Profile
September 29, 2011, 08:05:54 PM
 #7

I don't get what you're trying to accomplish. If you're willing to turn your bot off as long as other people are taking care of arbitrage opportunities....um....go ahead and turn it off. You can watch multi-exchange tickers and see that arbitrage bots already fighting over fractions of a cent. It's a zero-sum game and there are already plenty of players.

Of course each person has just as much right to fight for those tiny profits as any other. But if you think you're solving some problem by releasing this client...well. I respectfully disagree.

tebou (OP)
Newbie
*
Offline Offline

Activity: 10
Merit: 0


View Profile
September 30, 2011, 08:57:31 PM
 #8

I don't get what you're trying to accomplish.
...
But if you think you're solving some problem by releasing this client...well. I respectfully disagree.

I'm not sure if I understand what you meant by your comment, but maybe it clarifies my motives a little bit if I say that it was actually somewhat of a coincidence that my first Go project happened to be Bitcoin related. The main reason I wrote the program was to learn Go, not to solve a Bitcoin related problem.

I released the program as open source because I think the best way to get something is to give something, and what I was hoping to get back is useful feedback that might help me become a better programmer.

Of course the program should also be useful to someone first, before I can realistically expect much feedback about my code. But I do believe that an open source arbitrage trading program should be useful to some members of this community. Especially all the algo-traders out there.
tebou (OP)
Newbie
*
Offline Offline

Activity: 10
Merit: 0


View Profile
October 05, 2011, 06:28:38 PM
 #9

One question I was asked (outside of this forum) was why would I ever give away a software if it really made money out of thin air, and he/she questioned if I've even made any money with it at all.

While my personal finances are of course, personal, I think it's fair to admit that for the duration that I've been running this software, I have also lost money (USD) due to running this process.

This does not mean that the software wasn't working, or that the arbitrage trades weren't profitable. But what it does mean (and what I tried to explain on the documentation of the software), is that you cannot execute an arbitrage strategy without exposing yourself to the currency risk caused by the fluctuations of price between BTC and USD.

In order to take advantage of an arbitrage when such an opportunity presents itself, you need to have the funds (both USD and BTC) readily available within the accounts you're trading with. And when you hold a positive balance of BTC during a time when the price of BTC declines, you will lose money. And at the moment the price of BTC just happens to be close to the lowest I've ever seen it since the early 2011 when I first found out about Bitcoins.

This is also the reason why I don't mind giving away the program. You cannot take advantage of the free arbitrage without exposing yourself to the exchange rate risk, and that risk seems to high enough that the marginal profits made from the arbitrage may or may not be worth it.
entreri55
Newbie
*
Offline Offline

Activity: 1
Merit: 0


View Profile
October 06, 2011, 08:29:01 AM
 #10

tebou, this is very, very interesting!  I come from a finance background and I just started looking at bitcoins because I thought there would be arbitrage opportunities possible - ones which don't require the immense infrastructure that stocks or derivatives require!

II'm actually interested in your bot because I wanted to build the very same thing.  The problem is that I studied finance and statistics, so my programming knowledge is rather weak (limited to MATLAB, R, a bit of excel VBA).  Nonetheless, I still want to build something like this, mostly for the learning as well.  I'm hesitant to look at your bot and your code because I worry that I'll subconsciously try to mimic it when and if I start building mine.

Would you be able to give me a me some pointer since I also want to start a project like this?  Is it beyond the scope of a beginner like me?  I'm interested in learning PHP/SQL and java/C++, would I be able to integrate those in building this?  Any guidance here is greatly appreciated - thanks in advance!
tebou (OP)
Newbie
*
Offline Offline

Activity: 10
Merit: 0


View Profile
October 06, 2011, 06:50:05 PM
 #11

Would you be able to give me a me some pointer since I also want to start a project like this?  Is it beyond the scope of a beginner like me?  I'm interested in learning PHP/SQL and java/C++, would I be able to integrate those in building this?  Any guidance here is greatly appreciated - thanks in advance!

Since you already have the finance background and the interest for doing a project like this, I don't think it is at all beyond the skills you can easily learn. I too started this project as an excercise to learn a new language (Go in my case), and I don't have any background in finance.

The API's used by the Bitcoin exchanges are some of the best API's (in terms of simpleness and easiness) I've ever had to work with, so that won't be a problem regardless of what language you decide to use.

In general I think that PHP is easier to get started with compared to Java or C++, so that would be my recommendation if you are just wanting to get your feet wet by coding a Bitcoin arbitrage program without having any highly specialized needs (such as super fast execution speed) that might require C or something else. You can probably easily find a lot of example code for PHP too, that you can use to build your API calls etc.

I also wouldn't worry about how it might affect your program if you look at my code or anyone else's code while building it. On the contrary, I think it makes it much easier and faster to learn how to program if you do look at other people's code and try to learn from them.
saethan
Newbie
*
Offline Offline

Activity: 42
Merit: 0


View Profile
October 06, 2011, 07:25:55 PM
 #12

Thanks for posting this, I'll have to take a look.  I'm a programmer myself and have considered similar projects.

Worst case when dealing with the usd/btc market - I lose btc that I've mined.  Which isn't a lot.  Cheesy
Andrew Vorobyov
Hero Member
*****
Offline Offline

Activity: 558
Merit: 500



View Profile
November 27, 2011, 01:05:37 PM
 #13

Since it is arbitrage thread in a way, can somebody explain it to me?

Prices a second ago...

mtgoxUSD   2.4450   21,013.27   2.45   2.45   2.50   2.41
thUSD   2.1700   6,216.27   2.17   2.20   2.40   2.17

It means hell of the arbitrage opportunities, is it correct?
Blawpaw
Legendary
*
Offline Offline

Activity: 1596
Merit: 1027



View Profile
August 17, 2015, 07:33:49 PM
 #14

I guess you could make this available for other digital currencies as well...

It would be very good to have this to trade with LTC or Ether!
Tobson
Newbie
*
Offline Offline

Activity: 6
Merit: 0


View Profile
November 20, 2017, 11:17:04 AM
 #15

I think it's fair to admit that for the duration that I've been running this software, I have also lost money (USD) due to running this process.

Well I was wondering regarding that this post is 6 years old now did you come past the risk of losing money by implementing strategies somehow?
I recently looked into this topic myself and I think that the aforementioned market risk is preventing any Arbitrage bot from becoming successful. Do you agree?
hbcenk
Member
**
Offline Offline

Activity: 476
Merit: 10

ICO marketer, Translator, Entrepreneur


View Profile WWW
December 14, 2017, 09:36:27 AM
 #16

Does it risky for future of crypto currencies?

I think there should be some mechanism preventing it
Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!