import pandas as pd
import finnhub
import requests
import numpy as np
import time
from datetime import datetime
from sklearn.cluster import KMeans
import matplotlib.pyplot as plt
import pandas as pd
import mplfinance as mpf
from mplfinance.original_flavor import candlestick_ohlc
import finnhub
import matplotlib.dates as mpl_dates
import numpy as np
from datetime import * 
import seaborn as sns
from datetime import datetime
import requests

pd.set_option('display.float_format', '{:.2E}'.format)
from IPython.display import display
#symbols = ticker_sum   
#     return stocks
def get_ticker(symbols):
    import pandas as pd
    import finnhub
    import requests
    import numpy as np
    import time
    from datetime import datetime
    from sklearn.cluster import KMeans
    import matplotlib.pyplot as plt
    import pandas as pd
    import mplfinance as mpf
    from mplfinance.original_flavor import candlestick_ohlc
    import finnhub
    import matplotlib.dates as mpl_dates
    import numpy as np
    import seaborn as sns
    from datetime import datetime
    import requests
    def get_profile(symbols):
        
        def get_companyinfo(symbols):
    
            import requests
            from datetime import datetime
            api_key1 = '86dd63f6b8ae774b061232685b78eb52'    
            stocks = pd.DataFrame(columns = [ 'description','symbol', 'logourl', 'name','mktCap','lastDiv'])
            for symb  in symbols:
                comp = requests.get(f'https://financialmodelingprep.com/api/v3/profile/{symb}?apikey={api_key1}').json()[0]
                stocks = stocks.append({'description': comp['description'], 'symbol': comp['symbol'],
                               'logourl': comp['image'], 'name': comp['companyName'], 'mktCap':comp['mktCap'],'lastDiv':comp['lastDiv']}, ignore_index = True)
                
            stocks['Date_access'] = datetime.now().strftime("%d/%m/%Y %H:%M:%S")
           # stocks['div_yiel'] = stocks['lastDiv']/stocks['price']
          #  stocks[['lastDiv','price']] = stocks[['lastDiv','price']].applymap("{0:,.2f}".format) 
          #  stocks['div_yiel'] =stocks['div_yiel'].apply(lambda x: "{0:.2f}%".format(x*100))
           # df['var3'] = df['var3'].applymap(lambda x: "{0:.2f}%".format(x*100))
           # stocks = stocks.style.format({'lastDiv': "{:.2f}".format,'price': "{:.2f}".format,'div_yiel': "{:.2%}".format})
            stocks['mktCap'] = ( stocks['mktCap'].astype(float)/1000000).round(2).astype(str) + 'MM'
            stocks =stocks.set_index('symbol')
            stocks =stocks.sort_index()
        
           # stocks = stocks.style.format({'mktCap': "{:.2f}",'volAvg': "{:.2f}",'var3': "{:.2%}"})
            return stocks
        
        stocks =  get_companyinfo(symbols)
        
        # df[['var1','var2']] = df[['var1','var2']].applymap("{0:.2f}".format)
        # df['var3'] = df['var3'].applymap(lambda x: "{0:.2f}%".format(x*100))
        
        
        
        ######################earningdate#########################
        
        def earning_date1(symbols):
            api_key = '86dd63f6b8ae774b061232685b78eb52'
            bs = requests.get(f'https://financialmodelingprep.com/api/v3/earning_calendar?apikey={api_key}').json()
            
            df =pd.DataFrame()
            for i in range(len(bs)):
                d =pd.DataFrame()
                d1=bs[i]['symbol']
                d2 = bs[i]['date']
                d['earning_date'] =[d2]
                d.index = [d1]
                df = pd.concat([d,df],axis =0)
                earning_date =  pd.DataFrame()
            earning_date =  pd.DataFrame()
            for tick in symbols:
                dd= pd.DataFrame()
                if tick not in  df.index:
                    d1 ="Not Available"
                else:
                    d1=df['earning_date'][tick]
            
                dd['symbol'] = [tick]
                dd['earning_date'] = [d1]
                dd = dd.set_index('symbol')
                earning_date = pd.concat([earning_date ,dd],axis =0)
            earning_date= earning_date.sort_index()
        
        
            return  earning_date
        
        earning_date = earning_date1(symbols)
        
        
        ##################peratio##################
        def eps_pe(symbols):
            api_key1 = '86dd63f6b8ae774b061232685b78eb52'    
            da1 = pd.DataFrame(columns = [ 'pe_ratio(TTM)','symbol', 'eps(TTM)'])
            for symb  in symbols:
                comp = requests.get(f'https://financialmodelingprep.com/api/v3/quote/{symb}?apikey={api_key1}').json()[0]
                da1 = da1.append({'pe_ratio(TTM)': comp['pe'], 'symbol': comp['symbol'],
                              'eps(TTM)': comp['eps']}, ignore_index = True)
            da1 = da1.set_index('symbol')
            da1[['pe_ratio(TTM)','eps(TTM)']] = da1[['pe_ratio(TTM)','eps(TTM)']] .applymap("{0:,.2f}".format) 
            da1= da1.sort_index()
        
            return da1
        #    stocks['Date_access'] = datetime.now().strftime("%d/%m/%Y %H:%M:%S")
        da2 = eps_pe(symbols)
        
        
        stock_info=stocks.merge(earning_date, left_index=True, right_index=True)
    
        stock_info_data = stock_info.merge(da2,  left_index=True, right_index=True)
        stock_info_data = stock_info_data.sort_index()
        return stock_info_data
    
    stock_info_data = get_profile(symbols)
    #stock_info_data1 =stock_info_data.merge(strategy_sum3, right_index = True, left_index = True)
    stock_info_data =stock_info_data .sort_index()

       
    def get_image(symbols):
        image_strategy_return = pd.DataFrame()
        for ticker in symbols:
            print(ticker)
            image = pd.DataFrame()
            dr = "https://3arbzfbsh-cname-us.ngrok.io/Desktop/seabridge%20fintech/profit_graph_app/" + ticker + "_Return.jpg"
            tick = ticker
            image['image_return'] =[ dr]
            image.index =[tick]
            image_strategy_return  = pd.concat([image_strategy_return ,image], axis =0)
         
        image_rs = pd.DataFrame()
        for ticker in symbols:
            image = pd.DataFrame()
            dr = "https://3arbzfbsh-cname-us.ngrok.io/Desktop/seabridge%20fintech/image_app/" + ticker+"_resistance_support.jpg"
            tick = ticker
            image['im_res_sup']=[ dr]
            image.index =[tick]
            image_rs = pd.concat([image_rs,image], axis =0)
        return    image_strategy_return,image_rs
    
    image_strategy_return,image_rs = get_image(symbols)
                                              
    image_rs = image_rs.sort_index()
    image_strategy_return = image_strategy_return.sort_index()
    image_data = image_rs.merge(image_strategy_return, left_index=True, right_index=True) 
    
    stock_info_data1 = stock_info_data.merge(image_data, right_index =True, left_index =True)
   
    
    from sklearn.cluster import KMeans
    import matplotlib.pyplot as plt
    import pandas as pd
    import mplfinance as mpf
    from mplfinance.original_flavor import candlestick_ohlc
    import finnhub
    import matplotlib.dates as mpl_dates
    import numpy as np
    import seaborn as sns
    from datetime import datetime
    
    def get_data(ticker):
        print(ticker)
        
        from datetime import datetime as dt
        import datetime
        import dateutil
        today = datetime.datetime.today()
        delta = dateutil.relativedelta.relativedelta(months=6)
        end = ( today-datetime.timedelta(1)).strftime('%Y-%m-%d') 
        start = (today - delta).strftime('%Y-%m-%d')
       # ticker= 'AAPL'
        import requests
        api_key = '86dd63f6b8ae774b061232685b78eb52'  
        from datetime import datetime
        bs = requests.get(f'https://financialmodelingprep.com/api/v3/historical-price-full/{ticker}?from={start}&to={end}&apikey={api_key}').json()['historical']
        stock = pd.DataFrame(bs)
        stock =stock[['date','open','high','low','close','volume']]
        stock = stock.rename(columns = {'date':'Date', 'open':'Open', 'high':'High','low':'Low', 'close':'Close', 'volume':'volume'})
        stock = stock.set_index('Date')
        stock= stock.sort_index()
        stock1 = stock.iloc[:-4,:]    
        
        def get_optimum_clusters(df, saturation_point = 0.05):
            
          
            wcss = []
            k_models = []
            labels = []
            days = df.shape[0]
            size = range(1,9) 
            for i in size:
                # kmeans = KMeans(n_clusters = i, init='k-means++', max_iter=300, n_init=10, random_state=0)
                kmeans = KMeans(n_clusters = i, init='random', max_iter=300, n_init=10)
                kmeans.fit(df)
                wcss.append(kmeans.inertia_) # Sum of squared distances of samples to their Closest cluster center
                k_models.append(kmeans)
                labels.append(kmeans.labels_)
            # Compare differences in inertias until it's no more than saturation_point
            optimum_k = len(wcss)-1
            for i in range(0, len(wcss)-1):
                diff = abs(wcss[i+1] - wcss[i])
                if diff < saturation_point:
                    optimum_k = i
                    break
            # optimum_clusters = k_models[optimum_k]
            labels = labels[optimum_k]
    
            return labels
        
        Lows = pd.DataFrame(data = stock1, index = stock1.index, columns = ['Low'])
        Highs = pd.DataFrame(data = stock1, index = stock1.index, columns = ['High'])
        low_labels = get_optimum_clusters(Lows)
        high_labels = get_optimum_clusters(Highs)
        Lows['labels'] = pd.Series(low_labels, index = Lows.index)
        Highs['labels'] = pd.Series(high_labels, index = Highs.index)
        res = [max(Highs.loc[Highs.labels == i, 'High']) for i in np.unique(high_labels)]
        sup = [min(Lows.loc[Lows.labels == i, 'Low']) for i in np.unique(low_labels)]
        # pivotpoints
        last_day = stock.iloc[-1].to_frame().T
        not_pivots = last_day.columns
        last_day['center_gravity'] = (last_day['High'] + last_day['Low'] + last_day['Close'])/3
        last_day['vol_up1'] = 2*last_day['center_gravity'] - last_day['Low']
        last_day['vol_down1'] = 2*last_day['center_gravity'] - last_day['High']
        last_day['vol_up2'] = last_day['center_gravity'] + (last_day['High'] - last_day['Low'])
        last_day['vol_down2'] = last_day['center_gravity'] - (last_day['High'] - last_day['Low'])
        last_day['vol_up3'] = last_day['center_gravity'] + 2*(last_day['High'] - last_day['Low'])
        last_day['vol_down3'] = last_day['center_gravity'] - 2*(last_day['High'] - last_day['Low'])
        
        Highs['Date'] = pd.to_datetime(Highs.index)
        Highs['Date'] = Highs['Date'].apply(mpl_dates.date2num)
        min_date_high = min(Highs.Date)
        max_date_high = max(Highs.Date)
        Lows['Date'] = pd.to_datetime(Lows.index)
        Lows['Date'] = Lows['Date'].apply(mpl_dates.date2num)
        min_date_low = min(Lows.Date)
        max_date_low = max(Lows.Date)
    
        Highs['res'] = 0
        for i in range(len(Highs)):
            if Highs['High'][i] in res:
                Highs['res'][i]= 1
                
                
        Lows['sup'] = 0
        for i in range(len(Lows)):
            if Lows['Low'][i] in sup:
               Lows['sup'][i]= 1
        
        resistance= pd.DataFrame()
        for i in range(len(Highs)):
            if Highs['res'][i] ==1:
                current_res = Highs.iloc[i,:]
                resistance = resistance.append(current_res)
        support = pd.DataFrame()      
        for i in range(len(Lows)):
            if Lows['sup'][i] ==1:
                current_sup = Lows.iloc[i,:]
                support = support.append(current_sup)
                
        rec_res = resistance['High'][-1]
        rec_sup = support['Low'][-1]  
        last_day['recent_support'] = rec_sup
        last_day['recent_resistance'] = rec_res
        tick = ticker
        last_day.index = [tick]
    
        return last_day
    
    def strategy_signal4(symbols):
        strategy_data= pd.DataFrame()
        for tick in symbols:
            data = get_data( tick)
            strategy_data = pd.concat([strategy_data,data], axis=0)
        return strategy_data
    
    support_resistance_data= strategy_signal4(symbols) 
    
    support_resistance_data = support_resistance_data[['center_gravity','vol_up1','vol_up2','vol_up3','vol_down1', "vol_down2" , "vol_down3","recent_support","recent_resistance"]]
    #support_resistance_data .to_csv(r'C:\Users\jizha\Desktop\seabridge_datapool1\final_strategy_data_temporaly\support_resistance_data.csv')
     
    #support_resistance_data = pd.concat([data1, data2, data3, data4, data5, data6, data7], axis = 0)
    
    
    # strategy_sum1 = pd.read_csv(r'C:\Users\jizha\Desktop\seabridge_datapool\support_resistop_last_peak_data.csv')   
    # strategy_sum1 =strategy_sum1.rename({'Unnamed: 0':'symbol'}, axis =1)
    # strategy_sum1= strategy_sum1.rename({'pivot':'center_gravity'}, axis =1)
    #####################stop loss####################################
    def get_data2(ticker):
       #  ticker ='KO'
       #  finnhub_client = finnhub.Client(api_key = "bt3efpf48v6tfcs816eg")
       #  from datetime import datetime
       #  start = np.array(start).tolist()
       #  end =np.array(end).tolist()
       # # start = start
       # # end = end 
       #  start_time = int(datetime(start[0], start[1], start[2], 0, 0).replace(tzinfo = timezone.utc).timestamp())
       #  end_time = int(datetime(end[0], end[1], end[2], 0, 0).replace(tzinfo = timezone.utc).timestamp())
       #  res_d = finnhub_client.stock_candles(ticker, 'D', start_time, end_time)
    
       #  stock = pd.DataFrame(res_d)
       #  stock = stock.rename(columns = {'t':'Date', 'o':'Open', 'h':'High', 'l':'Low', 'c':'Close', 's':'status', 'v':'volumn'})
       #  stock['Date'] = pd.to_datetime(stock['Date'], unit = 's')
       #  stock = stock.set_index('Date')
       #  stock_1= stock[['Close', 'High', 'Low','Open','volumn']]   
        
        from datetime import datetime as dt
        import datetime
        import dateutil
        today = datetime.datetime.today()
        delta = dateutil.relativedelta.relativedelta(months=6)
        end = ( today-datetime.timedelta(1)).strftime('%Y-%m-%d') 
        start = (today - delta).strftime('%Y-%m-%d')
       # ticker= 'AAPL'
        import requests
        api_key = '86dd63f6b8ae774b061232685b78eb52'  
        from datetime import datetime
        bs = requests.get(f'https://financialmodelingprep.com/api/v3/historical-price-full/{ticker}?from={start}&to={end}&apikey={api_key}').json()['historical']
        stock = pd.DataFrame(bs)
        stock =stock[['date','open','high','low','close','volume']]
        stock = stock.rename(columns = {'date':'Date', 'open':'Open', 'high':'High','low':'Low', 'close':'Close', 'volume':'volume'})
        stock = stock.set_index('Date')
        stock= stock.sort_index()

        
        
        
        def get_stop(stock):    # pivotpoints
            last_day = stock.iloc[-1].to_frame().T
            not_pivots = last_day.columns
            last_day['center_gravity'] = (last_day['High'] + last_day['Low'] + last_day['Close'])/3
            last_day['vol_up1'] = 2*last_day['center_gravity'] - last_day['Low']
            last_day['vol_down1'] = 2*last_day['center_gravity'] - last_day['High']
            last_day['vol_up2'] = last_day['center_gravity'] + (last_day['High'] - last_day['Low'])
            last_day['vol_down2'] = last_day['center_gravity'] - (last_day['High'] - last_day['Low'])
            last_day['vol_up3'] = last_day['center_gravity'] + 2*(last_day['High'] - last_day['Low'])
            last_day['vol_down3'] = last_day['center_gravity'] - 2*(last_day['High'] - last_day['Low'])
            tick = ticker
            last_day.index = [tick]
            last_day['stop_loss'] = (last_day['vol_down2'] +last_day['vol_down3'] )/2
            last_day['stop_loss_pct'] = (last_day['Close']- last_day['stop_loss'])/last_day['Close']*100
            if last_day['stop_loss_pct'][-1] >3.5:
                last_day['stop_loss'][-1]=  (last_day['vol_down1'][-1] +last_day['Close'][-1] )/2
            return last_day

        last_day = get_stop(stock)
        
    
    
        ema_s = 13
        ema_l = 21
        stock["EMA_S"] = stock.Close.ewm(span = ema_s, min_periods = ema_s).mean()
        stock["EMA_L"] = stock.Close.ewm(span = ema_l, min_periods = ema_l).mean()
        
        # display(stock.head(30))
        def get_ATR(stock, n):
            hl = stock.High - stock.Low
            hc = abs(stock.High - stock.Close.shift(1))
            lc = abs(stock.Low - stock.Close.shift(1))
            
            stock['TR'] = np.maximum(np.maximum(hl, hc), lc)
            
            stock['ATR'] = stock.TR.rolling(n).mean()
            
            return stock
        stock = get_ATR(stock, 20)
    
        stock = stock.dropna()
        mul =2
        stock['ATR_stop'] = (stock.Close - mul * stock.ATR).shift(1) # ATR_stop for current day
        
        rec_trailingstoploss = stock.loc[stock.index[-1],'ATR_stop']
        rec_stoploss = last_day.loc[last_day.index[-1],'stop_loss']   
        atr = stock.loc[stock.index[-1],'ATR']
        strategy_data2=pd.DataFrame()
        tick = ticker
        strategy_data2 ['recent_stoploss'] =[rec_stoploss] 
        strategy_data2['recent_trailingstoploss']  = [rec_trailingstoploss]
        strategy_data2['atr'] = [atr] 
        strategy_data2.index = [tick]
        
        return strategy_data2
    
    
    
    # from datetime import datetime as dt
    # import datetime
    # today = dt.today()
    # yesterday = today-datetime.timedelta(1)
    # start = (2021,1,1)
    # end = (yesterday.year, yesterday.month, yesterday.day)
    
    
    def strategy_signal5(symbols):
        strategy_data3= pd.DataFrame()
        for ticker in symbols:
            data = get_data2( ticker)
            strategy_data3= pd.concat([strategy_data3,data], axis=0)
        return strategy_data3
    
    stop_loss_data = strategy_signal5(symbols) 
    #stop_loss = strategy_signal5(symbols)
    
    # n= 4# number of groups
    # groups = np.array_split(symbols, n)
    # import time 
    # stop_loss_data = pd.DataFrame()
    # for symbol in groups:
    #     f= strategy_signal5(symbol) 
    #     stop_loss_data = pd.concat([f, stop_loss_data], axis =0)
    #     time.sleep(60)
        
    #stop_loss_data .to_csv(r'C:\Users\jizha\Desktop\seabridge_datapool1\final_strategy_data_temporaly\stop_loss_data.csv')    
    
       #####################last peak price###################
    def get_data3(ticker):
        # from datetime import datetime as dt
        # import datetime
        # today = dt.today()
        # yesterday = today-datetime.timedelta(1)
        # start = (2021,1,1)
        # end = (yesterday.year, yesterday.month, yesterday.day)
        # from datetime import datetime
        # finnhub_client = finnhub.Client(api_key = "bt3efpf48v6tfcs816eg")
        # start = np.array(start).tolist()
        # end =np.array(end).tolist()
        # start = start
        # end = end
        # # Stock candles  
        # start_time = int(datetime(start[0], start[1], start[2], 0, 0).replace(tzinfo = timezone.utc).timestamp())
        # end_time = int(datetime(end[0], end[1], end[2], 0, 0).replace(tzinfo = timezone.utc).timestamp())
        # res_d = finnhub_client.stock_candles(ticker, 'D', start_time, end_time)
    
        # stock = pd.DataFrame(res_d)
        # stock = stock.rename(columns = {'t':'Date', 'o':'Open', 'h':'High', 'l':'Low', 'c':'Close', 's':'status', 'v':'volumn'})
        # stock['Date'] = pd.to_datetime(stock['Date'], unit = 's')
        # stock = stock.set_index('Date')
        # stock= stock[['Close', 'High', 'Low','Open','volumn']]   
        
        from datetime import datetime as dt
        import datetime
        import dateutil
        today = datetime.datetime.today()
        delta = dateutil.relativedelta.relativedelta(months=6)
        end = ( today-datetime.timedelta(1)).strftime('%Y-%m-%d') 
        start = (today - delta).strftime('%Y-%m-%d')
    
        import requests
        api_key = '86dd63f6b8ae774b061232685b78eb52'  
        from datetime import datetime
        bs = requests.get(f'https://financialmodelingprep.com/api/v3/historical-price-full/{ticker}?from={start}&to={end}&apikey={api_key}').json()['historical']
        stock = pd.DataFrame(bs)
        stock =stock[['date','open','high','low','close','volume']]
        stock = stock.rename(columns = {'date':'Date', 'open':'Open', 'high':'High','low':'Low', 'close':'Close', 'volume':'volumn'})
        #stock = stock.set_index('Date')
       # stock= stock.sort_index()
        stock['Date'] = pd.to_datetime(stock['Date'])
        stock = stock.set_index('Date')
        stock= stock.sort_index()
       # stock= stock[['Close', 'High', 'Low','Open','volumn']]   

     
        df =stock.copy()
        
        df.drop(df[df["volumn"]<1000].index, inplace=True)
        
        dfday=df.groupby(pd.Grouper(freq="D"))["High"].max()
        now = datetime.now() 
        glDate=0
        lastGLV=0
        currentDate=""
        curentGLV=0
        for index, value in dfday.items():
          if value > curentGLV:
            curentGLV=value
            currentDate=index
            counter=0
          if value < curentGLV:
            counter=counter+1
            if counter==5 and ((index.day != now.day) or (index.month != now.month)):
                if curentGLV != lastGLV:
                   print(curentGLV)
                glDate=currentDate
                lastGLV=curentGLV
                counter=0
        if lastGLV==0:
           last_peak = ticker+" has not formed a green line yet"
           last_peak_date = 0
        else:
            last_peak =  lastGLV
            last_peak_date = glDate
            
        strategy_data6 =pd.DataFrame()
        strategy_data6['last_peak'] = [last_peak]
        strategy_data6['last_peakday'] = [last_peak_date]
        tick = ticker
        strategy_data6.index= [tick]
        return strategy_data6
    
    
    def strategy_signal6(symbols):
        strategy_data7= pd.DataFrame()
        for tick in symbols:
            print(tick)
            data = get_data3(tick)
            strategy_data7 = pd.concat([strategy_data7,data], axis=0)
        return strategy_data7
    
    
    
    
    last_peak_data = strategy_signal6(symbols) 
    
   # last_peak_data.to_csv(r'C:\Users\jizha\Desktop\seabridge_datapool1\final_strategy_data_temporaly\last_peak_data.csv')    
        
        
    # last_peak_data.to_csv(r'C:\Users\jizha\Desktop\seabridge_datapool\last_peak_data.csv')
    ##########################################
    #strategy= strategy.sort_index()
    
    support_resistance_data = support_resistance_data.sort_index()
    stop_loss_data = stop_loss_data.sort_index()
    last_peak_data = last_peak_data.sort_index()
    
    
    strategy_sum = support_resistance_data .merge(stop_loss_data , left_index=True, right_index=True)
    
    strategy_sum[['center_gravity', 'vol_up1', 'vol_up2', 'vol_up3', 'vol_down1',
           'vol_down2', 'vol_down3', 'recent_support', 'recent_resistance',
           'recent_stoploss', 'recent_trailingstoploss', 'atr']]=strategy_sum[['center_gravity', 'vol_up1', 'vol_up2', 'vol_up3', 'vol_down1',
           'vol_down2', 'vol_down3', 'recent_support', 'recent_resistance',
           'recent_stoploss', 'recent_trailingstoploss', 'atr']].astype(float)
    strategy_sum[['center_gravity', 'vol_up1', 'vol_up2', 'vol_up3', 'vol_down1',
           'vol_down2', 'vol_down3', 'recent_support', 'recent_resistance',
           'recent_stoploss', 'recent_trailingstoploss', 'atr']]= strategy_sum[['center_gravity', 'vol_up1', 'vol_up2', 'vol_up3', 'vol_down1',
           'vol_down2', 'vol_down3', 'recent_support', 'recent_resistance',
           'recent_stoploss', 'recent_trailingstoploss', 'atr']].applymap("{0:,.2f}".format) 
                                                                                
                                                                                
                                                                                
    strategy_sum1 =strategy_sum.merge(last_peak_data,left_index=True, right_index=True)
    
    strategy_sum1 = strategy_sum1 .sort_index()
    
    # strategy_sum2 =strategy_sum1.merge(strategy_data4,left_index=True, right_index=True)
    
    # strategy_sum2['market_trend'] =1
    
    
  #  strategy_sum1.to_csv(r'C:\Users\jizha\Desktop\seabridge_datapool1\final_strategy_data_temporaly\support_resistop_last_peak_data.csv')   
    
    
    stock_info_data2= stock_info_data1.merge(strategy_sum1,right_index = True, left_index = True)
    
    stock_info_data3 =stock_info_data2.copy()
    #stock_info_data3 = stock_info_data2.merge(kpi,right_index = True, left_index = True)
    
    #stock_info_data3 .to_csv(r'C:\Users\jizha\Desktop\seabridge_datapool1\final_strategy_data_temporaly\all_data.csv') 
    
    import pandas as pd
    import requests
    import matplotlib.pyplot as plt
    import numpy as np
    import requests
    import matplotlib.pyplot as plt
    from math import floor
    import finnhub
    from termcolor import colored as cl
    plt.style.use('fivethirtyeight')
    plt.rcParams['figure.figsize'] = (20, 10)
    def get_trend (ticker, start, end):
        print(ticker)
        #finnhub_client = finnhub.Client(api_key = "bt3efpf48v6tfcs816eg")
        # Stock candles
        import requests
        api_key = '86dd63f6b8ae774b061232685b78eb52'  
        bs = requests.get(f'https://financialmodelingprep.com/api/v3/historical-price-full/{ticker}?from={start}&to={end}&apikey={api_key}').json()['historical']
        stock = pd.DataFrame(bs)
        stock =stock[['date','open','high','low','close','volume']]
        stock = stock.rename(columns = {'date':'Date', 'open':'Open', 'high':'high','low':'low', 'close':'close', 'volume':'volume'})
        stock = stock.set_index('Date')
        stock= stock.sort_index()
      #  data1 = stock.copy()
        # from datetime import datetime
        # start =list(start)
        # end = list(end)
        # from datetime import datetime
        # start_time = int(datetime(start[0], start[1], start[2], 0, 0).replace(tzinfo = timezone.utc).timestamp())
        # end_time = int(datetime(end[0], end[1], end[2], 0, 0).replace(tzinfo = timezone.utc).timestamp())
        # res = finnhub_client.stock_candles(ticker, 'D', start_time, end_time)
        # stock = pd.DataFrame(res)
        # stock = stock.rename(columns = {'t':'Date', 'o':'Open', 'h':'high', 'l':'low', 'c':'close', 's':'status', 'v':'volumn'})
        # stock['Date'] = pd.to_datetime(stock['Date'], unit = 's')
        # stock = stock.set_index('Date')
        tsla = stock.copy()
           
        def get_ci(high, low, close, lookback):
            tr1 = pd.DataFrame(high - low).rename(columns = {0:'tr1'})
            tr2 = pd.DataFrame(abs(high - close.shift(1))).rename(columns = {0:'tr2'})
            tr3 = pd.DataFrame(abs(low - close.shift(1))).rename(columns = {0:'tr3'})
            frames = [tr1, tr2, tr3]
            tr = pd.concat(frames, axis = 1, join = 'inner').dropna().max(axis = 1)
            atr = tr.rolling(1).mean()
            highh = high.rolling(lookback).max()
            lowl = low.rolling(lookback).min()
            ci = 100 * np.log10((atr.rolling(lookback).sum()) / (high - lowl)) / np.log10(lookback)
            return ci
        
        tsla['ci_14'] = get_ci(tsla['high'], tsla['low'], tsla['close'], 14)
        tsla = tsla.dropna()
        
    
        def get_adx(high, low, close, lookback):
            plus_dm = high.diff()
            minus_dm = low.diff()
            plus_dm[plus_dm < 0] = 0
            minus_dm[minus_dm > 0] = 0
            
            tr1 = pd.DataFrame(high - low)
            tr2 = pd.DataFrame(abs(high - close.shift(1)))
            tr3 = pd.DataFrame(abs(low - close.shift(1)))
            frames = [tr1, tr2, tr3]
            tr = pd.concat(frames, axis = 1, join = 'inner').max(axis = 1)
            atr = tr.rolling(lookback).mean()
            
            plus_di = 100 * (plus_dm.ewm(alpha = 1/lookback).mean() / atr)
            minus_di = abs(100 * (minus_dm.ewm(alpha = 1/lookback).mean() / atr))
            dx = (abs(plus_di - minus_di) / abs(plus_di + minus_di)) * 100
            adx = ((dx.shift(1) * (lookback - 1)) + dx) / lookback
            adx_smooth = adx.ewm(alpha = 1/lookback).mean()
            return plus_di, minus_di, adx_smooth
        
        tsla['plus_di'] = pd.DataFrame(get_adx(tsla['high'], tsla['low'], tsla['close'], 14)[0]).rename(columns = {0:'plus_di'})
        tsla['minus_di'] = pd.DataFrame(get_adx(tsla['high'], tsla['low'], tsla['close'], 14)[1]).rename(columns = {0:'minus_di'})
        tsla['adx'] = pd.DataFrame(get_adx(tsla['high'], tsla['low'], tsla['close'], 14)[2]).rename(columns = {0:'adx'})
        tsla = tsla.dropna()
        tsla['ci_14_considating'] = np.where(tsla['ci_14'] >61.8,0,1)
        #tsla['ADX_considating'] = np.where(tsla['adx']<20,0,1)
        tsla['trend'] = np.where(tsla['plus_di'] >tsla['minus_di'],1,0)
        
        
        tsla['market_trend'] = ''
        for i in tsla.index:
            if tsla['ci_14_considating'][i]  ==1 and tsla['trend'][i] ==1:
                    tsla['market_trend'][i] = 1
            elif tsla['ci_14_considating'][i]  ==1  and tsla['trend'][i] ==0:
                    tsla['market_trend'][i] = -1  
            elif tsla['ci_14_considating'][i]  ==0:
                tsla['market_trend'][i] = 0
        
        signal = tsla.iloc[-1,:]
        signal =pd.DataFrame(signal).T
        return  signal
    
    def get_markett(symbols):    
        from datetime import datetime as dt
        import datetime
        today = dt.today()
        end= today-datetime.timedelta(1)
       # end = (yesterday.year, yesterday.month, yesterday.day)
        start = '2021-02-15'    
        market_trend = pd.DataFrame()  
        for ticker in symbols:
                data = get_trend (ticker, start, end)
                da = pd.DataFrame(data['market_trend'])
                da.index = [ticker]
                market_trend = pd.concat([market_trend, da], axis =0)     
        market_trend = market_trend.sort_index()
        return market_trend
    
    stock_priceaction = get_markett(symbols)
    
    # Output Images
    
    def get_pa_url(symbols):
        
        for ticker in symbols:
         
            import matplotlib.image as mpimg
            import matplotlib.pyplot as plt
            # Read Images
            img1= mpimg.imread(r'C:/Users/jizha/App-googlesheet/icon/pa_buy.jpg')
            img2= mpimg.imread(r'C:/Users/jizha/App-googlesheet/icon/pa_downtrend.jpg')
            img3= mpimg.imread(r'C:/Users/jizha/App-googlesheet/icon/pa_no_signal.jpg')
            img4= mpimg.imread(r'C:/Users/jizha/App-googlesheet/icon/pa_sell.jpg')
            img5= mpimg.imread(r'C:/Users/jizha/App-googlesheet/icon/pa_sideways.jpg')
            img6= mpimg.imread(r'C:/Users/jizha/App-googlesheet/icon/pa_uptrend.jpg')
            # Output Images
         
            if stock_priceaction['market_trend'][ticker] ==1:
                img6= mpimg.imread(r'C:/Users/jizha/App-googlesheet/icon/pa_uptrend.jpg')
                fig = plt.figure(figsize=(10,10))
                plt.imshow(img6)
                plt.axis("off")
                # plt.grid(b=None)
                plt.subplots_adjust(top = 1, bottom = 0, right = 1, left = 0, hspace = 0, wspace = 0)
                path ="C:\\users\jizha\Desktop\seabridge fintech\icon\\"
                plt.savefig(path +'{}.jpg'.format(ticker+"_pa_trend_signal"), dpi = 72,transparent = True, bbox_inches = 'tight', pad_inches = 0)
                plt.show()
                
            elif  stock_priceaction['market_trend'][ticker] ==-1:
                img2= mpimg.imread(r'C:/Users/jizha/App-googlesheet/icon/pa_downtrend.jpg')
                fig = plt.figure(figsize=(10,10))
                plt.imshow(img2)
                plt.axis("off")
                # plt.grid(b=None)
                plt.subplots_adjust(top = 1, bottom = 0, right = 1, left = 0, hspace = 0, wspace = 0)
                path ="C:\\users\jizha\Desktop\seabridge fintech\icon\\"
                plt.savefig(path +'{}.jpg'.format(ticker+"_pa_trend_signal"), dpi = 72,transparent = True, bbox_inches = 'tight', pad_inches = 0)
                plt.show()
            elif  stock_priceaction['market_trend'][ticker] ==0:
                img5= mpimg.imread(r'C:/Users/jizha/App-googlesheet/icon/pa_sideways.jpg')
                fig = plt.figure(figsize=(10,10))
                plt.imshow(img5)
                plt.axis("off")
                # plt.grid(b=None)
                plt.subplots_adjust(top = 1, bottom = 0, right = 1, left = 0, hspace = 0, wspace = 0)
                path ="C:\\users\jizha\Desktop\seabridge fintech\icon\\"
                plt.savefig(path +'{}.jpg'.format(ticker+"_pa_trend_signal"), dpi = 72,transparent = True, bbox_inches = 'tight', pad_inches = 0)
                plt.show()
                
        priceaction_url = pd.DataFrame()
        for ticker in symbols:
            image = pd.DataFrame()
            dr = "https://3arbzfbsh-cname-us.ngrok.io/Desktop/seabridge%20fintech/icon/"+ticker+"_pa_trend_signal.jpg"
            image['priceaction_url']=[ dr]
            image.index =[ticker]
            priceaction_url  = pd.concat([priceaction_url ,image], axis =0)
        priceaction_url  = priceaction_url .sort_index()   
        return  priceaction_url
    
    
    trend_ticker= list(stock_priceaction.index) 
    priceaction_url = get_pa_url(trend_ticker) 
    
    stock_info_data4 = stock_info_data3 .merge(priceaction_url,right_index = True, left_index = True)  
    
    
    
    ########################
    # import requests
    
    # def get_companyinfo(symbols):
    #     api_key1 = '86dd63f6b8ae774b061232685b78eb52'    
    #     stocks1 = pd.DataFrame(columns = [ 'description','symbol', 'weburl', 'logourl', 'name','mktCap','volAvg', 'industry','lastDiv','price'])
    #     for symb  in symbols:
    #         comp = requests.get(f'https://financialmodelingprep.com/api/v3/profile/{symb}?apikey={api_key1}').json()[0]
    #         stocks1 = stocks1.append({'description': comp['description'], 'symbol': comp['symbol'],\
    #                         'weburl': comp['website'], 'logourl': comp['image'], 'name': comp['companyName'], 'mktCap':comp['mktCap'],'volAvg':comp['volAvg'],'industry':comp['industry'],'lastDiv':comp['lastDiv'],'price':comp['price']}, ignore_index = True)
    #     return stocks1    
    
    # a =get_companyinfo(symbols)
    # a['div_yiel']= a['lastDiv']/a['price']
    # a[['lastDiv','price']] = a[['lastDiv','price']].applymap("{0:,.2f}".format) 
    # a['div_yiel'] =a['div_yiel'].apply(lambda x: "{0:.2f}%".format(x*100))
    
    # a =a.sort_index()
    # b = a[['symbol','volAvg','price','div_yiel']]
    # b =b.set_index('symbol')
    # b =b.sort_index()
    
    
    # stock_info_data5 =stock_info_data4.merge(b,right_index = True, left_index = True)
    
    # #stock_info_data5 ['AI_Signal'] ='None'
    
    
    # api_key = '86dd63f6b8ae774b061232685b78eb52' 
    # da = pd.DataFrame(columns = ['symbol','52wk_high','52wk_low'])
    # for ticker in symbols:
    #     #ticker = 'AAPL'
    #     bs5 = requests.get(f'https://financialmodelingprep.com/api/v3/quote/{ticker}?apikey={api_key}').json()  
    #     da =da.append({'symbol':bs5[0]['symbol'],'52wk_high':bs5[0]['yearHigh'],  '52wk_low':bs5[0]['yearLow']}, ignore_index = True)
        
    # da = da.set_index('symbol')
    # da[['52wk_high','52wk_low']] =da [['52wk_high','52wk_low']] .applymap("{0:,.2f}".format) 
    
    # stock_info_data51 = stock_info_data5.merge(da, right_index = True, left_index = True)
   # stock_info_data51['Ticker']=stock_info_data51.index
     

    return stock_info_data4

