Pages:
Author

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

full member
Activity: 154
Merit: 102
Now it works. Building a Market profile. It started doing it right after the configuration. 55min remaining it says.
Do I need to restart it so it trades live? Will it need to build the profile again after I restart it, or can I let it run and restart it on live mode when it's ready?
From the commit:
Several bug fixes. Also added learning mode so it doesn't flush all your bitcoins to local at startup anymore if the market is doing something nuts.

Seems it will run a check each time it starts to make sure the market isn't in freefall.

Close, learning mode is to prevent causing a freefall.  Basically % change to vwap means nothing for about the first 5 or 10 minutes since there isn't enough data to truly see the trendline.  However during those first few minutes a 10% price change has the potential to tell the app to sell all it's currency through to btc or sell all btc to local.

It happened to me, stupid thing sold BOTH my bitcoins while the market was actually heading down for a few minutes instead of up.
Figured I'd save everyone else the hassle by forcing the bot to get more information before making a trading decision.
full member
Activity: 154
Merit: 102
Something is wrong with the Profit & Loss calculations.

Code:
Sep 16, 2012 12:17:39 AM org.open.payment.alliance.isis.atp.TradingAgent evalAsk
INFO: Attempting to sell 0.0000 of 0.9399 BTC available
Sep 16, 2012 12:17:39 AM org.open.payment.alliance.isis.atp.TradingAgent evalAsk
INFO: 0.0000 was less than the configured limit of 0.01
Increasing order size to 0.01
Sep 16, 2012 12:17:39 AM org.open.payment.alliance.isis.atp.TradingAgent marketOrder
INFO: Successfully sold 0.01 at current market price.
Sep 16, 2012 12:17:39 AM org.open.payment.alliance.isis.atp.TradingAgent marketOrder
INFO: Current P/L: BTC 0.9399 %0
Sep 16, 2012 12:17:39 AM org.open.payment.alliance.isis.atp.TradingAgent marketOrder
INFO: Current P/L: USD -11.31077 %125.24200

P/L for our purposes is defined as percentage change to balance from application start until current time.

Problem is mine doesn't quite look right.  It might be that I started the application with a 0 BTC balance.  But would anyone else mind looking in AccountManager at CalculatePL and seeing if the algorithm for P/L is correct?
full member
Activity: 154
Merit: 102
can i change the registry while the bot is running ? or i need to restart ?

You can change it while it's running.  It does a sync every couple of minutes.  That's why I went with the Preferences API rather than a normal config file.
full member
Activity: 154
Merit: 102
Even after that fix I am still getting this error; can't determine why (the funds are certainly there)

Code:
Sep 15, 2012 9:23:18 PM org.open.payment.alliance.isis.atp.TradingAgent evalAsk
INFO: 0.00000000 was less than the configured limit of 0.001
Increasing order size to 0.001
Sep 15, 2012 9:23:18 PM org.open.payment.alliance.isis.atp.TradingAgent marketOrder
SEVERE: Failed to sell 0.001 at current market price.
Please investigate

I do use a yubikey. Does this matter?

I found the problem
You need to trade a minimum of 0.01BTC or basically 1 bit cent, so edit your configuration.
full member
Activity: 154
Merit: 102
Is there a way to edit the config using a text editor?
It's a pain to config everything when you just want to change the algorithm or a single value.
Or maybe that's just the way I'm used to do stuff lol

Yes on linux it will be in the .java folder under your home directory
 
Code:
~/.java/.userPrefs/org/open/payment/alliance/isis/atp/prefs.xml

For windows it's going to be somewhere in the registry, just search for your API key.
legendary
Activity: 1358
Merit: 1002
Is there a way to edit the config using a text editor?
It's a pain to config everything when you just want to change the algorithm or a single value.
Or maybe that's just the way I'm used to do stuff lol
full member
Activity: 154
Merit: 102
same for me, only works when i add --clear-config=true

For some reason the build process isn't packaging the license file correctly.  I'll look into it.  In the meantime use the debug-live flag for now to start it in live mode.
legendary
Activity: 1358
Merit: 1002
It only works when there is an option passed.

If I do
java -jar isis.jar
it gives me an error.
Code:
nullException in thread "main" java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main(JarRsrcLoader.java:58)
Caused by: java.lang.NullPointerException
at org.open.payment.alliance.isis.atp.Application.showAgreement(Application.java:110)
at org.open.payment.alliance.isis.atp.Application.start(Application.java:74)
at org.open.payment.alliance.isis.atp.Application.main(Application.java:52)
... 5 more


If I pass an option it runs. It did run when I passed the --clear-config=true or --debug-live=true
full member
Activity: 154
Merit: 102
Now it works. Building a Market profile. It started doing it right after the configuration. 55min remaining it says.
Do I need to restart it so it trades live? Will it need to build the profile again after I restart it, or can I let it run and restart it on live mode when it's ready?
If you started it in live mode its still in live mode.  Its just not going to execute any trades until it builds the market profile which means it needs the last hour of market data with no gaps.

The profile has to be rebuilt each time the application is started for now.  However in the future I may split the trend observer into a stand alone daemon so the trading agent can be swapped out or whatever.  Anyways the profile is live data and can't have any significant gaps.

