Example #1
0
def beatspx(thedate,dbconn):
    symlst = metadata.getStockList("default",dbconn)
    beatspxlst = pandas.DataFrame(columns=('symbol', 'sector', 'chg'))
    beapspxchg = 0.0
    for symbol in symlst:
        chg = perfdata.queryOneDatePerf(symbol,thedate,dbconn)        
        if chg>2.04:
            sector = stocklist.getSector(symbol,dbconn)
            #beatspxlst[symbol] = sector
            beatspxlst.loc[len(beatspxlst)+1]=[symbol,sector,chg] 
            print "choose ",symbol,",",sector,"=",chg   
    # de-duplicated by sector
    #lst1 = pandas.Series(beatspxlst)
    beatspxlst = beatspxlst.sort_index(by="chg",ascending=False)
    print beatspxlst
    print "========================="
    beatspxlst = beatspxlst.drop_duplicates(cols='sector')
    print beatspxlst['symbol']
    
    for symbol in beatspxlst['symbol']:
        chg = perfdata.queryYtdPerf(symbol,dbconn)
        
        beapspxchg += chg 
        print symbol,",",sector,"=",chg     
    print "beapspx YTD performance=", beapspxchg
Example #2
0
def calc(dbconn):
    resetTable(dbconn)
    today = datetime.date.today()
    day_ytd = today.replace(month=1,day=1)
    day_5d = today-datetime.timedelta(days=5)
    day_10d = today-datetime.timedelta(days=10)
    day_20d = today-datetime.timedelta(days=20)
    day_50d = today-datetime.timedelta(days=50)
    day_100d = today-datetime.timedelta(days=100)
    day_200d = today-datetime.timedelta(days=200)
    day_1y = today.replace(year=today.year-1)
    day_2y = today.replace(year=today.year-2)
    day_5y = today.replace(year=today.year-5)
    symLst = metadata.getStockList(dbconn)
    for sym in symLst:
        # calculate
        p_today = stockeod.getLatestPrice(sym,dbconn)
        p_ytd = stockeod.getClosePrice(sym,day_ytd,dbconn)
        p_1y = stockeod.getClosePrice(sym,day_1y,dbconn)
        p_2y = stockeod.getClosePrice(sym,day_2y,dbconn)
        p_5y = stockeod.getClosePrice(sym,day_5y,dbconn)
        p_5d = stockeod.getClosePrice(sym,day_5d,dbconn)
        p_10d = stockeod.getClosePrice(sym,day_10d,dbconn)
        p_20d = stockeod.getClosePrice(sym,day_20d,dbconn)
        p_50d = stockeod.getClosePrice(sym,day_50d,dbconn)
        p_100d = stockeod.getClosePrice(sym,day_100d,dbconn)
        p_200d = stockeod.getClosePrice(sym,day_200d,dbconn)
        pf_5y = (p_today-p_5y)*100/p_5y
        pf_2y = (p_today-p_2y)*100/p_2y
        pf_1y = (p_today-p_1y)*100/p_1y
        pf_ytd = (p_today-p_ytd)*100/p_ytd
        pf_200d = (p_today-p_200d)*100/p_200d
        pf_100d = (p_today-p_100d)*100/p_100d
        pf_50d = (p_today-p_50d)*100/p_50d
        pf_20d = (p_today-p_20d)*100/p_20d
        pf_10d = (p_today-p_10d)*100/p_10d
        pf_5d = (p_today-p_5d)*100/p_5d
        cursor = dbconn.cursor()    
        try:
            tb=""        
            sql = "insert into perfdata(symbol,lastdate,y5d,y2d,y1d,ytd,td200,td100,td50,td20,td10,td5) \
                    values ('%s','%s',%.2f,%.2f,%.2f,%.2f,%.2f,%.2f,%.2f,%.2f,%.2f,%.2f)" \
                    % (sym,today,pf_5y,pf_2y,pf_1y,pf_ytd,pf_200d,pf_100d,pf_50d,pf_20d,pf_10d,pf_5d)
            cursor.execute(sql)
            dbconn.commit()
        except:
            print "error"
            tb = traceback.format_exc()
            dbconn.rollback()
        finally:
            #print tb
            return
Example #3
0
def calc(thedate,dbconn):
    symlst = metadata.getStockList("default",dbconn)
    #symdict = {}
    totalchg = 0.0;
    top10 = 0.0
    for symbol in symlst:
        #print symbol
        chg = perfdata.queryYtdPerf(symbol,dbconn)
        print chg
        totalchg += chg
        if chg>2.04:
            top10+=chg
        #chg = perfdata.queryPerf(symbol,thedate,dbconn)
        #ret = "%s=%.2f %%" % (symbol,chg)
        #symdict[symbol] = chg
        #print ret
    print "YTD performance=", totalchg
    print "TOP spx YTD performance=", top10