timolson / cointrader

Coin Trader is a Java-based backend for algorithmically trading cryptocurrencies. It provides data collection and export, complex event processing and triggering, and backtesting - paper trading - live trading.
Other
450 stars 166 forks source link

CommandBase.epl not found #129

Closed chengyezhao closed 8 years ago

chengyezhao commented 8 years ago

Hi here, I have started the console and try to enter command like "listings", "market", etc., but i get errors on all these command like "no module file found for MarketsCommand.epl on class path. Please ensure MarketsCommand.epl is in the resources directory."

douggie commented 8 years ago

Hi,

this is just informational, it is saying that module does not have a esper epl file associated with it, which is expected.

I should proably take out hte log entry as it creates confusion.

On Thu, Sep 24, 2015 at 7:43 AM, chengyezhao notifications@github.com wrote:

Hi here, I have started the console and try to enter command like "listings", "market", etc., but i get errors on all these command like "no module file found for MarketsCommand.epl on class path. Please ensure MarketsCommand.epl is in the resources directory."

— Reply to this email directly or view it on GitHub https://github.com/timolson/cointrader/issues/129.

crypto-sporidium commented 8 years ago

Hi guys interesting project. Yip this is a bit of wild one. Just trying to understand what all this debug output means. What is .... c.e.esper.event.bean.PropertyHelper - .getAccessors Unable to obtain CGLib fast method implementation ??

crypto-sporidium commented 8 years ago

no module file found for ListingsCommand.epl on classpath. ? Ok how do I add a listing

douggie commented 8 years ago

HI, listings are added in the properties file,

like this:

xchange.bitstamp.class=com.xeiam.xchange.bitstamp.BitstampExchange

xchange.bitstamp.streaming.config.class=com.xeiam.xchange.bitstamp.service

.streaming.BitstampStreamingConfiguration

xchange.bitstamp.rate.queries=1

xchange.bitstamp.rate.period=5

xchange.bitstamp.listings=BTC.USD

On Sun, Oct 25, 2015 at 3:20 AM, Dave Abelgo notifications@github.com wrote:

no module file found for ListingsCommand.epl on classpath. ? Ok how do I add a listing

— Reply to this email directly or view it on GitHub https://github.com/timolson/cointrader/issues/129#issuecomment-150889089 .

crypto-sporidium commented 8 years ago

Thanks man. I spent some more time looking into the project and found that in the ReadMe. Unfortunately I'm still having a lot of dependency issues now.

I wonder did they change name of the bitstamp Exchange class in xeiam.xchange.bitstamp. ? I'm not an expert in maven but I think I have added xeiam.xchange.bitstamp.* to my uber cointrader-0.3.0-SNAPSHOT-jar-with-dependencies.jar There just dosen't seem to be a com.xeiam.xchange.bitstamp.BitstampExchange class present in that jar.

java.lang.ClassNotFoundException: com.xeiam.xchange.bitstamp.BitstampExchange at java.net.URLClassLoader.findClass(URLClassLoader.java:381) ~[na:1.8.0_60] at java.lang.ClassLoader.loadClass(ClassLoader.java:424) ~[na:1.8.0_60] at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331) ~[na:1.8.0_60] at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ~[na:1.8.0_60] at java.lang.Class.forName0(Native Method) ~[na:1.8.0_60] at java.lang.Class.forName(Class.java:264) ~[na:1.8.0_60] at com.xeiam.xchange.ExchangeFactory.createExchange(ExchangeFactory.java:85) ~[cointrader-0.3.0-SNAPSHOT-jar-with-dependencies.jar:na] ... 24 common frames omitted

crypto-sporidium commented 8 years ago

Ok 3 hours later... Lots of problems, Short answer was the com.xeiam.xchange.bitstamp.jar from the online repo was empty.

Had to manually installs bitstamp xeiam.xchange.bitstamp sources from http://search.maven.org/#search|ga|1|xeiam%20xchange-bitstamp

then manually add built jar finally check build that is actually got there. ...

jar -tf ./target/cointrader-0.3.0-SNAPSHOT-jar-with-dependencies.jar | grep BitstampExchange com/xeiam/xchange/bitstamp/BitstampExchange.java

crypto-sporidium commented 8 years ago

Spoke too soon. Seriously WTF do I have to do to add the #@$%@#$#@ lib to the classpath ??? Its clearly in the jar that is being run ???

jar -tf ./target/cointrader-0.3.0-SNAPSHOT-jar-with-dependencies.jar | grep com.xeiam.xchange.bitstamp.BitstampExchange com/xeiam/xchange/bitstamp/BitstampExchange.java

java.lang.ClassNotFoundException: com.xeiam.xchange.bitstamp.BitstampExchange

