Example #1
0
    def loadIndex(self):
        data=pd.read_csv(self.indexPath,engine='python')
        data=data[-self.date_duration-1:-1]        
        data=data.reset_index()
        data=data.fillna(method='ffill')

        data=np.array(data['Open'])
        data=np.reshape(data,(-1,1))

        data=self.indexScaler.fit_transform(data)

        data=pd.DataFrame(np.squeeze(data))        

        print('IndexPrice shape: ',data.shape)
        return data 
Example #2
0
def BiznesRadarParse(content):
    ''' Parse file HTML content to get stocks table '''
    table = GetHTMLElement(content, 'table', 'qTableFull')
    #DebugSave('table.html', table)
    data = pd.read_html(table,
                        thousands=' ',
                        decimal='.',
                        displayed_only=False)[0]
    # Remove separator lines
    data = data[data.ROE != 'ROE']
    data = data.reset_index()
    data = data.rename(
        columns={
            'Cena / Wartość księgowa': 'C/WK',
            'Cena / Przychody ze sprzedaży': 'C/P',
            'Cena / Zysk': 'C/Z',
            'Aktualny kurs': 'Kurs',
            'Średni obrót z 5 sesji [zł]': 'Obrot',
            'Piotroski F-Score': 'Piotroski',
            'Trend 6m': 'T6M',
            'Trend 12m': 'T12M',
            'Trend 24m': 'T24M',
            'Zmiana kursu 3m [%]': 'Z3',
            'Zmiana kursu 6m [%]': 'Z6',
            'Zmiana kursu 12m [%]': 'Z12'
        })
    # Convert string values to float/int values
    for i in (range(len(data['Profil']))):
        data['ROE'][i] = float(data['ROE'][i].replace(' ', '').strip('%'))
        data['ROA'][i] = float(data['ROA'][i].replace(' ', '').strip('%'))
        data['C/WK'][i] = float(data['C/WK'][i])
        data['C/P'][i] = float(data['C/P'][i])
        data['C/Z'][i] = float(data['C/Z'][i])
        data['Kurs'][i] = float(data['Kurs'][i])
        data['Obrot'][i] = int(data['Obrot'][i])
        data['Piotroski'][i] = int(data['Piotroski'][i])
        data['Z3'][i] = float(data['Z3'][i].replace(' ', '').strip('%'))
        data['Z6'][i] = float(data['Z6'][i].replace(' ', '').strip('%'))
        data['Z12'][i] = float(data['Z12'][i].replace(' ', '').strip('%'))

    return data
def prophet(data):
    """takes in df and produces df of results"""
    from fbprophet import Prophet

    data = data.reset_index()
    data = data.rename(columns={'index': 'ds', 'close': 'y'})

    prophet = Prophet(interval_width=0.95)
    prophet.fit(data)
    future = prophet.make_future_dataframe(periods=(365), freq='D')
    forecast = prophet.predict(future)

    results_df = forecast[['ds', 'yhat', 'yhat_lower',
                           'yhat_upper']].iloc[-365:]
    results_df.rename(columns={
        'ds': 'date',
        'yhat': 'predicted',
        'yhat_lower': 'lower_bound',
        'yhat_upper': 'upper_bound'
    },
                      inplace=True)
    results_df.set_index('date', inplace=True)

    return results_df
Example #4
0
    def loadCSV(self):
        """
        csv파일이 있는 폴더를 입력으로 받아 데이터를 읽어옴.
        """
        csvList=os.listdir(self.folderPath)        
        dataframe = pd.DataFrame([])
        

        for csv in csvList:
            data=pd.read_csv(self.folderPath+'/'+csv,engine='python')
            if(len(data)>self.date_duration):
                data=data[-self.date_duration-1:-1]
                data=data.reset_index()
                data=data['시가']

                dataframe=dataframe.append(data,ignore_index=True)
        dataT=np.array(dataframe).T
        self.scaler.fit(dataT)
        dataT=self.scaler.transform(dataT)
        dataT=dataT.T
        dataframe=pd.DataFrame(dataT)
        dataframe=dataframe.transpose()
        print('StockPrice shape: ',dataframe.shape)
        return dataframe
###EQUATION: ############### y=-7.018333333333211e-06x+10254.897027666497 #############
##############################OR y=4.120264489871436e-06x + -5250.689416195902#########
# n_samples = 30
epochs = 200
training_rate = 0.01
n_samples = 1570

start_date = '2013-12-01'
end_date = '2020-03-01'
# Set the ticker
ticker = 'GOOGL'
# Get the data
data = data.get_data_yahoo(ticker, start_date, end_date)

data.reset_index(level=0, inplace=True)
#data.to_csv("stocks.csv")
data = data.iloc[::-1]

# x= np.linspace(0,1570,100)
# y = 4.120264489871436e-06*x + -5250.689416195902
# plt.plot(x,y)

plt.show()

print(data.shape)
# test_x = np.linspace(0,35, n_samples)
# test_y = 5* test_x + 5 * np.random.randn(n_samples)

# plt.plot(test_x, test_y, 'o')
data['Timestamp'] = data['Date'].apply(lambda date: time.mktime(
Example #6
0
data.head()

# create a new dataframe with 'date' column as index
new = data.set_index('date')

# use pandas pivot function to sort adj_close by tickers
clean_data = new.pivot(columns='ticker')

# check the head of the output
clean_data.head()

import quandl
import pandas as pd
import datetime
from datetime import timedelta
from pandas import ExcelWriter

quandl.ApiConfig.api_key = 'NL6weZFnRNw5q_L5-Nve'
tickers = ['BA', 'MSFT', 'ACN']

data = quandl.get_table('WIKI/PRICES',
                        ticker=tickers,
                        qopts={'columns': ['ticker', 'date', 'open', 'close']},
                        date={
                            'gte': '2000-01-01',
                            'lte': '2018-04-16'
                        },
                        paginate=True)

data.reset_index()
data.set_index('date')