Post
Topic
Board Project Development
Re: FOSS Algo Trading Platform
by
TimOlson
on 04/06/2014, 22:06:13 UTC
I eschew the term "exchange" because none of the providers are actually exchanges– they are broker-dealers with deposit accounts.  Instead, Coin Trader uses the term "Market" which generically may be a broker-dealer or an exchange (although no true exchanges exist yet, AFAIK).

Coin Trader allows you to work with either generic Listings (BTC.USD) or what we call MarketListings which are tied to a specific Market (BITSTAMP:BTC.USD).  In your use case, you will write Esper to capture all Trades which are joined to one of five specific MarketListings, then you will get the individual prices for each Market.  You may then place an Order by specifying a specific MarketListing to trade on a particular Market, or you can place an Order for a Listing which may be spread across Markets, as the order routing engine may decide.

Cryptocoin Partners will be a commercial organization with additional features & services on top of the open source platform, so the packages were migrated to .ORG to emphasize the open-source nature of the released code.  cointrader.org is already taken by someone else, so it is unavailable.  The commercial Cryptocoin Partners company will offer market making and private investment opportunities using our proprietary order routing & machine learning.  We have no intention of crippling the open-source code; we just do not want to make public our own order routing and trading strategies.

The license is Apache 2.0.  I tagged the github project as such but forgot to add a LICENSE.txt file... will do now.

More documentation about the whole system will follow in the next couple weeks as I prepare for the presentation and launch on the 23rd.


This is very cool. Thanks. Some comments:

* as far as I can see there isn't an exchange class. An important and difficult use case is handling N exchanges at the same time. For example say a trader has 1 BTC and wants to exchange for x$, where x = current last price on average over 5 exchanges. Then he wants to issue an order depending on the market rates through an abstractInterface ("routing"). basically the platform provides an abstraction for MTF's. An even more abstract pattern would be routing to exchanges with certain parameters (buy 25% at 4 exchanges each, if they are reliable).

* naming of same packages on this level [1] - what is cryptocoinpartners? what is "module", "bin"?

* I have developed my own semantics which I will publish in 1-2 months. Interoperability will become more important over time. There is certainly a lot to be done in this area, and I'm glad there are these opensource projects. There were are a couple of closed source ones, which misses the point.

* License?

[1]
https://github.com/timolson/cointrader/tree/master/src/main/java/org/cryptocoinpartners