My favorites | Sign in
Project Home Downloads Wiki Issues Source
Checkout   Browse   Changes    
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
import json, urllib, recfut, sys, os

def generate_sentiment_sparkline(ticker, from_date, to_date, token):
#Do an RF entity lookup
eid = recfut.lookup_id(ticker, token)

#Next, do an aggregate_raw query on that entity ID.
aggquerystring = '{"aggregate":{},"output":{"fields":["positive","negative"]}}'
query = json.loads(aggquerystring)
query["token"] = token
query["aggregate"] = {"entity":{"id":eid}, "document":{"published":{"min":from_date,"max":to_date}}, "name":"daily_330pm"}
res = recfut.query(json.dumps(query))

#Grab our data from the result object.
pos = [r["positive"] for r in res["aggregates"]]
neg = [r["negative"] for r in res["aggregates"]]

#Do a moving average on the data.
n = 20
pos = [sum(pos[i-n:i])/n for i in range(n,len(pos))]
neg = [sum(neg[i-n:i])/n for i in range(n,len(neg))]

minpos,maxpos = min(pos),max(pos)
minneg,maxneg = min(neg),max(neg)

pos = [str(i) for i in pos]
neg = [str(i) for i in neg]

#Set up graph formatting.
graph_params = {
"chs":"200x80",
"cht":"ls",
"chco":"000000,FF0000",
"chds":"%f,%f,%f,%f" % (0.0,maxpos,0.0,maxpos),
"chd":"t:%s|%s" % (",".join(pos), ",".join(neg)),
"chdl":"Positive|Negative",
"chdlp":"b",
"chls":"1|1",
"chma":"5,5,5,5"
}

#Request the chart from Google.
url = "http://chart.apis.google.com/chart"
val = urllib.urlopen(url, data=urllib.urlencode(graph_params))

return val.read()

if __name__ == "__main__":
ticker = "AAPL"
from_date = "2010-05-21"
to_date = "2010-11-21"
token = os.environ['RFTOKEN']

val = generate_sentiment_sparkline(ticker, from_date, to_date, token)

f = open("out.png", "w")
print >>f, val
f.close()

Change log

r172 by evan.sparks on Dec 3, 2011   Diff
Updated sparklines code to point to 330pm
aggregates.
Go to: 
Project members, sign in to write a code review

Older revisions

r156 by evan.sparks on Nov 23, 2010   Diff
Adjusted sparklines to be on the same
vertical scale.
r155 by evan.sparks on Nov 22, 2010   Diff
Adding sparklines example code.
All revisions of this file

File info

Size: 1811 bytes, 58 lines
Powered by Google Project Hosting