Pages:
Author

Topic: Bitcoin arbitrage on GitHub: ~2% monthly return, market-neutral long/short - page 2. (Read 38294 times)

newbie
Activity: 7
Merit: 0
Is there people here who are using Blackbird and profiting from it? Please share your reviews, comments here so others can read.
Very interested in this project, thanks for investing your time in this, OP.
There are some reviews on google and generally speaking the response has been mixed. I think the general consensus is that the bot works smoothly however could be tweaked a little for consistency of returns.

You can read a blog post here: http://honeybadgerofmoney.com/blackbirdarbbot/

Still it's an amazing idea and can only benefit the community.
sr. member
Activity: 477
Merit: 250
Is there people here who are using Blackbird and profiting from it? Please share your reviews, comments here so others can read.
Very interested in this project, thanks for investing your time in this, OP.
newbie
Activity: 7
Merit: 0
Thank you for your reply. You seem very knowledgeable about all this Smiley
Could you explain the idea behind "OrderBookFactor"? How does the number have a correlation with the liquidity? If I set it at 3.0, is it 3x the spread, or?

Thank you! I'm probably not ready to start contributing much however I'm learning quite a fair amount and hopefully I'll be able to add something in the future.
newbie
Activity: 49
Merit: 0

1a) Do you check for the bid/ask spread within an exchange?  If this is the case isn't this counter intuitive, since the more illiquid the market the more volatile it is? How then do you strike a balance between liquidity risk and potential volatility profits?

No, we only check the bid/ask difference between separated exchanges: bid on exchange A vs. ask on exchange B, ask on exchange A vs. bid on exchange B. We don't need to look at the bid/ask spread within an exchange to do arbitrage.


1b) A way to ensure 0% liquidity risk that I can see is by buying at the lowest ask price at Exchange 1 and selling at the highest bid price at Exchange 2. Of course this is a smaller spread, but if the markets are as volatile as they've been in the past few days then there should be a few opportunities.

This is exactly what Blackbird does. Once the spread threshold SpreadEntry is reached the system will buy at the ask and sell at the bid. This is called crossing the spread and helps ensuring an immediate execution.


2) For exchanges that offer short-selling/margin-trading but with no API to do so, have you considered pure web automation, with something like Selenium?  Of course this would be much slower than an API call. However if your polling timeframe is 5 seconds then generally speaking using a web automation framework would be well within those bounds.

I know Selenium a little bit and I don't think speed would be an issue as the tasks can be executed at a pretty fast pace. I'm sure that it might be possible to implement, but could be rather complex (credentials, order generation, waiting until the order is 100% filled, verification, etc) and not as robust as the REST calls we are using now. But technically yes I think it's definitely possible.

newbie
Activity: 7
Merit: 0
Okay, since my last post I've had a bit of a think about this, and there are a few things I'd like to clear up - and also a few ideas I'd like to suggest.
Thank you very much for bearing with me for the following noobish questions.

1) What is your method for quantifying liquidity?
1a) Do you check for the bid/ask spread within an exchange?  If this is the case isn't this counter intuitive, since the more illiquid the market the more volatile it is? How then do you strike a balance between liquidity risk and potential volatility profits?

1b) A way to ensure 0% liquidity risk that I can see is by buying at the lowest ask price at Exchange 1 and selling at the highest bid price at Exchange 2. Of course this is a smaller spread, but if the markets are as volatile as they've been in the past few days then there should be a few opportunities.

2) For exchanges that offer short-selling/margin-trading but with no API to do so, have you considered pure web automation, with something like Selenium?  Of course this would be much slower than an API call. However if your polling timeframe is 5 seconds then generally speaking using a web automation framework would be well within those bounds.

Thank you!
newbie
Activity: 49
Merit: 0
Does it still need to short dealing with only cryptocurrency ?
I don't think I understand the question. Can you elaborate?

Time for transfert a far lower between market when dealing with cryptocurrency only but still need one or more hours to confirm transaction.
But i understand it's totally out of bot's strategy to perform any transfer between markets.
Yes that's correct. Since we want to be hedged against the market, the two orders (long and short) need to be executed as fast as possible. If we need a USD/CNY conversion before it will also have to be exectued as fast as possible. As you mentioned there is no money or bitcoin transfer in this project so the hours needed to confirm a transaction don't apply here.

full member
Activity: 219
Merit: 100
And yes, at least one exchange needs to offer short selling on ETH and be implemented in Blackbird to do BTC/ETH arbitrage.

Warning: if you do BTC/ETH arbitrage you will be hedged against the market risk on ETH but not on BTC anymore. USD/BTC and USD/ETH would be safer, unless you are willing to accept BTC risk.


Does it still need to short dealing with only cryptocurrency ?
Time for transfert a far lower between market when dealing with cryptocurrency only but still need one or more hours to confirm transaction.

But i understand it's totally out of bot's strategy to perform any transfer between markets.
newbie
Activity: 49
Merit: 0
Hi!

Interesting project. Have you considered adding checks for triangular arbitrage opportunities? For example, coincheck.jp offers margin trading (so does okcoin.cn for that matter) meaning that the bot could work for a triangular arbitrage between JPY/BTC/USD or CNY/BTC/USD. Also opens up plenty more exchanges.

The only forseeable problem is that you'd have to find a reliable website to convert USD<->JPY/CNY for the initial deposit into the balance, but that shouldn't be a problem considering the wealth of money exchange platforms out there (OFX, TransferWise, etc.)

Anyway, seriously interesting venture and I'll keep checking back on this.

Thanks. Yes this is something we've already considered (see previous posts on this thread). Adding this extra layer of currency conversion (e.g. USD/CNY) would generate more inefficiencies that can be captured as arbitrage opportunities. We will need to add the real-time currency rate into the spread calculation and the currency risk will need to be hedged.

newbie
Activity: 7
Merit: 0
Hi!

Interesting project. Have you considered adding checks for triangular arbitrage opportunities? For example, coincheck.jp offers margin trading (so does okcoin.cn for that matter) meaning that the bot could work for a triangular arbitrage between JPY/BTC/USD or CNY/BTC/USD. Also opens up plenty more exchanges.

The only forseeable problem is that you'd have to find a reliable website to convert USD<->JPY/CNY for the initial deposit into the balance, but that shouldn't be a problem considering the wealth of money exchange platforms out there (OFX, TransferWise, etc.)

Anyway, seriously interesting venture and I'll keep checking back on this.
newbie
Activity: 27
Merit: 0
very interesting project, will be keeping check. cheers
newbie
Activity: 49
Merit: 0
Good morning Butor,
Impressive work.

I see you only trade USD/BTC

Is it possible to change settings to do for exemple BTC/ETH on poloniex/kraken ?

Or is it only due to lake of short selling on both marketplace for such pair ?

Hi netmonk, thanks.

The structure of the code should allows programmers to (relatively) easily add new exchanges and new cryptocurrencies. Basically you "just" need to change the API calls from BTC to ETH. For example, the bid/ask information call on Bitfinex would change from:

https://api.bitfinex.com/v1/ticker/btcusd

to:

https://api.bitfinex.com/v1/ticker/ethbtc

And yes, at least one exchange needs to offer short selling on ETH and be implemented in Blackbird to do BTC/ETH arbitrage.

Warning: if you do BTC/ETH arbitrage you will be hedged against the market risk on ETH but not on BTC anymore. USD/BTC and USD/ETH would be safer, unless you are willing to accept BTC risk.

full member
Activity: 219
Merit: 100
Good morning Butor,
Impressive work.

I see you only trade USD/BTC

Is it possible to change settings to do for exemple BTC/ETH on poloniex/kraken ?

Or is it only due to lake of short selling on both marketplace for such pair ?

newbie
Activity: 49
Merit: 0

Anyone know if you can margin trade on Bitfinex if you're in New York state? I can't exchange trade, but I can fund my margin account via wire transfer....so?

Does anyone know?

I have the same problem as you. This is due to the BitLicense license issued by the NY State Department of Financial Services.

Bitfinex decided to avoid having to comply to that license by imposing limitations to NY residents: we can no longer hold BTC on our accounts, among other things. More info here on their FAQ.

Fortunately, I opened an account on Bitfinex before the license so I can still margin trade to test Blackbird.

full member
Activity: 224
Merit: 100
Anyone know if you can margin trade on Bitfinex if you're in New York state? I can't exchange trade, but I can fund my margin account via wire transfer....so?

Does anyone know?
full member
Activity: 224
Merit: 100
I opened one even though I live in NY. They didn't ask for any confirmation whatsoever.
newbie
Activity: 49
Merit: 0
Any thoughts on adding https://www.poloniex.com/ ? They allow margin trading

Quoting this to add to my project queue. Seems poloniex has a decent API: https://poloniex.com/support/api/

perhaps OP will add it, I am still waiting to see what happens on the chinese exchange now it is after New Years.  Smiley

Yes thanks, Poloniex sounds indeed promising as their API covers short selling with marginBuy and marginSell.

Unfortunately, I am not authorized to open an account on Poloniex since I live in New York. But I already created the generic files poloniex.h and poloniex.cpp if anyone wants to implement the functions.

legendary
Activity: 1064
Merit: 1000
Any thoughts on adding https://www.poloniex.com/ ? They allow margin trading

Quoting this to add to my project queue. Seems poloniex has a decent API: https://poloniex.com/support/api/

perhaps OP will add it, I am still waiting to see what happens on the chinese exchange now it is after New Years.  Smiley
full member
Activity: 224
Merit: 100
Any thoughts on adding https://www.poloniex.com/ ? They allow margin trading
legendary
Activity: 1064
Merit: 1000
I haven't input any API info yet, but I got it working fine. I'm using tails -F to output the log file at the moment. Is there a way to change the polling rate(refresh)? It seems to be doing it every second.

Just do this:

Code:
watch -n (x) tail -n 15 

Replacing x with number of seconds you want to poll, and path to your logfile of course.
member
Activity: 86
Merit: 10
I haven't input any API info yet, but I got it working fine. I'm using tails -F to output the log file at the moment. Is there a way to change the polling rate(refresh)? It seems to be doing it every second.
Pages:
Jump to: