/
scan-this-funds.py
63 lines (51 loc) · 1.71 KB
/
scan-this-funds.py
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
59
60
61
62
63
# -*- coding: utf-8 -*-
import LoadCode
import StockSignal
import StockPrice
import pandas
funds=LoadCode.load_etf_code()
summary=None
ss_funds=[[510050, '50ETF'],
[510300, '300ETF'],
[510500, '500ETF'],
[511010, '国债ETF'],
[518800, '黄金基金'],
[159920, '恒生ETF'],
[510900, 'H股ETF'],
]
StockPrice.price_func='get_hist_data'
for i in ss_funds:
try:
ret = StockSignal.stock_signal_w_new_find_candidate('%s.SS' % i[0])
except Exception, ex:
print i[1]
ret = None
if not isinstance(ret, type(None)) :
ret.insert(0,'code', i[0])
ret.insert(ret.columns.size,'name', i[1])
if not isinstance(summary, type(None)):
# summary=pandas.DataFrame.append(summary,ret)
summary=pandas.concat([ret, summary])
else:
summary=ret
sz_funds=[[159915, '创业板'],
[159902, '中小板'],
[150023, '深成指B'],
]
for i in sz_funds:
try:
ret = StockSignal.stock_signal_w_new_find_candidate('%s.SZ' % i[0])
except Exception, ex:
print i[1]
ret = None
if not isinstance(ret, type(None)) :
ret.insert(0,'code', i[0])
ret.insert(ret.columns.size,'name', i[1])
if not isinstance(summary, type(None)):
summary=pandas.concat([ret, summary])
else:
summary=ret
if not isinstance(summary, type(None)) :
result=summary[['code','signal', 'buy', 'sell','profit','name']].sort_values(['signal'])
result.to_csv('scan-this-funds-candidates-%s.csv' % pandas.datetime.now().strftime('%Y-%m-%d'))
print '\n',result