douggie commented 8 years ago

HI Dave,

The process should be (in your favoured IDE) 1) import the source by cloning the git repo 2) once the repo is in, right click install maven projects 2) right click the root and run 'maven build' 3) refesh the project 4) launch the application with the parameters save-data

Does it work if you run maven install from the command line root directory?

The libs are pulled from https://oss.sonatype.org/content/repositories/snapshots, which is set in the pom.xml, currently we use version 3.1.0, however I seen this has been removed and replaced with version 4.0.0.

I have checked in a new pom.xml, or you can just change the xchange.version from 3.1.0 to 4.0.0-SNAPSHOT.

On Mon, Oct 26, 2015 at 5:37 AM, Dave Abelgo notifications@github.com wrote:

Spoke too soon. Seriously WTF do I have to do to add the #@$%@#$#@ lib to the classpath ??? Its clearly in the jar that is being run ???

jar -tf ./target/cointrader-0.3.0-SNAPSHOT-jar-with-dependencies.jar | grep com.xeiam.xchange.bitstamp.BitstampExchange com/xeiam/xchange/bitstamp/BitstampExchange.java

java.lang.ClassNotFoundException: com.xeiam.xchange.bitstamp.BitstampExchange

— Reply to this email directly or view it on GitHub https://github.com/timolson/cointrader/issues/129#issuecomment-151029278 .

crypto-sporidium commented 8 years ago

Man finally yes... !! got all the dependencies working

crypto-sporidium commented 8 years ago

So just to clarify. To watch a listing I call the watch BTC.USD for example But that will not save any data into the DB ? I have to start another process usign ./cointrader.sh save-data . to put any thing into the db ??

douggie commented 8 years ago

HI,

Good news!

There are different modes of operations, saving data, running a back test, running a live trading algo, running a command line, these are passed into the Jvm as start up parameters.

If you start the JVM with the folowing:

./cointrader.sh save-data

it will read the settings from your properties and save data for those markets/listings.

On Mon, Oct 26, 2015 at 7:27 AM, Dave Abelgo notifications@github.com wrote:

So just to clarify. To watch a listing I call the watch BTC.USD for example But that will not save any data into the DB ? I have to start another process usign ./cointrader.sh save-data . to put any thing into the db ??

— Reply to this email directly or view it on GitHub https://github.com/timolson/cointrader/issues/129#issuecomment-151049061 .

crypto-sporidium commented 8 years ago

Hi douggie. Ok I've been looking at the code and got some understanding of how this thing is set up. I built a similar project a number of years back for trading fx. At moment I use a sort of finite state machine that responds to signals from a model to run strategies. The exchange connectivity was done before the XChange project was off the ground so its not as versatile. I was thinking about either switching it over to use Xchange or trying to add it as a module in cointrader. However some of the stuff in cointrader is maybe not quite there yet. Things like position keeping. The Xchange wallet concept is probably also a bit out of date and not really extendable beyond crypto currency.... Any way if your interested I would be keen to have have a quick chat about it before I dive in with a huge fork that is impossible to merge back. Would be keen to have a chat if you ping me dave at abelgo dot com

douggie commented 8 years ago

Hi Dave,

I need to do a check in, I have refactored all the persistence to use the GUICE persist modules. However I think most things you need are there already I will set up a chat. You around after 9pm LN tonight via google hang out.

As you have noted, the core elements are asset agnostic, but to expand outside FX would require a bit of work on the instruments to ensure we have the other static data elements, not a big issue.

It would be be pretty easy to plug in another execution module such as TT or FIX, and just load it into the GUICE context.

I think the key areas that need a would be good for another pair of hands are around the following:

Happy to help you get some basic strategies working and give you some examples.

Regards

Douggie

On Tue, Oct 27, 2015 at 2:29 AM, Dave Abelgo notifications@github.com wrote:

Hi douggie. Ok I've been looking at the code and got some understanding of how this thing is set up. I built a similar project a number of years back for trading fx. At moment I use a sort of finite state machine that responds to signals from a model to run strategies. The exchange connectivity was done before the XChange project was off the ground so its not as versatile. I was thinking about either switching it over to use Xchange or trying to add it as a module in cointrader. However some of the stuff in cointrader is maybe not quite there yet. Things like position keeping. The Xchange wallet concept is probably also a bit out of date and not really extendable beyond crypto currency.... Any way if your interested I would be keen to have have a quick chat about it before I dive in with a huge fork that is impossible to merge back. Would be keen to have a chat if you ping me dave at abelgo dot com

— Reply to this email directly or view it on GitHub https://github.com/timolson/cointrader/issues/129#issuecomment-151347828 .