Pages:
Author

Topic: Isis ATP [Automated Trading Platform] - Discussion - page 13. (Read 45225 times)

legendary
Activity: 2856
Merit: 1520
Bitcoin Legal Tender Countries: 2 of 206
hero member
Activity: 896
Merit: 532
Former curator of The Bitcoin Museum
Keenly following this thread!

Have given this program a go and I'm having trouble getting it going. Sad

What are some examples of Bid Logic & Ask Logic I could use.
sr. member
Activity: 248
Merit: 252
1. Collect underpants 2. ? 3. Profit
Some recent self-explanatory commits:

commit 097ee2a89da968fc4679a35b9c6f0e58c517df5b

    Implemented framework for using multiple exchanges

commit bb5960ad2d359978d142a56aacc8a591924db782

    Added BTC-e exchange

commit b62a614a3423cc29b6697ea7f676384d438a4e5c

    Added Bitstamp exchange


It's now relatively easy to add exchanges so more to come.
legendary
Activity: 965
Merit: 1000
I defined myself some basic interfaces like TradeSite, Currency, CurrencyPair, Depth, Trade etc etc.

If it helps you, I'm willing to share these parts with you. But since I also work on bot stuff, I don't want to release all my code yet (it doesn't work yet anyway).

Ciao,
Andreas
sr. member
Activity: 248
Merit: 252
1. Collect underpants 2. ? 3. Profit
Aido, there's another lib like mine now. It's called xchange, or so. There's a thread in the german subforum.

Thanks for the tip. I coudn't find the XChange thread you mention. But if it's the same as this XChange https://github.com/timmolter/XChange or http://xeiam.com/xchange.jsp, Aido/Isis ATP relies very heavily on this. This library has been extended a lot recently, allowing a lot more exchanges to be used, hence my previous statement:

I am now looking to get this thing working on multiple exchanges while at the same time tweaking it for MtGox.

Changing the code from single to dual exchange is the hard bit. But, once that's done adding more exchanges should be straight forward.......in theory!
legendary
Activity: 965
Merit: 1000
Aido, there's another lib like mine now. It's called xchange, or so. There's a thread in the german subforum.

My current bot algo is already too complex to be used with you concept, as it seems. So the language still makes sense to me. But I'll hardcode it for now to test the idea.
sr. member
Activity: 248
Merit: 252
1. Collect underpants 2. ? 3. Profit
Hi daybyter,

Congrats Aido! I studied your readme, and your ideas sound very promising.

Thanks.


Would be cool, if we could collaborate on such a language or system

I didn't see to need to develop an entire new trading language or syntax when some boolean logic statements would suffice.

Maybe in the future, if I need more complex statements, there may be a need for a more comprehensive framework.



I am now looking to get this thing working on multiple exchanges while at the same time tweaking it for MtGox.
legendary
Activity: 965
Merit: 1000
Congrats Aido! I studied your readme, and your ideas sound very promising. I hope to get there with my lib, too.
sr. member
Activity: 248
Merit: 252
1. Collect underpants 2. ? 3. Profit
Have now added an MACD algorithm into the mix. See here how to use it:

sr. member
Activity: 350
Merit: 250
This thread has been dead for a couple of weeks but I'll give an update anyway on a fundamental change I have made in recent days.

Trading logic is now dynamic, in that the logic that decides trades is now contained in the configuration file rather than being hardcoded. This gives the user far more flexibility with what algorithms to use in a trade decision.

An explanation is contained in the README found here:


And the latest jar file may now be found here:


Trading logic may be changed on-the-fly with no need to restart the application if the configuration is changed.

I suggest using the --clear-config=true option to reset the configuration and input the new values

I'm still following, and occasionally running this. I'm really low on BTC until ASIC's eventually arrived (I'm SO glad I diversified my orders, at least I know I will have something, whenever it gets around to shipping) but I plan on feeding a small bot once it's a smaller portion of my portfolio.

I really appreciate the continued work on this and think you just made an much needed improvement that should allow more to play with this more easily. If there is a relatively simple set of parameters that anyone has Identified and would liek to share as a starting point for others,

Personally my settings have gotten so mangled that it doesn't fire for any conditions, so I'll be starting over again.

Thanks!
sr. member
Activity: 248
Merit: 252
1. Collect underpants 2. ? 3. Profit
This thread has been dead for a couple of weeks but I'll give an update anyway on a fundamental change I have made in recent days.

Trading logic is now dynamic, in that the logic that decides trades is now contained in the configuration file rather than being hardcoded. This gives the user far more flexibility with what algorithms to use in a trade decision.

An explanation is contained in the README found here:


And the latest jar file may now be found here:


Trading logic may be changed on-the-fly with no need to restart the application if the configuration is changed.

I suggest using the --clear-config=true option to reset the configuration and input the new values
legendary
Activity: 965
Merit: 1000
Would be cool, if we could collaborate on such a language or system, Aido.

I already got some Drools controlled trading decisions running, but they are pretty much unreadable. Therefore the Antlr idea...

