forked from hisen630/my_stock
/
download_history_fq_data.py
executable file
·52 lines (40 loc) · 1.5 KB
/
download_history_fq_data.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
#!/usr/bin/env python2.7
#coding=utf-8
import logging
import argparse
import pandas as pd
from pandas import DataFrame
from lib import utils
import lib.mylog
import conf.conf as conf
import tushare as ts
def _downloadFqFactor(codes):
factorDF = DataFrame()
for code in codes:
logging.info("Downloading %s fq factor."%code)
df = ts.stock.trading._parase_fq_factor(code,'','')
df.insert(0,"code",code,True)
df = df.drop_duplicates('date').set_index('date')
factorDF = pd.concat([factorDF, df])
if conf.DEBUG:
break
logging.info("Deleting fq factor.")
utils.executeSQL("delete from t_daily_fqFactor")
logging.info("Saving fq factor.")
factorDF.to_sql(name='t_daily_fqFactor',con=utils.getEngine(), if_exists="append",chunksize=20000)
logging.info("Saved fq factor.")
class HistoryFqFactorDownloader(object):
def __init__(self, interval=10, retryTimes=5):
self.interval = interval if not conf.DEBUG else 1
self.retryTimes = retryTimes
self.stockBasics = utils.downloadStockBasics()
def download(self):
_downloadFqFactor(self.stockBasics.index.values)
if '__main__' == __name__:
parser = argparse.ArgumentParser()
parser.add_argument("-p", "--production", action="store_true", help='''defalt is in debug mode, which only plays a little''')
args = parser.parse_args()
if args.production:
conf.DEBUG = False
downloader = HistoryFqFactorDownloader()
downloader.download()