Beispiel #1
0
    def build(self, symbol, param_numberofyears, showresults):

        import pandas as pd
        import numpy as np

        print('mysymbol', symbol, '------------------------------------')

        #param_numberofyears = 4
        numberofweekstorun = param_numberofyears * 52

        from datetime import datetime, timedelta
        dStart = datetime.now().date() + timedelta(weeks=-numberofweekstorun)
        #print(dStart)

        index = pd.date_range(dStart + timedelta(days=0),
                              periods=numberofweekstorun,
                              freq='W-Fri')
        #print(index)
        columns = [
            'd1', 'd2', 'pRef', 'p1', 'p2', 'Delta2to1', 'DrawDownMax',
            'DrawUpMax', 'DrawDownPctChange', 'DrawUpPctChange'
        ]
        df_ = pd.DataFrame(index=index, columns=columns)
        df_ = df_.fillna(0)  # with 0s rather than NaNs
        #df_ = df_.fillna(method='pad')

        # ------------------------------------------------------------
        # Change this number after * if changing the number of columns
        data = np.array([np.arange(len(index))] * 10).T
        # ------------------------------------------------------------

        df = pd.DataFrame(data, index=index, columns=columns)
        #-------------------------------------------------------------------------------

        dEnd = index[-1]

        import pullprices
        fmt = '%Y-%m-%d'

        dDataStart = dStart + timedelta(days=-33)

        f = pullprices.stockhistory(symbol, dDataStart, dEnd)

        for idx, row in df.iterrows():
            pDraw_downmax = 0
            pDraw_upmax = 0
            #print(idx)
            dRef = idx
            d17 = dRef + timedelta(days=-17)
            d32 = dRef + timedelta(days=-32)

            dRef_string = dRef.strftime(fmt)
            d17_string = d17.strftime(fmt)
            d32_string = d32.strftime(fmt)

            try:
                p32 = f.ix[d32_string]['Adj Close']
                #print(d32_string,p32)

            except:
                p32 = float('NaN')
                #print('no data')
                pass
            try:
                p17 = f.ix[d17_string]['Adj Close']
                #print(d17_string,p17)
            except:
                p17 = float('NaN')
                #print('no data')
                pass
            try:
                pRef = f.ix[dRef_string]['Adj Close']
                #print(dRef_string,pRef)
            except:
                pRef = float('NaN')
                #print('no data')
                pass
            try:
                pdelta32to17 = p17 - p32
                #print('pricedelta',pdelta32to17)
            except:
                pdelta32to17 = float('NaN')
                #print('no delta')

            for iday in range(1, 32 - 17 + 1):
                dDraw = d32 + timedelta(days=iday)
                dDraw_string = dDraw.strftime(fmt)
                #print(dDraw_string)
                try:
                    pDraw = f.ix[dDraw_string]['Adj Close']

                    pDelta = pDraw - p32

                    if pDelta < pDraw_downmax:
                        pDraw_downmax = pDelta
                    if pDelta > pDraw_upmax:
                        pDraw_upmax = pDelta
                    if p32 == float('NaN'):
                        pDraw_downmax = float('NaN')
                        pDraw_upmax = float('NaN')
                except:
                    pDraw = float('Nan')
            #print(dRef_string,d17_string,d32_string)
            pctchangeDraw_downmax = pDraw_downmax / p32
            pctchangeDraw_upmax = pDraw_upmax / p32
            df.loc[dRef] = pd.Series({
                'd1': d17.strftime('%Y-%m-%d'),
                'd2': d32.strftime('%Y-%m-%d'),
                'pRef': pRef,
                'p1': p17,
                'p2': p32,
                'Delta2to1': pdelta32to17,
                'DrawDownMax': pDraw_downmax,
                'DrawUpMax': pDraw_upmax,
                'DrawDownPctChange': pctchangeDraw_downmax,
                'DrawUpPctChange': pctchangeDraw_upmax
            })
            #print('xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx')

        #df = df.fillna(method='pad')

        print(df)
        print(len(data))
        print(len(df))

        print('------------------------')
        print(dStart)
        print(dEnd)
        print('dRef', dRef)
        self.DataFrameResult = df
    def build(self,
                     symbol,
                     param_numberofyears ,
                     showresults
                 ):


        import pandas as pd
        import numpy as np
        
        print('mysymbol',symbol,'------------------------------------')        
        
        #param_numberofyears = 4
        numberofweekstorun = param_numberofyears * 52
        
        from datetime import datetime, timedelta
        dStart = datetime.now().date() + timedelta(weeks = -numberofweekstorun)
        #print(dStart)
        
        index = pd.date_range(dStart+timedelta(days = 0), periods=numberofweekstorun, freq='W-Fri')
        #print(index)
        columns = ['d1','d2','pRef','p1','p2','Delta2to1','DrawDownMax','DrawUpMax','DrawDownPctChange','DrawUpPctChange']
        df_ = pd.DataFrame(index=index, columns=columns)
        df_ = df_.fillna(0) # with 0s rather than NaNs
        #df_ = df_.fillna(method='pad')
        
        
        # ------------------------------------------------------------
        # Change this number after * if changing the number of columns
        data = np.array([np.arange(len(index))]*10).T
        # ------------------------------------------------------------
        
        
        df = pd.DataFrame(data, index=index, columns=columns)
        #-------------------------------------------------------------------------------
        
        dEnd = index[-1]
        
        
        import pullprices
        fmt = '%Y-%m-%d'
        
        dDataStart = dStart+timedelta(days = -33)
        
        f=pullprices.stockhistory(symbol, dDataStart, dEnd)
        
        for idx, row in df.iterrows():
            pDraw_downmax = 0
            pDraw_upmax = 0
            #print(idx)
            dRef = idx
            d17 = dRef + timedelta(days = -17)
            d32 = dRef + timedelta(days = -32)
        
            dRef_string = dRef.strftime(fmt)
            d17_string = d17.strftime(fmt)
            d32_string = d32.strftime(fmt)
            
        
            try:
                p32 = f.ix[d32_string]['Adj Close']
                #print(d32_string,p32)
                
            except: 
                p32 = float('NaN')
                #print('no data')
                pass
            try:
                p17 = f.ix[d17_string]['Adj Close']
                #print(d17_string,p17)
            except: 
                p17 = float('NaN')
                #print('no data')
                pass
            try:
                pRef = f.ix[dRef_string]['Adj Close']
                #print(dRef_string,pRef)
            except:
                pRef = float('NaN')
                #print('no data')
                pass
            try:
                pdelta32to17 = p17 - p32
                #print('pricedelta',pdelta32to17)
            except:
                pdelta32to17 = float('NaN')
                #print('no delta')
        
            for iday in range(1, 32 - 17 + 1):
                dDraw = d32 + timedelta(days = iday)
                dDraw_string = dDraw.strftime(fmt)
                #print(dDraw_string)
                try:
                    pDraw = f.ix[dDraw_string]['Adj Close'] 
                                    
                    pDelta = pDraw - p32
                        
                    if pDelta < pDraw_downmax:
                        pDraw_downmax = pDelta
                    if pDelta > pDraw_upmax:
                        pDraw_upmax = pDelta
                    if p32 == float('NaN'):
                        pDraw_downmax = float('NaN')
                        pDraw_upmax = float('NaN')
                except:
                    pDraw = float('Nan')
            #print(dRef_string,d17_string,d32_string)
            pctchangeDraw_downmax = pDraw_downmax / p32
            pctchangeDraw_upmax = pDraw_upmax / p32 
            df.loc[dRef] = pd.Series({'d1':d17.strftime('%Y-%m-%d'),'d2':d32.strftime('%Y-%m-%d'), 'pRef':pRef, 'p1':p17,'p2':p32,'Delta2to1':pdelta32to17,'DrawDownMax':pDraw_downmax,'DrawUpMax':pDraw_upmax,'DrawDownPctChange':pctchangeDraw_downmax,'DrawUpPctChange':pctchangeDraw_upmax})
            #print('xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx')
        
        #df = df.fillna(method='pad')
        
        print(df)    
        print(len(data))
        print(len(df))
        
        print('------------------------')
        print(dStart)
        print(dEnd)
        print('dRef',dRef)
        self.DataFrameResult = df
       
#        self.DictionaryOfSerializedQuadCandidateXMLPathNames = dSerializedQuadCandidateXMLPathNames
                                             
Beispiel #3
0
data = np.array([np.arange(len(index))]*8).T
# ------------------------------------------------------------


df = pd.DataFrame(data, index=index, columns=columns)
#-------------------------------------------------------------------------------

dEnd = index[-1]


import pullprices
fmt = '%Y-%m-%d'

dDataStart = dStart+timedelta(days = -33)

f=pullprices.stockhistory("AAPL", dDataStart, dEnd)

for idx, row in df.iterrows():
    pDraw_downmax = 0
    pDraw_upmax = 0
    #print(idx)
    dRef = idx
    d17 = dRef + timedelta(days = -17)
    d32 = dRef + timedelta(days = -32)

    dRef_string = dRef.strftime(fmt)
    d17_string = d17.strftime(fmt)
    d32_string = d32.strftime(fmt)
    

    try:
#dRef = datetime.strptime(day, '%d/%b/%Y')
import pullprices
from dateutil.relativedelta import relativedelta, FR
dCurrent = datetime.now() + relativedelta(weekday=FR(-1))
dCurrent = dCurrent.replace(hour=0,minute=0,second=0,microsecond=0)
print('dCurrent',dCurrent)
fmt = '%Y-%m-%d'



 #dRef = datetime.now()
#start = dRef - timedelta(days = dRef.weekday())
dDataStart = dCurrent + timedelta(days = -900)
RefMinus7 = 0

f=pullprices.stockhistory("AAPL", dDataStart, dCurrent)
lsRefDates=[]
while True:
    dRef = dCurrent + timedelta(days = RefMinus7)
        
    lsRefDates.append(dRef)

    d17 = dRef + timedelta(days = -17)
    d32 = dRef + timedelta(days = -32)
    
    dRef_string = dRef.strftime(fmt)
    d17_string = d17.strftime(fmt)
    d32_string = d32.strftime(fmt)
    dDataStart_string = dDataStart.strftime(fmt)
    print('dRef',dRef)