Request for feedback: C2 Data API

I’m toying with the idea of providing a simple-to-use API which will allow someone with rudimentary programming skills to pull all sorts of data (formatted in XML) from C2. Data that you might request could include all past trades for systems, system equity data, trade drawdown stats, etc.

My concern is that C2 has a very large database, and it’s growing each day. I’m afraid that the bandwidth and CPU consumption required by this service will be large. Therefore I’m considering charging some sort of modest fee for access to this service.

Before I spend a lot of development time on this project, I’d like to ask your opinion.How much per month (if anything) would you be willing to pay for this service? How many people are interested in this data extraction API? My goal is not to turn this into a giant revenue-generation engine for C2, but rather to make sure that we can pay for the infrastructure necessary to maintain this functionality.

Any feedback will be welcome.



Why not make your database (or parts of it) available for download in some compressed bulk format rather than investing a lot of time in a fancy api?

For example, I noticed that 1,000 individual trades (as shown in the table on this site) would be about 20K in zipped .csv format. You could probably fit the trades of all C2 systems in one file of just a few megabyte and allow people to download it once a week or once a month.

Equity curve data is even simpler. Two years worth of daily data should be less than 1kb per system in zipped .csv format. A file for all systems should probably be about a megabyte in size.

The only effort required on your side would be to write some code that would extract the data from the main database at regular intervals (e.g. once a week) and put it in a bunch of zipped ascii files available for download.

I agree. For all purposes that I can see it would be enough if these files are refreshed on a weekly or monthly basis. I suggest 3 csv files:

1. Trades: Each line corresponds to one trade of one system, and contains the information that you see in the trade details, without possible legs, but including the information that is shown in DD&Risk and RF calculations:

SystemId, Current system name, TradeId, Symbol, Quantity, Price at opening, Date and time of opening, Price at closing, Date and time of closing, P/L, Risk (low/normal/high/v.high/extreme), Worst open drawdown, As % of account equity,

Worst price, Date and time of worst price, Quantity open at time, Average open price at time, Overall realism factor, Volume factor, Limit and stop factor, AutoTrade factor, Avg slippage.

2. Drilldown: Each line corresponds to one executed signal of one trade of one system (i.e. different legs on different lines) and contains:

SystemId, Current system name, TradeId, SignalID, Action (BTO / STC), Quantity, Symbol, Type (@MKT / @LMT / etc), TIF, Date and time posted, Date and time executed, Fill price.

3. Equities: Each line corresponds to one day of one system and contains:

SystemId, Current system name, Date, Equity, Equity adjusted by commissions, Equity adjusted by realism factor, Equity adjusted by realism factor and commissions.

That sounds good to me. Perhaps it might be convenient to have one set of files with the systems that aren’t active anymore (the “archive”), and one set with active systems, and periodically (e.g. twice a year) shift any systems that have become inactive recently to the “archive”.

Just my 2c.

1. It’s better to keep it as simple as it’s possible Something as all trades(not positions) that can be loaded to excel. Majority of C2’s subscribers aren’t teach geeks :wink:

2. No fees. It’s not big deal of bandwinch, but you’ll simplify subscribers their homework in making of their decision. You already provide the info for free and any patient person can have the info already


It would be great to get an RSS feed listing new systems, "new system" being the system that managed to generate 10 signals.