#####################################################stockdatat############################

symbols.remove('O')   
symbols.remove('ON')  
symbols.remove('MRK')   
group2.remove('EXR')
group3.remove('KR')
#group3.remove('META')
n =7# number of groups
groups = np.array_split(symbols, n)
      
group1 = groups[0].tolist()
group2 = groups[1].tolist()
group3 = groups[2].tolist()
group4 = groups[3].tolist()
group5 = groups[4].tolist()
group6 = groups[5].tolist()
# group7= groups[6].tolist()
# group8= groups[7].tolist()
# group9= groups[8].tolist()
# group10= groups[9].tolist()

from datetime import datetime as dt
import datetime
import time
stock_info_data51 = get_ticker(group1)
time.sleep(60)
stock_info_data52 = get_ticker(group2)
time.sleep(60)
stock_info_data53 = get_ticker(group3)
time.sleep(60)
stock_info_data54 = get_ticker(group4)
time.sleep(60)
stock_info_data55 = get_ticker(group5)
time.sleep(60)
stock_info_data56 = get_ticker(group6)
time.sleep(60)
# stock_info_data57= get_ticker(group7)
# time.sleep(60)
# stock_info_data58= get_ticker(group8)
# time.sleep(60)
# stock_info_data59= get_ticker(group9)
# time.sleep(60)
# stock_info_data60= get_ticker(group10)
# time.sleep(60)

