Exemple #1
0
def YHOOF_HistP_csv_to_SQLprep(symbol, has_header=True):
    data = get_histPcsv( symbol )
    if has_header:
        header = data[0]
        del data[0]
    data = [YHOOF_DayQuote(header,row) for row in data ] 
    data = [row + [symbol,] for row in data ]
    return data
Exemple #2
0
def getasave_tocsv(ticker,dirout='./rawdata/YHOOFHISTP/'):
    if not os.path.exists(dirout):
        os.makedirs(dirout)
    data = get_histPcsv(ticker)
    with open(dirout+ticker+'_YHOOF_HISTP'+'.csv', "wb") as f:
        writer = csv.writer(f)
        writer.writerows(data)
    return data
Exemple #3
0
def getasave_tocsv(ticker, dirout='./rawdata/YHOOFHISTP/'):
    if not os.path.exists(dirout):
        os.makedirs(dirout)
    data = get_histPcsv(ticker)
    with open(dirout + ticker + '_YHOOF_HISTP' + '.csv', "wb") as f:
        writer = csv.writer(f)
        writer.writerows(data)
    return data
Exemple #4
0
def YHOOF_HistP_csv_to_SQLprep(symbol, has_header=True):
    data = get_histPcsv(symbol)
    if has_header:
        header = data[0]
        del data[0]
    data = [YHOOF_DayQuote(header, row) for row in data]
    data = [row + [
        symbol,
    ] for row in data]
    return data
Exemple #5
0
def insc_SymbHP_daterange(ticker,startdate,enddate):
    data = get_histPcsv(ticker,startdate,enddate)
    print "%s obtained" % ticker
    del data[-1]
    headers = data[0]
    del data[0]
    data = [YHOOF_DayQuote(headers,row) for row in data ] 
    data = [row + [ticker,] for row in data ]
    output = []
    headers = [header.replace(' ','') for header in headers] # we have to make sure 'Adj Close' column is called 'AdjClose' for SQLAlchemy
    for row in data:
        output.append(YHOOF_HISTP_datapt(Symbol=ticker, **dict(zip(headers,row))) )
    return output
Exemple #6
0
def insc_SymbHP_daterange(ticker, startdate, enddate):
    data = get_histPcsv(ticker, startdate, enddate)
    print "%s obtained" % ticker
    del data[-1]
    headers = data[0]
    del data[0]
    data = [YHOOF_DayQuote(headers, row) for row in data]
    data = [row + [
        ticker,
    ] for row in data]
    output = []
    headers = [
        header.replace(' ', '') for header in headers
    ]  # we have to make sure 'Adj Close' column is called 'AdjClose' for SQLAlchemy
    for row in data:
        output.append(
            YHOOF_HISTP_datapt(Symbol=ticker, **dict(zip(headers, row))))
    return output
Exemple #7
0
def quick_update_HP():
    start0 = time.clock()
    lastdate = session.query(func.max(YfHP_pt.Date)).filter(YfHP_pt.Symbol.match("AAPL")).first()
    end0 = time.clock()
    print "Querying SQL database for last date took this long: ", (end0-start0)*10000

    lastdate = lastdate[0]
    presentdate = datetime.today().date()
    if len(get_histPcsv("AAPL", str(lastdate), str(presentdate))) <= 2:
        print "Database is updated with all current historical prices from Yahoo! Finance \n"
        return 0 
    else:
        targetlst = session.query(Symbole).all()

        start1 = time.clock()
        for ticker in targetlst:
            try:
                output = insc_SymbHP_daterange( ticker.symbole,str(lastdate),str(presentdate))
                session.add_all(output)
                print "Adding %s to session" % ticker
                session.commit()
                
                end1 = time.clock()
                print "Adding into SQL database took this long: ", (end1 - start1)*10

            except urllib2.HTTPError:
                print "Not here: %s" % ticker    

            except httplib.IncompleteRead as e:
                print "Incomplete Read (???): %s" % ticker.symbole

            except sqlalchemy.exc.ProgrammingError as e:
                print output
                raise e 
                
        return output