Raoul Duke
aka psy
Legendary
Offline
Activity: 1358
Merit: 1002
|
|
September 18, 2012, 11:17:12 PM |
|
Started with 102 BTC. Sitting at USD $1202 now. If I sold it for BTC I would have a loss of 5 BTC. Hard to keep track on the app as I restarted it so many times that it lost track of real P/L
|
|
|
|
isis (OP)
|
|
September 18, 2012, 11:46:10 PM |
|
Started with 102 BTC. Sitting at USD $1202 now. If I sold it for BTC I would have a loss of 5 BTC. Hard to keep track on the app as I restarted it so many times that it lost track of real P/L
Not to mention buying up that many BTC would drive the prices up I'm in the middle of a fairly significant refactor, when it runs it should bring your BTC back at best market prices. In the meantime everyone please shut down your bots and take your profit. The buy portion of the engine has an issue because the ask arrow is not being calculated at all. Since the bid side of the equation looks at the ask arrow to calculate weight and to determine whether or not to bother buying. I'll have the refactor done sometime tonight and we can try again in the morning. If you're stuck with a large amount of local currency just hold onto it until I have the next release fully tested.
|
|
|
|
Ignatius
|
|
September 19, 2012, 12:08:19 AM |
|
Not to mention buying up that many BTC would drive the prices up It would be nice if ATP looked at that sort of thing. Ever been on freenode IRC and spoken with a bot named gribble? <Ignatius-otc> ;;market sell 100 <gribble> A market order to sell 100 bitcoins right now would net 1222.2737 USD and would take the last price down to 12.2110 USD, resulting in an average price of 12.2227 USD/BTC. <Ignatius-otc> ;;market buy 100 <Ignatius-otc> ;;market buy 1000 <gribble> A market order to buy 100 bitcoins right now would take 1231.4490 USD and would take the last price up to 12.3150 USD, resulting in an average price of 12.3145 USD/BTC. <gribble> A market order to buy 1000 bitcoins right now would take 12321.7316 USD and would take the last price up to 12.3300 USD, resulting in an average price of 12.3217 USD/BTC. Since gox does not provide fill or kill type orders, that I am aware of, will the arbitrage strategy do similar calculations to insure fills and profits? Thanks for the continued work on the project.
|
|
|
|
isis (OP)
|
|
September 19, 2012, 12:13:27 AM |
|
Not to mention buying up that many BTC would drive the prices up It would be nice if ATP looked at that sort of thing. Ever been on freenode IRC and spoken with a bot named gribble? <Ignatius-otc> ;;market sell 100 <gribble> A market order to sell 100 bitcoins right now would net 1222.2737 USD and would take the last price down to 12.2110 USD, resulting in an average price of 12.2227 USD/BTC. <Ignatius-otc> ;;market buy 100 <Ignatius-otc> ;;market buy 1000 <gribble> A market order to buy 100 bitcoins right now would take 1231.4490 USD and would take the last price up to 12.3150 USD, resulting in an average price of 12.3145 USD/BTC. <gribble> A market order to buy 1000 bitcoins right now would take 12321.7316 USD and would take the last price up to 12.3300 USD, resulting in an average price of 12.3217 USD/BTC. Since gox does not provide fill or kill type orders, that I am aware of, will the arbitrage strategy do similar calculations to insure fills and profits? Thanks for the continued work on the project. That's market depth which is a result of doing some calculations against the orderbook. The current engine doesn't take depth into account at all. However the new one will use the order book to determine if an order can be fulfilled for a profit and what that expected profit would be, which is itself a type of depth calculation.
|
|
|
|
isis (OP)
|
|
September 19, 2012, 03:21:48 AM |
|
Well, despite the trading halt, here's today's numbers.
BTC0.14280064 $20.71723 Overall change from initial; Loss in USD if I were to convert to initial BTC: $-1.49839 Loss in BTC if I were to convert back to BTC only: BTC-0.16899936
Losses have entirely been the fault of bugs. Trading executed a very slight gain today, despite another known issue. This is looking much better with each iteration.
So I have finished the refactor and decided to try it in live mode. As it turns out if there is no volume on a market we get a trend arrow of 0, add that to an increasing bid arrow and you end up dumping all your bitcoins into rubles. On the bright side I can confirm it is infact bringing cross market liquidity. I'll make a commit now in case anyone wants to try this stage out. Looks like it's gonna need more work, but better me than you guys. (p.s. Please keep the donations coming, I just bought a lot of rubles by accident)
|
|
|
|
isis (OP)
|
|
September 19, 2012, 03:41:41 AM |
|
Thought yall might enjoy my latest email from MtGox Ask(s) (Sell)
Order Filled at: Wed 19 Sep 2012 03:32:35 AM GMT Amount: 0.25642442 BTC Price: @CA$11.79538 Total: CA$3.02462
Order Filled at: Wed 19 Sep 2012 03:32:35 AM GMT Amount: 0.25642442 BTC Price: @฿373.45556 Total: ฿95.76313
Order Filled at: Wed 19 Sep 2012 03:32:36 AM GMT Amount: 0.12067032 BTC Price: @9.42501 € Total: 1.13732 €
Order Filled at: Wed 19 Sep 2012 03:33:35 AM GMT Amount: 0.09804463 BTC Price: @CA$11.79538 Total: CA$1.15647
Order Filled at: Wed 19 Sep 2012 03:33:36 AM GMT Amount: 0.09804463 BTC Price: @฿373.45556 Total: ฿36.61531
Order Filled at: Wed 19 Sep 2012 03:33:37 AM GMT Amount: 0.04546997 BTC Price: @9.42501 € Total: 0.42855 €
Order Filled at: Wed 19 Sep 2012 03:34:36 AM GMT Amount: 0.03765482 BTC Price: @CA$11.79538 Total: CA$0.44415
Order Filled at: Wed 19 Sep 2012 03:34:38 AM GMT Amount: 0.03765482 BTC Price: @฿373.45556 Total: ฿14.06240
Order Filled at: Wed 19 Sep 2012 03:34:38 AM GMT Amount: 0.01309733 BTC Price: @9.42501 € Total: 0.12344 €
Order Filled at: Wed 19 Sep 2012 03:35:37 AM GMT Amount: 0.01555308 BTC Price: @CA$11.79538 Total: CA$0.18345
Order Filled at: Wed 19 Sep 2012 03:35:39 AM GMT Amount: 0.01555308 BTC Price: @฿373.45556 Total: ฿5.80838
Bid(s) (Buy)
Order Filled at: Wed 19 Sep 2012 03:31:34 AM GMT Amount: 0.05522346 BTC Price: @386.16853 RUB Total: 21.32556 RUB
Order Filled at: Wed 19 Sep 2012 03:31:34 AM GMT Amount: 0.25796609 BTC Price: @387.76148 RUB Total: 100.02931 RUB
Order Filled at: Wed 19 Sep 2012 03:31:34 AM GMT Amount: 0.68681045 BTC Price: @387.94166 RUB Total: 266.44239 RUB
|
|
|
|
isis (OP)
|
|
September 19, 2012, 04:03:38 AM |
|
Can you clarify the risks in the latest commit? Still bugs, or have you sorted more of it?
Latest commit has fixed the askArrow and is playing the same algorithm across all currencies that you have a wallet for at MtGox. It's still using market orders, therefore if you have a market with little to no liquidity but a large order book it may fill for a different price than the engine anticipated. This could effect profits. In my case it shotgunned all my 6 of my BTC across all 16 different currencies since they're all evidently going up at this time. I did a calculation by hand of my balances and I'm down .5 BTC if I swept everything back to BTC, so it's not too bad. If someone had a really significant BTC balance (as in greater than 100 BTC) they would probably be making some serious cash right now. As it is there isn't enough momentum in any of the markets as they trend down to allow the algorithm to buy back any of the BTC and my holdings are too low to cover the weighted bid, thus it's missing out of a lot of smallish bargains. Now that I have holdings in all 16 currencies I'm going to finish fully implementing arbitrage and have it seek for the cheapest place to buy and most profitable place to sell. My last commit was code only, I didn't commit a binary because I wasn't confident of the performance. Fell free to do a pull and have a look at the new code.
|
|
|
|
isis (OP)
|
|
September 19, 2012, 05:02:50 AM |
|
Fell free to do a pull and have a look at the new code.
Only have USD/BTC wallet set up, sold a bit of BTC so far, based on trend. Thanks for the info. Yeah in the case of someone with only 1 wallet setup, the commit only effects the askArrow and gives you a new --debug-live=false option which will force it INTO simulation mode at runtime. If you have multiple wallets it will just run the same algorithm (in different threads) on all of them. There is nothing to configure, just add a wallet at MtGox and restart the application. It will start trading the new currency in about 10 minutes. I've also discovered, that MtGox may get a little slow to fill the orders, or at least update balances. I checked my balance 10 seconds after I shut the bot down and had no bitcoins, but 15 minutes later I had 0.84 BTC (and a whole lot of CAD & RUB as well). If I were to sweep everything to BTC at this moment I would have 6.1 BTC so most of my initial loss was just orders caught up in the system. In otherwords MtGox balances may be delayed. FYI you will get a massive performance increase on this app the more cores you have. Each Ticker runs it's own thread, each observer is in it's own thread. I'll probably add a thread pool to manage the super short lived agents since the current design is death by a thousand paper cuts. (thread creation overhead is too much on these shorter lived ones).
|
|
|
|
isis (OP)
|
|
September 19, 2012, 07:18:58 AM |
|
Well we're getting closer... Sep 19, 2012 1:16:46 AM org.open.payment.alliance.isis.atp.ArbitrageEngine run INFO: Arbitrage Engine has detected an after fee profit opportunity of 96% for currency pair BTC/USD
|
|
|
|
isis (OP)
|
|
September 19, 2012, 08:07:58 AM |
|
Seems to almost be working... HighestBid: (GBP, 1.5853187379265938) Lowest Ask: (JPY, 0.012690721649484536) Sep 19, 2012 1:58:21 AM org.open.payment.alliance.isis.atp.ArbitrageEngine run INFO: Arbitrage Engine has detected an after fee profit opportunity of 156% on currency pair JPY/GBP
What you're looking at for Bid & Ask are the conversion rates calculated as follows. USD/GBP USD/JPY If I buy 1 BTC on the Japanese market for Y968 I could sell it right now for GBP7.57 Is that a good deal? The engine says buy (968 * 0.0127) = 12.2936 sell (7.57 * 1.58) = 11.96 So it's detected an opportunity correctly. It's just got the bid/ask pairing backwards. I'm looking into why that is now. In the meantime it might not be a good idea to buy bitcoins with your GBPs and turn them into Yen. (Conversion factor on Highest Bid is clearly backwards)
|
|
|
|
isis (OP)
|
|
September 19, 2012, 09:09:13 AM |
|
Found the problem, fixed it. We now have cross pair arbitrage although the display of how much was actually traded seems to be off by a factor of 100 or so. Sep 19, 2012 3:06:50 AM org.open.payment.alliance.isis.atp.TrendObserver run INFO: Application has not run long enough to build a profile for USD market. 59 minutes remaining. Sep 19, 2012 3:06:54 AM org.open.payment.alliance.isis.atp.ArbitrageEngine run INFO: Arbitrage Engine has detected an after fee profit opportunity of %1.5593626273003707 on currency pair THB/GBP Sep 19, 2012 3:06:54 AM org.open.payment.alliance.isis.atp.ArbitrageEngine run INFO: ***Conversion Factors*** Highest Bid: (GBP, 1.6028250361140384) Lowest Ask: (THB, 0.03146240881366775)
Sep 19, 2012 3:06:54 AM org.open.payment.alliance.isis.atp.ArbitrageEngine executeTrade INFO: Arbitrage traded THB 16330.097404265 Sep 19, 2012 3:06:54 AM org.open.payment.alliance.isis.atp.ArbitrageEngine executeTrade INFO: Successfully traded with Arbitrage! Sep 19, 2012 3:07:09 AM org.open.payment.alliance.isis.atp.ArbitrageEngine run INFO: Arbitrage Engine has detected an after fee profit opportunity of %1.5591357219104576 on currency pair RUB/GBP Sep 19, 2012 3:07:09 AM org.open.payment.alliance.isis.atp.ArbitrageEngine run INFO: ***Conversion Factors*** Highest Bid: (GBP, 1.6028250361140384) Lowest Ask: (RUB, 0.031689314203580704)
Sep 19, 2012 3:07:09 AM org.open.payment.alliance.isis.atp.ArbitrageEngine executeTrade INFO: Arbitrage traded RUB 36287.4226391452 Sep 19, 2012 3:07:09 AM org.open.payment.alliance.isis.atp.ArbitrageEngine executeTrade INFO: Successfully traded with Arbitrage! Sep 19, 2012 3:07:23 AM org.open.payment.alliance.isis.atp.ArbitrageEngine run INFO: Arbitrage Engine has detected an after fee profit opportunity of %1.4634022030400207 on currency pair HKD/GBP Sep 19, 2012 3:07:23 AM org.open.payment.alliance.isis.atp.ArbitrageEngine run INFO: ***Conversion Factors*** Highest Bid: (GBP, 1.6028250361140384) Lowest Ask: (HKD, 0.12742283307401758)
Sep 19, 2012 3:07:23 AM org.open.payment.alliance.isis.atp.ArbitrageEngine executeTrade INFO: Arbitrage traded HKD 946.6730399875 Sep 19, 2012 3:07:23 AM org.open.payment.alliance.isis.atp.ArbitrageEngine executeTrade INFO: Successfully traded with Arbitrage! Sep 19, 2012 3:07:37 AM org.open.payment.alliance.isis.atp.ArbitrageEngine run INFO: Arbitrage Engine has detected an after fee profit opportunity of %1.4402996345702508 on currency pair SEK/GBP Sep 19, 2012 3:07:37 AM org.open.payment.alliance.isis.atp.ArbitrageEngine run INFO: ***Conversion Factors*** Highest Bid: (GBP, 1.6028250361140384) Lowest Ask: (SEK, 0.15052540154378755)
Sep 19, 2012 3:07:37 AM org.open.payment.alliance.isis.atp.ArbitrageEngine executeTrade INFO: Arbitrage traded SEK 1797.289542 Sep 19, 2012 3:07:38 AM org.open.payment.alliance.isis.atp.ArbitrageEngine executeTrade INFO: Successfully traded with Arbitrage!
|
|
|
|
MaxSan
|
|
September 19, 2012, 09:39:30 AM |
|
Will you be building another jar for those not familar with compiling java?
|
|
|
|
isis (OP)
|
|
September 19, 2012, 09:42:10 AM |
|
Will you be building another jar for those not familar with compiling java?
Yeah but not tonight. I'm still working out how much to trade via arbitrage, right now I've just got it bouncing my entire balance between currencies.
|
|
|
|
Ignatius
|
|
September 19, 2012, 09:58:24 AM |
|
Sep 19, 2012 5:57:12 AM org.open.payment.alliance.isis.atp.TradingAgent evalAsk INFO: The trading agent has determined that market conditions are not appropriate for you to sell at this time. Sep 19, 2012 5:57:12 AM org.open.payment.alliance.isis.atp.TradingAgent evalAsk INFO: Current bid price of GBP 7.76763 is below the VWAP of GBP 7.79410 Sep 19, 2012 5:57:12 AM org.open.payment.alliance.isis.atp.TradingAgent run INFO: Ticker Size: 70 | Trend Arrow: 5.0 | Bid Arrow: 4.0 | Ask Arrow: 2.0 | VWAP: GBP 7.79410 The GBP market is trending up. Sep 19, 2012 5:57:12 AM org.open.payment.alliance.isis.atp.TradingAgent evalBid INFO: Attempting to buy 0.0065084999999999997591371148075722885550931096076965332031250 BTC Sep 19, 2012 5:57:13 AM org.open.payment.alliance.isis.atp.TradingAgent marketOrder SEVERE: Failed to buy 0.0065084999999999997591371148075722885550931096076965332031250 at current market price. Please investigate Sep 19, 2012 5:57:13 AM org.open.payment.alliance.isis.atp.TradingAgent run INFO: Ticker Size: 40 | Trend Arrow: -1.0 | Bid Arrow: -8.0 | Ask Arrow: -2.0 | VWAP: EUR 9.64777 The EUR market is trending down. Sep 19, 2012 5:57:13 AM org.open.payment.alliance.isis.atp.TradingAgent evalAsk INFO: Attempting to sell 0.004222850561797752691781115963465254026232287287712097167968750 of 0.07516674 BTC available Sep 19, 2012 5:57:13 AM org.open.payment.alliance.isis.atp.TradingAgent marketOrder SEVERE: Failed to sell 0.004222850561797752691781115963465254026232287287712097167968750 at current market price. Please investigate Sep 19, 2012 5:57:13 AM org.open.payment.alliance.isis.atp.TradingAgent run INFO: Ticker Size: 89 | Trend Arrow: 4.0 | Bid Arrow: 1.0 | Ask Arrow: -2.0 | VWAP: USD 12.30251
Any idea what this is about?
|
|
|
|
isis (OP)
|
|
September 19, 2012, 10:05:42 AM |
|
Sep 19, 2012 5:57:12 AM org.open.payment.alliance.isis.atp.TradingAgent evalAsk INFO: The trading agent has determined that market conditions are not appropriate for you to sell at this time. Sep 19, 2012 5:57:12 AM org.open.payment.alliance.isis.atp.TradingAgent evalAsk INFO: Current bid price of GBP 7.76763 is below the VWAP of GBP 7.79410 Sep 19, 2012 5:57:12 AM org.open.payment.alliance.isis.atp.TradingAgent run INFO: Ticker Size: 70 | Trend Arrow: 5.0 | Bid Arrow: 4.0 | Ask Arrow: 2.0 | VWAP: GBP 7.79410 The GBP market is trending up. Sep 19, 2012 5:57:12 AM org.open.payment.alliance.isis.atp.TradingAgent evalBid INFO: Attempting to buy 0.0065084999999999997591371148075722885550931096076965332031250 BTC Sep 19, 2012 5:57:13 AM org.open.payment.alliance.isis.atp.TradingAgent marketOrder SEVERE: Failed to buy 0.0065084999999999997591371148075722885550931096076965332031250 at current market price. Please investigate Sep 19, 2012 5:57:13 AM org.open.payment.alliance.isis.atp.TradingAgent run INFO: Ticker Size: 40 | Trend Arrow: -1.0 | Bid Arrow: -8.0 | Ask Arrow: -2.0 | VWAP: EUR 9.64777 The EUR market is trending down. Sep 19, 2012 5:57:13 AM org.open.payment.alliance.isis.atp.TradingAgent evalAsk INFO: Attempting to sell 0.004222850561797752691781115963465254026232287287712097167968750 of 0.07516674 BTC available Sep 19, 2012 5:57:13 AM org.open.payment.alliance.isis.atp.TradingAgent marketOrder SEVERE: Failed to sell 0.004222850561797752691781115963465254026232287287712097167968750 at current market price. Please investigate Sep 19, 2012 5:57:13 AM org.open.payment.alliance.isis.atp.TradingAgent run INFO: Ticker Size: 89 | Trend Arrow: 4.0 | Bid Arrow: 1.0 | Ask Arrow: -2.0 | VWAP: USD 12.30251
Any idea what this is about? Looks like you're trading EUR, USD, GBP but your minimum threshold below the MtGox minimum for that currency. MinLocal & MinBTC should probably just be 0.01 I would re-run it with --clear-config=true there are some new options you probably want to be setting.
|
|
|
|
isis (OP)
|
|
September 19, 2012, 10:15:12 AM Last edit: September 19, 2012, 10:36:12 AM by isis |
|
*sigh* Sep 19, 2012 4:10:51 AM org.open.payment.alliance.isis.atp.ArbitrageEngine run INFO: Arbitrage Engine has detected an after fee profit opportunity of %0.5857735454554864 on currency pair USD/GBP Sep 19, 2012 4:10:51 AM org.open.payment.alliance.isis.atp.ArbitrageEngine run INFO: ***Conversion Factors*** Highest Bid: (GBP, 1.5977735454554864) Lowest Ask: (USD, 1.0)
Sep 19, 2012 4:10:51 AM org.open.payment.alliance.isis.atp.ArbitrageEngine executeTrade INFO: Arbitrage could not trade USD 0.0000 Sep 19, 2012 4:10:51 AM org.open.payment.alliance.isis.atp.ArbitrageEngine executeTrade INFO: Failed to complete the recommended trade via Arbitrage, perhaps your balances were too low. Sep 19, 2012 4:11:09 AM org.open.payment.alliance.isis.atp.ArbitrageEngine run INFO: Arbitrage Engine has detected an after fee profit opportunity of %0.5859029303081429 on currency pair USD/GBP Sep 19, 2012 4:11:09 AM org.open.payment.alliance.isis.atp.ArbitrageEngine run INFO: ***Conversion Factors*** Highest Bid: (GBP, 1.597902930308143) Lowest Ask: (USD, 1.0)
Working, but there seems to be a huge demand for Bit Coins in London tonight, I'm going to end up owning a lot of GBP at this rate. Anyways, I'll commit the source and go to bed. If it hasn't crashed by the time I get up I'll commit another binary jar. Just remember Arbitrage is designed to take total advantage, it doesn't nibble at your balance, it wolfs it down. I've owned Bhat, Rubles and 6 other currencies, now I own a bunch of GBP all in one night. Almost forgot be sure to clear config on this before running it. And don't be surprised if you end up with a bunch of .dat files. I've set the trading algorithm to learn for an hour if the *.dat files are stale. Simulation mode does not work correctly on this commit. The Arbitrage engine doesn't honor it at all and there is a possibility a trade could occur in the few ms it takes to make a decision. It's an easy fix but I'm out of caffiene for the night and need to get some sleep. Finally, I have the Arbitrage Engine putting the TradeAgent(s) into and out of simulation mode while it does it's thing. This shouldn't be for more than a few ms every couple of seconds. I did it to keep balances steady while the arbitrage engine does its thing. It puts them back as soon as it's done, but if you happen to see a message about it, that would be the reason why.
|
|
|
|
RicRock
|
|
September 19, 2012, 11:57:52 AM |
|
Apparently, I suck at Eclipse/Maven... will have to wait for binary
|
|
|
|
Raoul Duke
aka psy
Legendary
Offline
Activity: 1358
Merit: 1002
|
|
September 19, 2012, 01:35:20 PM |
|
Eclipse doesn't want to build the jar file. meh Asks for the Launch configuration whose dropdown is greyed out and never activates the "Next" button to get it built.
|
|
|
|
Raoul Duke
aka psy
Legendary
Offline
Activity: 1358
Merit: 1002
|
|
September 19, 2012, 01:40:49 PM |
|
I was able to get a usable launch config by running the main application inside the source (in eclipse), then exporting. I'm betting there's a better way, but it's worked for me.
That's the thing. I followed the instructions posted on the first pages of this thread, but when I try to run Application.java it gives some errors on some Eclipse stuff which is cryptic to me lol
|
|
|
|
Raoul Duke
aka psy
Legendary
Offline
Activity: 1358
Merit: 1002
|
|
September 19, 2012, 02:06:11 PM |
|
I was able to get a usable launch config by running the main application inside the source (in eclipse), then exporting. I'm betting there's a better way, but it's worked for me.
That's the thing. I followed the instructions posted on the first pages of this thread, but when I try to run Application.java it gives some errors on some Eclipse stuff which is cryptic to me lol Do you end up with multiple launch configs for Isis-ATP? I had an issue like that, deleted the project, wiped out my workspace, pulled the project back in, imported through maven, and started over. To save me bungling it up, I now do that for each commit I want to build. I end up with absolutely no launch configs. =/
|
|
|
|
|