#stock_info_data5.columns =stock_info_data5.columns.to_series().apply(lambda x: x.strip()) 

###############export to airtable###########
#stock_info_data5 =stock_info_data5.dtypes
#stock_info_data5 = stock_info_data5.astype(str)
#stock_info_data5['price'] = stock_info_data5['price'].astype(float)
#stock_info_data5['prev_close'] = stock_info_data5['prev_close'].astype(float)

stock_info_data51 [['description', 'logourl', 'name', 'mktCap', 'lastDiv', 'Date_access',
       'earning_date', 'pe_ratio(TTM)', 'eps(TTM)', 'im_res_sup',
       'image_return', 'center_gravity', 'vol_up1', 'vol_up2', 'vol_up3',
       'vol_down1', 'vol_down2', 'vol_down3', 
       'atr', 'last_peak', 'last_peakday', 'priceaction_url']] =stock_info_data51 [['description', 'logourl', 'name', 'mktCap', 'lastDiv', 'Date_access',
       'earning_date', 'pe_ratio(TTM)', 'eps(TTM)', 'im_res_sup',
       'image_return', 'center_gravity', 'vol_up1', 'vol_up2', 'vol_up3',
       'vol_down1', 'vol_down2', 'vol_down3', 
       'atr', 'last_peak', 'last_peakday', 'priceaction_url']].astype(str)
                                                                                              
#stock_info_data5[['recent_support',
     #  'recent_resistance', 'recent_stoploss', 'recent_trailingstoploss']] =  stock_info_data5[['recent_support',
     #  'recent_resistance', 'recent_stoploss', 'recent_trailingstoploss']].astype(float) 
                                                                                                                                                                                      
stock_info_data51['recent_support'] =[float(str(i).replace(",", "")) for i in stock_info_data51['recent_support']]                                                                                                
stock_info_data51['recent_resistance'] =[float(str(i).replace(",", "")) for i in stock_info_data51['recent_resistance']]   
stock_info_data51['recent_stoploss'] =[float(str(i).replace(",", "")) for i in stock_info_data51['recent_stoploss']]   
stock_info_data51['recent_trailingstoploss'] =[float(str(i).replace(",", "")) for i in stock_info_data51['recent_trailingstoploss']] 
                                                                                          
import os
from pprint import pprint
from airtable import Airtable
import airtable
import requests
import airtable
import json
base_key = 'appeRvxdi9NzuVglI'
table_name ='all_ticker'
api_key0 ='keyoQLQK3ktA58PBx'
airtable = Airtable(base_key, table_name, api_key0)

#records = airtable.get_all()
records = airtable.get_all(sort="symbol")
a=[]
for i in range(len(records)):
    a.append(records[i]['id'])
airtable.batch_delete(a)

###############insert_dataframe################
df = stock_info_data51.copy()
df =df.reset_index()
df=df.rename({"index":"symbol"}, axis = 1)
ab = upload_pandas_dataframe(df, table_name, api_key, base_key)



stock_info_data52  [['description', 'logourl', 'name', 'mktCap', 'lastDiv', 'Date_access',
       'earning_date', 'pe_ratio(TTM)', 'eps(TTM)', 'im_res_sup',
       'image_return', 'center_gravity', 'vol_up1', 'vol_up2', 'vol_up3',
       'vol_down1', 'vol_down2', 'vol_down3', 
       'atr', 'last_peak', 'last_peakday', 'priceaction_url']] =stock_info_data52 [['description', 'logourl', 'name', 'mktCap', 'lastDiv', 'Date_access',
       'earning_date', 'pe_ratio(TTM)', 'eps(TTM)', 'im_res_sup',
       'image_return', 'center_gravity', 'vol_up1', 'vol_up2', 'vol_up3',
       'vol_down1', 'vol_down2', 'vol_down3', 
       'atr', 'last_peak', 'last_peakday', 'priceaction_url']].astype(str)
                                                                                              
#stock_info_data5[['recent_support',
     #  'recent_resistance', 'recent_stoploss', 'recent_trailingstoploss']] =  stock_info_data5[['recent_support',
     #  'recent_resistance', 'recent_stoploss', 'recent_trailingstoploss']].astype(float) 
                                                                                                                                                                                      
stock_info_data52 ['recent_support'] =[float(str(i).replace(",", "")) for i in stock_info_data52 ['recent_support']]                                                                                                
stock_info_data52 ['recent_resistance'] =[float(str(i).replace(",", "")) for i in stock_info_data52 ['recent_resistance']]   
stock_info_data52 ['recent_stoploss'] =[float(str(i).replace(",", "")) for i in stock_info_data52 ['recent_stoploss']]   
stock_info_data52 ['recent_trailingstoploss'] =[float(str(i).replace(",", "")) for i in stock_info_data52['recent_trailingstoploss']] 
import os
from pprint import pprint
from airtable import Airtable
import airtable
import requests
import airtable
import json
base_key = 'appeRvxdi9NzuVglI'
table_name ='all_ticker1'
api_key0 ='keyoQLQK3ktA58PBx'
airtable = Airtable(base_key, table_name, api_key0)

#records = airtable.get_all()
records = airtable.get_all(sort="symbol")
a=[]
for i in range(len(records)):
    a.append(records[i]['id'])
airtable.batch_delete(a)

###############insert_dataframe################
df = stock_info_data52.copy()
df =df.reset_index()
df=df.rename({"index":"symbol"}, axis = 1)
ab = upload_pandas_dataframe(df, table_name, api_key, base_key)



stock_info_data53  [['description', 'logourl', 'name', 'mktCap', 'lastDiv', 'Date_access',
       'earning_date', 'pe_ratio(TTM)', 'eps(TTM)', 'im_res_sup',
       'image_return', 'center_gravity', 'vol_up1', 'vol_up2', 'vol_up3',
       'vol_down1', 'vol_down2', 'vol_down3', 
       'atr', 'last_peak', 'last_peakday', 'priceaction_url']] =stock_info_data53 [['description', 'logourl', 'name', 'mktCap', 'lastDiv', 'Date_access',
       'earning_date', 'pe_ratio(TTM)', 'eps(TTM)', 'im_res_sup',
       'image_return', 'center_gravity', 'vol_up1', 'vol_up2', 'vol_up3',
       'vol_down1', 'vol_down2', 'vol_down3', 
       'atr', 'last_peak', 'last_peakday', 'priceaction_url']].astype(str)
                                                                                              
#stock_info_data5[['recent_support',
     #  'recent_resistance', 'recent_stoploss', 'recent_trailingstoploss']] =  stock_info_data5[['recent_support',
     #  'recent_resistance', 'recent_stoploss', 'recent_trailingstoploss']].astype(float) 
                                                                                                                                                                                      
stock_info_data53 ['recent_support'] =[float(str(i).replace(",", "")) for i in stock_info_data53 ['recent_support']]                                                                                                
stock_info_data53 ['recent_resistance'] =[float(str(i).replace(",", "")) for i in stock_info_data53 ['recent_resistance']]   
stock_info_data53 ['recent_stoploss'] =[float(str(i).replace(",", "")) for i in stock_info_data53 ['recent_stoploss']]   
stock_info_data53 ['recent_trailingstoploss'] =[float(str(i).replace(",", "")) for i in stock_info_data53['recent_trailingstoploss']]

import os
from pprint import pprint
from airtable import Airtable
import airtable
import requests
import airtable
import json
base_key = 'appeRvxdi9NzuVglI'
table_name ='all_ticker2'
api_key ='keyoQLQK3ktA58PBx'
airtable = Airtable(base_key, table_name, api_key)

#records = airtable.get_all()
records = airtable.get_all(sort="symbol")
a=[]
for i in range(len(records)):
    a.append(records[i]['id'])
airtable.batch_delete(a)

###############insert_dataframe################
df = stock_info_data53.copy()
df =df.reset_index()
df=df.rename({"index":"symbol"}, axis = 1)
ab = upload_pandas_dataframe(df, table_name, api_key, base_key)



stock_info_data54 [['description', 'logourl', 'name', 'mktCap', 'lastDiv', 'Date_access',
       'earning_date', 'pe_ratio(TTM)', 'eps(TTM)', 'im_res_sup',
       'image_return', 'center_gravity', 'vol_up1', 'vol_up2', 'vol_up3',
       'vol_down1', 'vol_down2', 'vol_down3', 
       'atr', 'last_peak', 'last_peakday', 'priceaction_url']] =stock_info_data54 [['description', 'logourl', 'name', 'mktCap', 'lastDiv', 'Date_access',
       'earning_date', 'pe_ratio(TTM)', 'eps(TTM)', 'im_res_sup',
       'image_return', 'center_gravity', 'vol_up1', 'vol_up2', 'vol_up3',
       'vol_down1', 'vol_down2', 'vol_down3', 
       'atr', 'last_peak', 'last_peakday', 'priceaction_url']].astype(str)
                                                                                              
#stock_info_data5[['recent_support',
     #  'recent_resistance', 'recent_stoploss', 'recent_trailingstoploss']] =  stock_info_data5[['recent_support',
     #  'recent_resistance', 'recent_stoploss', 'recent_trailingstoploss']].astype(float) 
                                                                                                                                                                                      