Perhaps a better way would be to have the trend observer pull in historical data from some source at initialization time.  Ill look into both of these options and see what I can do.
legendary
Activity: 1358
Merit: 1002
Now it works. Building a Market profile. It started doing it right after the configuration. 55min remaining it says.
Do I need to restart it so it trades live? Will it need to build the profile again after I restart it, or can I let it run and restart it on live mode when it's ready?
full member
Activity: 154
Merit: 102
It's not saying that it doesn't know how, it's saying that the division is undefined. Probably that means you tried to do a 0/0.

By the way this is running fine for me so far, though it hasn't made any trades yet.

I was able to check this.  I forced it to zero and tried and it threw a divide by zero exception.
I think the problem is actually a non-terminating decimal expansion.

I'm looking into how to guard against that.  Probably with rounding since there is only a certain amount of precision we really need to worry about.

n / 0 results in division by zero
0 / 0 results in division undefined

Example: http://ideone.com/VUfTA

Interesting.  I've added code to guard for that now though.  It should be in the latest commit.
full member
Activity: 154
Merit: 102
Even after that fix I am still getting this error; can't determine why (the funds are certainly there)

Code:
Sep 15, 2012 9:23:18 PM org.open.payment.alliance.isis.atp.TradingAgent evalAsk
INFO: 0.00000000 was less than the configured limit of 0.001
Increasing order size to 0.001
Sep 15, 2012 9:23:18 PM org.open.payment.alliance.isis.atp.TradingAgent marketOrder
SEVERE: Failed to sell 0.001 at current market price.
Please investigate

I do use a yubikey. Does this matter?

Maybe, but I would check the permissions for your API key and ensure it's enabled for trading as well as information.
full member
Activity: 154
Merit: 102
There is an error in TradingAgent:

Code:
                                                if(qtyToSell.compareTo(minBTC) < 0) {
log.info(qtyToSell.toPlainString() + " was less than the configured limit of "+minBTC.toPlainString()+"\nIncreasing order size to "+minBTC.toPlainString());

}

I believe there is a missing `qtyToSell = minBTC` here.

Good catch!  Fixed in latest commit.
newbie
Activity: 32
Merit: 0
Even after that fix I am still getting this error; can't determine why (the funds are certainly there)

Code:
Sep 15, 2012 9:23:18 PM org.open.payment.alliance.isis.atp.TradingAgent evalAsk
INFO: 0.00000000 was less than the configured limit of 0.001
Increasing order size to 0.001
Sep 15, 2012 9:23:18 PM org.open.payment.alliance.isis.atp.TradingAgent marketOrder
SEVERE: Failed to sell 0.001 at current market price.
Please investigate

I do use a yubikey. Does this matter?
newbie
Activity: 32
Merit: 0
There is an error in TradingAgent:

Code:
                                                if(qtyToSell.compareTo(minBTC) < 0) {
log.info(qtyToSell.toPlainString() + " was less than the configured limit of "+minBTC.toPlainString()+"\nIncreasing order size to "+minBTC.toPlainString());

}

I believe there is a missing `qtyToSell = minBTC` here.
newbie
Activity: 32
Merit: 0
It's not saying that it doesn't know how, it's saying that the division is undefined. Probably that means you tried to do a 0/0.

By the way this is running fine for me so far, though it hasn't made any trades yet.

I was able to check this.  I forced it to zero and tried and it threw a divide by zero exception.
I think the problem is actually a non-terminating decimal expansion.

I'm looking into how to guard against that.  Probably with rounding since there is only a certain amount of precision we really need to worry about.

n / 0 results in division by zero
0 / 0 results in division undefined

Example: http://ideone.com/VUfTA
full member
Activity: 154
Merit: 102
It's not saying that it doesn't know how, it's saying that the division is undefined. Probably that means you tried to do a 0/0.

By the way this is running fine for me so far, though it hasn't made any trades yet.

I was able to check this.  I forced it to zero and tried and it threw a divide by zero exception.
I think the problem is actually a non-terminating decimal expansion.

I'm looking into how to guard against that.  Probably with rounding since there is only a certain amount of precision we really need to worry about.
full member
Activity: 154
Merit: 102
I have not been able to build in eclipse, but I don't really know what the hell I'm doing.

Will update with any successful trade.

There is an eclipse project file included, but this thing isn't going to build unless you have maven installed. 
I'm using Maven for dependency management.

So to build it you will need the m2e plugin installed for eclipse.

After you install the plugin, just go to File->Import->Maven->Import Existing Maven Project

Then select the OpenPay/Isis-ATP directory and it should find the pom file and build it for you.

full member
Activity: 154
Merit: 102
As far as I can tell from the code, it sets sim mode in the constructor of Application and then there is literally no code that ever changes that flag. (There is a single function that touches it which never gets called.)

It would require a code change to get out of simulation mode.

Yeah when I made it multi-currency enabled I fat fingered a delete and removed that.  It's back now in the next commit.
Code:
if(config.get("ApiKey", null) == null) {
interview();
}

should read
Code:
if(config.get("ApiKey", null) == null) {
interview();
}else {
simModeFlag = showAgreement();
}
newbie
Activity: 32
Merit: 0
As far as I can tell from the code, it sets sim mode in the constructor of Application and then there is literally no code that ever changes that flag. (There is a single function that touches it which never gets called.)

It would require a code change to get out of simulation mode.
Pages:
Jump to: