def __init__(self, sec_id: str = 'AAPL'):
     
     self.sec_id = sec_id
     self.sf_data_client = DataAPI(which_API = 'SimFin')
     self.yh_data_client = DataAPI(which_API = 'yahoo')
     self.period = 'annual'
     self.market = 'us'
     self.IS_revenue = None
Example #2
0
    def Implement_RSI(self,
                      sec_id='AAPL',
                      qty=10,
                      period=14,
                      start_date="2018-10-30"):

        # Get real time data from Interactive Broker
        user1 = DataAPI()
        df = user1.yahoo_pricing_data(sec_id, start_date=start_date)

        # Check the signal
        # -- sma --
        BT_user1 = Backtesting(df)
        df = BT_user1.RSI_single_stock(period=14)

        print('signal: {}'.format(df.loc[df.shape[0] - 1, 'signal']))
        # check the most recent signal

        if df.loc[df.shape[0] - 1, 'signal'] == 'buy':

            self.submit_buy_order(sec_id, qty)
            self.Email_client.send_buy_notification(self.email_add, sec_id)

        elif df.loc[df.shape[0] - 1, 'signal'] == 'sell':

            self.submit_sell_order(sec_id, qty)
            self.Email_client.send_sell_notification(self.email_add, sec_id)
from data import DataAPI
from backtesting import Backtesting
from Visualization import Visualization
import pandas as pd 
import matplotlib.pyplot as plt

# user_yf = DataAPI('yahoo')
# df = user_yf.yahoo_pricing_data()

# print(df)

user1 = DataAPI("SimFin")

# df_income = user1.SF_income_statement()
# print('Income statement')
# print(df_income)

# df_bs = user1.SF_balance_sheet()
# print('balancesheet statement')
# print(df_bs)

# df_cf = user1.SF_cashflow_statment()
# print('cashflow statement')
# print(df_cf)



#// test sma_backtesting single

# df = user1.SF_pricing_data(start_date='2016-01-01')
# # df = user1.SF_daily_pricing_data_from_local()
Example #4
0
from data import DataAPI
from backtesting import Backtesting
from Visualization import Visualization
import pandas as pd 
import matplotlib.pyplot as plt



user1 = DataAPI("yahoo")


df = user1.yahoo_pricing_data('AAPL', start_date= "2015-10-30")

# -- sma --
# bt1 = Backtesting(df)
# df1 = bt1.backtesting_sma_single_stock(sma_short=5, sma_long=30)
# v1 = Visualize(df1)
# v1.sma_plot_result()

# -- rsi --

# bt1 = Backtesting(df)
# df1 = bt1.RSI_single_stock(period= 28)
# v1 = Visualize(df1)
# v1.sma_plot_result()

# path = r'D:\K\HU\HU - Courses\CISC 695 Research Methodology and Writing\Assignments\sample_data\rsi_aapl_data.csv'
# df1.to_csv(path)


#// test sma_backtesting bulk 
Example #5
0
    def test_SF_daily_pricing_data(self):

        usr = DataAPI(which_API='SimFin', token ='free')
        result = usr.SF_pricing_data('AAPL', period='Daily', market = 'us', 
                            start_date='2018-01-01', end_date= '2020-10-30')
        self.assertIsInstance(result, pd.DataFrame)
Example #6
0
    def test_yahoo_pricing_data(self):

        usr = DataAPI(which_API='yahoo')
        result = usr.yahoo_pricing_data('AAPL', start_date='2018-01-01', end_date= '2020-10-30')
        self.assertIsInstance(result, pd.DataFrame)
Example #7
0
    def test_SF_cashflow_statment(self):

        usr = DataAPI(which_API='SimFin', token ='free')
        result = usr.SF_cashflow_statment('AAPL', period='quarterly', market = 'us')
        self.assertIsInstance(result, pd.DataFrame)
Example #8
0
from data import DataAPI
from backtesting import Backtesting
from Visualization import Visualize
import pandas as pd
import matplotlib.pyplot as plt

user1 = DataAPI("IEX", IEX_token)

# path_aapl2y = r'D:\K\HU\HU - Courses\CISC 695 Research Methodology and Writing\Assignments\sample_data\aapl2y.csv'

# df = pd.read_csv(path_aapl2y)
# df = pd.read_csv(path_aapl2y)

df = user1.IEX_daily_pricing_data('AAPL', '2y')

bt1 = Backtesting(df)

df1 = bt1.RSI_single_stock(notification=False)

v1 = Visualize(df1)
v1.sma_plot_result()

# df2 = bt1.sma_backteting_bulk()
# print(df2)