stock_info_data54['recent_support'] =[float(str(i).replace(",", "")) for i in stock_info_data54['recent_support']]                                                                                                
stock_info_data54['recent_resistance'] =[float(str(i).replace(",", "")) for i in stock_info_data54['recent_resistance']]   
stock_info_data54['recent_stoploss'] =[float(str(i).replace(",", "")) for i in stock_info_data54['recent_stoploss']]   
stock_info_data54['recent_trailingstoploss'] =[float(str(i).replace(",", "")) for i in stock_info_data54['recent_trailingstoploss']]
import os
from pprint import pprint
from airtable import Airtable
import airtable
import requests
import airtable
import json
base_key = 'appeRvxdi9NzuVglI'
table_name ='all_ticker3'
api_key ='keyoQLQK3ktA58PBx'
airtable = Airtable(base_key, table_name, api_key)

#records = airtable.get_all()
records = airtable.get_all(sort="symbol")
a=[]
for i in range(len(records)):
    a.append(records[i]['id'])
airtable.batch_delete(a)

###############insert_dataframe################
df = stock_info_data54.copy()
df =df.reset_index()
df=df.rename({"index":"symbol"}, axis = 1)
ab = upload_pandas_dataframe(df, table_name, api_key, base_key)










stock_info_data55 [['description', 'logourl', 'name', 'mktCap', 'lastDiv', 'Date_access',
       'earning_date', 'pe_ratio(TTM)', 'eps(TTM)', 'im_res_sup',
       'image_return', 'center_gravity', 'vol_up1', 'vol_up2', 'vol_up3',
       'vol_down1', 'vol_down2', 'vol_down3', 
       'atr', 'last_peak', 'last_peakday', 'priceaction_url']] =stock_info_data55 [['description', 'logourl', 'name', 'mktCap', 'lastDiv', 'Date_access',
       'earning_date', 'pe_ratio(TTM)', 'eps(TTM)', 'im_res_sup',
       'image_return', 'center_gravity', 'vol_up1', 'vol_up2', 'vol_up3',
       'vol_down1', 'vol_down2', 'vol_down3', 
       'atr', 'last_peak', 'last_peakday', 'priceaction_url']].astype(str)
                                                                                              
#stock_info_data5[['recent_support',
     #  'recent_resistance', 'recent_stoploss', 'recent_trailingstoploss']] =  stock_info_data5[['recent_support',
     #  'recent_resistance', 'recent_stoploss', 'recent_trailingstoploss']].astype(float) 
                                                                                                                                                                                      
stock_info_data55['recent_support'] =[float(str(i).replace(",", "")) for i in stock_info_data55['recent_support']]                                                                                                
stock_info_data55['recent_resistance'] =[float(str(i).replace(",", "")) for i in stock_info_data55['recent_resistance']]   
stock_info_data55['recent_stoploss'] =[float(str(i).replace(",", "")) for i in stock_info_data55['recent_stoploss']]   
stock_info_data55['recent_trailingstoploss'] =[float(str(i).replace(",", "")) for i in stock_info_data55['recent_trailingstoploss']]
import os
from pprint import pprint
from airtable import Airtable
import airtable
import requests
import airtable
import json
base_key = 'appeRvxdi9NzuVglI'
table_name ='all_ticker4'
api_key ='keyoQLQK3ktA58PBx'
airtable = Airtable(base_key, table_name, api_key)

#records = airtable.get_all()
records = airtable.get_all(sort="symbol")
a=[]
for i in range(len(records)):
    a.append(records[i]['id'])
airtable.batch_delete(a)

###############insert_dataframe################
df = stock_info_data55.copy()
df =df.reset_index()
df=df.rename({"index":"symbol"}, axis = 1)
ab = upload_pandas_dataframe(df, table_name, api_key, base_key)




stock_info_data56 [['description', 'logourl', 'name', 'mktCap', 'lastDiv', 'Date_access',
       'earning_date', 'pe_ratio(TTM)', 'eps(TTM)', 'im_res_sup',
       'image_return', 'center_gravity', 'vol_up1', 'vol_up2', 'vol_up3',
       'vol_down1', 'vol_down2', 'vol_down3', 
       'atr', 'last_peak', 'last_peakday', 'priceaction_url']] =stock_info_data56 [['description', 'logourl', 'name', 'mktCap', 'lastDiv', 'Date_access',
       'earning_date', 'pe_ratio(TTM)', 'eps(TTM)', 'im_res_sup',
       'image_return', 'center_gravity', 'vol_up1', 'vol_up2', 'vol_up3',
       'vol_down1', 'vol_down2', 'vol_down3', 
       'atr', 'last_peak', 'last_peakday', 'priceaction_url']].astype(str)
                                                                                              
#stock_info_data5[['recent_support',
     #  'recent_resistance', 'recent_stoploss', 'recent_trailingstoploss']] =  stock_info_data5[['recent_support',
     #  'recent_resistance', 'recent_stoploss', 'recent_trailingstoploss']].astype(float) 
                                                                                                                                                                                      
stock_info_data56['recent_support'] =[float(str(i).replace(",", "")) for i in stock_info_data56['recent_support']]                                                                                                
stock_info_data56['recent_resistance'] =[float(str(i).replace(",", "")) for i in stock_info_data56['recent_resistance']]   
stock_info_data56['recent_stoploss'] =[float(str(i).replace(",", "")) for i in stock_info_data56['recent_stoploss']]   
stock_info_data56['recent_trailingstoploss'] =[float(str(i).replace(",", "")) for i in stock_info_data56['recent_trailingstoploss']]

import os
from pprint import pprint
from airtable import Airtable
import airtable
import requests
import airtable
import json
base_key = 'appeRvxdi9NzuVglI'
table_name ='all_ticker5'
api_key ='keyoQLQK3ktA58PBx'
airtable = Airtable(base_key, table_name, api_key)

#records = airtable.get_all()
records = airtable.get_all(sort="symbol")
a=[]
for i in range(len(records)):
    a.append(records[i]['id'])
airtable.batch_delete(a)

###############insert_dataframe################
df = stock_info_data56.copy()
df =df.reset_index()
df=df.rename({"index":"symbol"}, axis = 1)
ab = upload_pandas_dataframe(df, table_name, api_key, base_key)







# stock_info_data57 [['description', 'logourl', 'name', 'mktCap', 'lastDiv', 'Date_access',
#        'earning_date', 'pe_ratio(TTM)', 'eps(TTM)', 'im_res_sup',
#        'image_return', 'center_gravity', 'vol_up1', 'vol_up2', 'vol_up3',
#        'vol_down1', 'vol_down2', 'vol_down3', 
#        'atr', 'last_peak', 'last_peakday', 'priceaction_url']] =stock_info_data57 [['description', 'logourl', 'name', 'mktCap', 'lastDiv', 'Date_access',
#        'earning_date', 'pe_ratio(TTM)', 'eps(TTM)', 'im_res_sup',
#        'image_return', 'center_gravity', 'vol_up1', 'vol_up2', 'vol_up3',
#        'vol_down1', 'vol_down2', 'vol_down3', 
#        'atr', 'last_peak', 'last_peakday', 'priceaction_url']].astype(str)
# #stock_info_data5[['recent_support',
#      #  'recent_resistance', 'recent_stoploss', 'recent_trailingstoploss']] =  stock_info_data5[['recent_support',
#      #  'recent_resistance', 'recent_stoploss', 'recent_trailingstoploss']].astype(float) 
                                                                                                                                                                                      
# stock_info_data57['recent_support'] =[float(str(i).replace(",", "")) for i in stock_info_data57['recent_support']]                                                                                                
# stock_info_data57['recent_resistance'] =[float(str(i).replace(",", "")) for i in stock_info_data57['recent_resistance']]   
# stock_info_data57['recent_stoploss'] =[float(str(i).replace(",", "")) for i in stock_info_data57['recent_stoploss']]   
# stock_info_data57['recent_trailingstoploss'] =[float(str(i).replace(",", "")) for i in stock_info_data57['recent_trailingstoploss']]

# import os
# from pprint import pprint
# from airtable import Airtable
# import airtable
# import requests
# import airtable
# import json
# base_key = 'appeRvxdi9NzuVglI'
# table_name ='all_ticker6'
# api_key ='keyoQLQK3ktA58PBx'
# airtable = Airtable(base_key, table_name, api_key)

# #records = airtable.get_all()
# records = airtable.get_all(sort="symbol")
# a=[]
# for i in range(len(records)):
#     a.append(records[i]['id'])
# airtable.batch_delete(a)

# ###############insert_dataframe################
# df = stock_info_data57.copy()
# df =df.reset_index()
# df=df.rename({"index":"symbol"}, axis = 1)
# ab = upload_pandas_dataframe(df, table_name, api_key, base_key)



# stock_info_data58 [['description', 'logourl', 'name', 'mktCap', 'lastDiv', 'Date_access',
#        'earning_date', 'pe_ratio(TTM)', 'eps(TTM)', 'im_res_sup',
#        'image_return', 'center_gravity', 'vol_up1', 'vol_up2', 'vol_up3',
#        'vol_down1', 'vol_down2', 'vol_down3', 
#        'atr', 'last_peak', 'last_peakday', 'priceaction_url']] =stock_info_data58 [['description', 'logourl', 'name', 'mktCap', 'lastDiv', 'Date_access',
#        'earning_date', 'pe_ratio(TTM)', 'eps(TTM)', 'im_res_sup',
#        'image_return', 'center_gravity', 'vol_up1', 'vol_up2', 'vol_up3',
#        'vol_down1', 'vol_down2', 'vol_down3', 
#        'atr', 'last_peak', 'last_peakday', 'priceaction_url']].astype(str)
# #stock_info_data5[['recent_support',
#      #  'recent_resistance', 'recent_stoploss', 'recent_trailingstoploss']] =  stock_info_data5[['recent_support',
#      #  'recent_resistance', 'recent_stoploss', 'recent_trailingstoploss']].astype(float) 
                                                                                                                                                                                      
# stock_info_data58['recent_support'] =[float(str(i).replace(",", "")) for i in stock_info_data58['recent_support']]                                                                                                
# stock_info_data58['recent_resistance'] =[float(str(i).replace(",", "")) for i in stock_info_data58['recent_resistance']]   
# stock_info_data58['recent_stoploss'] =[float(str(i).replace(",", "")) for i in stock_info_data58['recent_stoploss']]   
# stock_info_data58['recent_trailingstoploss'] =[float(str(i).replace(",", "")) for i in stock_info_data58['recent_trailingstoploss']]

# import os
# from pprint import pprint
# from airtable import Airtable
# import airtable
# import requests
# import airtable
# import json
# base_key = 'appeRvxdi9NzuVglI'
# table_name ='all_ticker7'
# api_key ='keyoQLQK3ktA58PBx'
# airtable = Airtable(base_key, table_name, api_key)

# #records = airtable.get_all()
# records = airtable.get_all(sort="symbol")
# a=[]
# for i in range(len(records)):
#     a.append(records[i]['id'])
# airtable.batch_delete(a)

# ###############insert_dataframe################
# df = stock_info_data58.copy()
# df =df.reset_index()
# df=df.rename({"index":"symbol"}, axis = 1)
# ab = upload_pandas_dataframe(df, table_name, api_key, base_key)


# stock_info_data59 [['description', 'logourl', 'name', 'mktCap', 'lastDiv', 'Date_access',
#        'earning_date', 'pe_ratio(TTM)', 'eps(TTM)', 'im_res_sup',
#        'image_return', 'center_gravity', 'vol_up1', 'vol_up2', 'vol_up3',
#        'vol_down1', 'vol_down2', 'vol_down3', 
#        'atr', 'last_peak', 'last_peakday', 'priceaction_url']] =stock_info_data59 [['description', 'logourl', 'name', 'mktCap', 'lastDiv', 'Date_access',
#        'earning_date', 'pe_ratio(TTM)', 'eps(TTM)', 'im_res_sup',
#        'image_return', 'center_gravity', 'vol_up1', 'vol_up2', 'vol_up3',
#        'vol_down1', 'vol_down2', 'vol_down3', 
#        'atr', 'last_peak', 'last_peakday', 'priceaction_url']].astype(str)
# #stock_info_data5[['recent_support',
#      #  'recent_resistance', 'recent_stoploss', 'recent_trailingstoploss']] =  stock_info_data5[['recent_support',
#      #  'recent_resistance', 'recent_stoploss', 'recent_trailingstoploss']].astype(float) 
                                                                                                                                                                                      
# stock_info_data59['recent_support'] =[float(str(i).replace(",", "")) for i in stock_info_data59['recent_support']]                                                                                                
# stock_info_data59['recent_resistance'] =[float(str(i).replace(",", "")) for i in stock_info_data59['recent_resistance']]   
# stock_info_data59['recent_stoploss'] =[float(str(i).replace(",", "")) for i in stock_info_data59['recent_stoploss']]   
# stock_info_data59['recent_trailingstoploss'] =[float(str(i).replace(",", "")) for i in stock_info_data59['recent_trailingstoploss']]

# import os
# from pprint import pprint
# from airtable import Airtable
# import airtable
# import requests
# import airtable
# import json
# base_key = 'appeRvxdi9NzuVglI'
# table_name ='all_ticker8'
# api_key ='keyoQLQK3ktA58PBx'
# airtable = Airtable(base_key, table_name, api_key)

# #records = airtable.get_all()
# records = airtable.get_all(sort="symbol")
# a=[]
# for i in range(len(records)):
#     a.append(records[i]['id'])
# airtable.batch_delete(a)

# ###############insert_dataframe################
# df = stock_info_data59.copy()
# df =df.reset_index()
# df=df.rename({"index":"symbol"}, axis = 1)
# ab = upload_pandas_dataframe(df, table_name, api_key, base_key)



# stock_info_data60 [['description', 'logourl', 'name', 'mktCap', 'lastDiv', 'Date_access',
#        'earning_date', 'pe_ratio(TTM)', 'eps(TTM)', 'im_res_sup',
#        'image_return', 'center_gravity', 'vol_up1', 'vol_up2', 'vol_up3',
#        'vol_down1', 'vol_down2', 'vol_down3', 
#        'atr', 'last_peak', 'last_peakday', 'priceaction_url']] =stock_info_data60 [['description', 'logourl', 'name', 'mktCap', 'lastDiv', 'Date_access',
#        'earning_date', 'pe_ratio(TTM)', 'eps(TTM)', 'im_res_sup',
#        'image_return', 'center_gravity', 'vol_up1', 'vol_up2', 'vol_up3',
#        'vol_down1', 'vol_down2', 'vol_down3', 
#        'atr', 'last_peak', 'last_peakday', 'priceaction_url']].astype(str)
# #stock_info_data5[['recent_support',
#      #  'recent_resistance', 'recent_stoploss', 'recent_trailingstoploss']] =  stock_info_data5[['recent_support',
#      #  'recent_resistance', 'recent_stoploss', 'recent_trailingstoploss']].astype(float) 
                                                                                                                                                                                      
# stock_info_data60['recent_support'] =[float(str(i).replace(",", "")) for i in stock_info_data60['recent_support']]                                                                                                
# stock_info_data60['recent_resistance'] =[float(str(i).replace(",", "")) for i in stock_info_data60['recent_resistance']]   
# stock_info_data60['recent_stoploss'] =[float(str(i).replace(",", "")) for i in stock_info_data60['recent_stoploss']]   
# stock_info_data60['recent_trailingstoploss'] =[float(str(i).replace(",", "")) for i in stock_info_data60['recent_trailingstoploss']]

# import os
# from pprint import pprint
# from airtable import Airtable
# import airtable
# import requests
# import airtable
# import json
# base_key = 'appeRvxdi9NzuVglI'
# table_name ='all_ticker9'
# api_key ='keyoQLQK3ktA58PBx'
# airtable = Airtable(base_key, table_name, api_key)

# #records = airtable.get_all()
# records = airtable.get_all(sort="symbol")
# a=[]
# for i in range(len(records)):
#     a.append(records[i]['id'])
# airtable.batch_delete(a)

# ###############insert_dataframe################
# df = stock_info_data60.copy()
# df =df.reset_index()
# df=df.rename({"index":"symbol"}, axis = 1)
# ab = upload_pandas_dataframe(df, table_name, api_key, base_key)
