Friday, October 8, 2010

Recorded Future Day Trading

At Recorded Future, we often get asked how our news analytic technology can fit into an automated trading strategy. The answer: We offer a rich web service API that provides near real-time access to content as it is processed by our system. We've just posted some example R code to our Google Code site which illustrates how one might incorporate our API into this kind of strategy. At a high level, the code works as follows:

1) Load up a query which monitors for new content related to S&P 500 companies.
2) Every five minutes, poll the Recorded Future API for new content related to these companies (on the basis of the time the document was analyzed by our system).
3) If we see a new occurrence of one of these companies in source content, check to see whether that occurrence matches the following criteria:
  • Is this content truly relevant to the company at hand (using our new "relevance" score)
  • Does the content have sufficient positive (and insufficient negative) sentiment associated with it?
  • Does the company in question have sufficiently high momentum?
  • Is the company NOT already in our portfolio?
4) If the occurrence matches those criteria, we execute a paper "buy" order on the basis of current stock price. (Using near real-time quotes from Google Finance)
5) At the end of the day, get closing prices for every stock in our paper portfolio, and execute a paper sell at this price.
6) Calculate profits and losses on the basis of the trades made during the day.

Let's have a look at the results of this strategy, which was run on live data from Friday, October 1, 2010:


ticker

trade_time

price

close

returns(%)

1

GE

09-55-00

16.48

16.36

-0.728155340

2

ORCL

09-55-00

27.37

27.24

-0.474972598

3

GOOG

09-55-00

528.17

525.62

-0.482799099

4

WFC

10-00-00

25.42

25.56

0.550747443

5

BAC

10-15-00

13.15

13.30

1.140684411

6

T

10-20-00

28.82

28.81

-0.034698126

7

MSFT

10-25-00

24.50

24.38

-0.489795918

8

AMZN

10-30-00

152.99

153.71

0.470618995

9

KFT

10-40-00

30.92

31.21

0.937904269

10

AAPL

10-45-00

283.13

282.52

-0.215448734

11

WMT

10-50-00

53.29

53.36

0.131356727

12

HPQ

11-00-00

40.86

40.77

-0.220264317

14

MOT

11-20-00

8.55

8.56

0.116959064

15

VZ

11-30-00

32.87

32.89

0.060845756

16

S

11-35-00

4.65

4.72

1.505376344

17

F

12-10-00

12.38

12.26

-0.969305331

18

YHOO

12-15-00

14.18

14.27

0.634696756

19

GS

13-05-40

147.44

147.70

0.176342919

20

INTC

13-25-49

19.29

19.32

0.155520995

21

C

15-01-14

4.09

4.09

0.000000000

22

IBM

15-51-26

135.65

135.64

-0.007371913

23

NYT

15-51-26

7.83

7.85

0.255427842



You can see that we executed 23 "buys" at various times throughout the day. Our average profits were +11bp/trade, with our best being +115bp, worst being -96bp.

This is obviously a naive trading strategy, and customers are using much more sophisticated approaches. This approach does not include trading costs, carries with it an extremely small sample size, and has no risk control parameters. The purpose of this example is to show how one could include the Recorded Future API into a live trading strategy and to make available sample code for performing these operations. Via the API, we also offer this data historically for the purposes of modeling and strategy building. Take a look at our Google Code Site for more information about our API and contact sales@recordedfuture.com for more information about getting access.

0 comments:

Post a Comment