sr. member
Activity: 248
Merit: 252
1. Collect underpants 2. ? 3. Profit
I'm curious, is anyone turning a regular profit running Aido's version?

I've been testing various configuration combinations on and off over the past couple of week. I can now say that with the correct configuration aido.jar can return a modest profit.



I was going to drop this project but in the past few days I see that it can make a profit. So I may continue.

The core of the trend trade decision making logic is contained in the following two lines of code:

Code:
evalBid = (adsUp && ((emaDown || !useEMA) && (smaDown || !useSMA))) || (!useADS && ((emaUp && (smaDown || !useSMA)) || (!useEMA && smaUp)));

evalAsk = (adsDown && ((emaUp || !useEMA) && (smaUp || !useSMA))) || (!useADS && ((emaDown && (smaUp || !useSMA)) || (!useEMA && smaDown)));

It may be possible to use ANTLR to parse similar, more readable boolean logic from the config file or other file. This will then give the user more control over the use of the different trading algorithms rather than having it hardcoded.
sr. member
Activity: 248
Merit: 252
1. Collect underpants 2. ? 3. Profit
I'm curious, is anyone turning a regular profit running Aido's version?

Unfortunately not. With the configuration I am currently using it seems to be slowly losing a cent here and a cent there. Sometimes a trade makes a profit but overall its down.

I am currently changing the Profit/Loss reporting so it reports the entire starting balance as a normalised BTC balance (converting all wallets to BTC using then current ask price). It will then compare this starting balance to the BTC equivalent balance after a trade.

So, once I get the profit/loss output sorted I can then better test the different options to optimise for a profit.
legendary
Activity: 2955
Merit: 1049
yea the 403 error is the api keys are not correct, please check the keys CAREFULLY. Check the "O" and "0"! the key has to be entered exact.
I have tried it with a new api key and secret -> have always copied and pasted and checked -> same error again...
(perhaps a locales problem? Gox@Windows and Me@Linux?)
sr. member
Activity: 462
Merit: 250
ok thanks for the diagram on this all works, like I said I am gonna look thru code to understand how to initialize the vars. that are in use.
sr. member
Activity: 248
Merit: 252
1. Collect underpants 2. ? 3. Profit
When using arb, does it constantly looking for arb opportunities?

All trading threads are triggered when a ticker is received by the StreamingTickerManager. The flow is as follows. The StreamingTickerManager receives a tick and triggers the ArbitrageEngine thread which looks for an arbitrage opportunity. If it finds one, it first blocks the TrendTradingAgent from performing a trade, then performs an arbitrage trade, then re-enables TrendTradingAgent trading.

Along with the ArbitrageEngine, the StreamingTickerManager also triggers the TrendObserver thread. The TrendObserver calculates Advance/Decline spread, VWAP, EMA and SMA. The TrendObserver then triggers the TrendTradingAgent which makes a trade decision based on this data.

Simples!  Smiley


Is there anyway to run a P/L since I started? Or for a particular group of time? say like from 00:00 to 23:59 on a particular day.

I haven't looked at the P/L code at all so do not know how it calculates the percentage. All I know is that P/L is not stored in a file so it is calculated only for the instance of aido.jar that is currently running. At the moment there are a few connection issues with aido.jar. Connection drops every couple of hours. Having to restart aido.jar every so often messes up the P/L calculations.
sr. member
Activity: 462
Merit: 250
thank you aido, I was just curious if I was doing something wrong or get the config wrong, but it appears to be working like you stated aido, just mostly selling today. I was unsure if this was working correctly, and yes I did grab the latest version. When using arb, does it constantly looking for arb opportunities? I also grabbed the source and I am slowly going thru to "understand" what everything does. Man talking about jumping straight into the DEEP end of the pool! Will try to help out as much as I can with the code. If I modify anything I will drop the code to you and let you decide if you want to use it.

EDIT: Is there anyway to run a P/L since I started? Or for a particular group of time? say like from 00:00 to 23:59 on a particular day.
sr. member
Activity: 248
Merit: 252
1. Collect underpants 2. ? 3. Profit
I have had this up and running for last few hours and no trades at all. Used conservative and max 3, min 0.1   . "market trend is up" , "there just isn't enough momentum to trade at this time". Is this correct for others?

I have had it running for several hours today and it has executed several trades. Although, I have been using the high risk option and a much lower minimum. The Profit/Loss output is reporting a small loss at the moment. It has been doing a lot of selling. Hopefully this will turn around soon when the market turns and it starts to buy.


edit2: java -jar aido --debug-live=true    new one

If you are using --debug-live=true you are probably not using the most recent version. --debug-live was removed in favour of the more descriptive --simulation-mode.

There have been some fairly fundamental changes to Isis ATP over the past week or so. Please read https://github.com/aido/IsisATP#isis-atp.

If you download and run the most recent version please use java -jar aido.jar --clear-config=true to update your configuration settings.


anything special need to be setup to use arb thru gox??

No, nothing special. Arbitrage can either be enabled through the configuration settings or by using --use-arbitrage=true on the command line.
Pages:
Jump to: