Spaces:
Sleeping
Sleeping
#import streamlit as st | |
import pandas as pd | |
from sklearn.ensemble import RandomForestRegressor | |
def rank( X, y): | |
""" | |
Gets a rank of relation of features to target | |
The output is a list of combination of features order by relevance by 'RF rank' | |
:param X: Train data without target | |
:param y: Target | |
""" | |
X = X | |
y = y | |
# estimators | |
rank = pd.DataFrame({'features': X.columns}) | |
rfr = RandomForestRegressor(n_jobs=-1, n_estimators=50, verbose=3) | |
rfr.fit(X, y) | |
rank['RFR'] = (rfr.feature_importances_ * 100) | |
#print(rank.sort_values('RFR', ascending=False)) | |
# opções de listas de features selecionadas para cada estimador | |
lista_comb_feat_RFR = [] | |
#for x in range(2, 11): | |
for x in range(2, len(rank)): | |
lista_comb_feat_RFR.append(rank.sort_values('RFR', ascending=False).head(x)['features'].tolist()) | |
return lista_comb_feat_RFR , rank.sort_values('RFR', ascending=False) | |
#UTILIZA LISTA COM NOMES ÚNICOS DAS AÇÕES, DATAFRAME DA B3, DADOS HISTÓRICOS E A TABELA DE INPUT COM UMA LINHA PARA CADA AÇÃO | |
def inputer_train(lista, df, data, df_filled): | |
for i in range(len(lista)): | |
if df.loc[(df['Código de Negociação'].str.contains(lista[i]))].sort_values('Tipo de Movimentação')[-1:]['Tipo de Movimentação'].item() == 'Venda': | |
#Construção das variáveis | |
preco_medio_compra = df.loc[(df['Código de Negociação'].str.contains(lista[i])) & (df['Tipo de Movimentação'] == 'Compra' )]['Preço'].mean() | |
quantidade_comprada = df.loc[(df['Código de Negociação'].str.contains(lista[i])) & (df['Tipo de Movimentação'] == 'Compra' )]['Quantidade'].sum() | |
preco_medio_vendido = df.loc[(df['Código de Negociação'].str.contains(lista[i])) & (df['Tipo de Movimentação'] == 'Venda' )]['Preço'].mean() | |
quantidade_vendida = df.loc[(df['Código de Negociação'].str.contains(lista[i])) & (df['Tipo de Movimentação'] == 'Venda' )]['Quantidade'].sum() | |
data_compra_1 = df.loc[(df['Código de Negociação'].str.contains(lista[i]))].sort_values('Data do Negócio')[-1:]['Data do Negócio'].item() | |
Ganho_total = (preco_medio_vendido - preco_medio_compra) * quantidade_vendida | |
rendimento_total = round(((preco_medio_vendido - preco_medio_compra) / preco_medio_vendido) * 100,2) | |
#dados históricos ticker | |
dados_acao = pd.DataFrame(data.loc[ : , (['Open','High','Low','Close','Adj Close','Volume'],lista[i]+".SA")]) | |
#dados_acao_filtrado = dados_acao.loc[dados_acao.index <= data_compra_1] | |
dados_acao_filtrado = dados_acao.loc[dados_acao.index <= pd.to_datetime(data_compra_1)] | |
#RENDIMENTO ULTIMOS X DIAS (ONTEM X DIA COMPARADO) | |
#valor da ultima cotação | |
cotacao_last = dados_acao_filtrado['Close'][-1:][lista[i]+".SA"][0] | |
#valor cotação x dias atras | |
try: | |
cotacao_7 = dados_acao_filtrado['Close'][-7:-6][lista[i]+".SA"][0] | |
cotacao_14 = dados_acao_filtrado['Close'][-14:-13][lista[i]+".SA"][0] | |
cotacao30 = dados_acao_filtrado['Close'][-30:-29][lista[i]+".SA"][0] | |
cotacao_60 = dados_acao_filtrado['Close'][-60:-59][lista[i]+".SA"][0] | |
cotacao_90 = dados_acao_filtrado['Close'][-90:-89][lista[i]+".SA"][0] | |
#% da queda ou aumento ultimos x dias | |
crescimento_7 = round(((cotacao_last - cotacao_7) / cotacao_7) * 100,2) | |
crescimento_14 = round(((cotacao_last - cotacao_14) / cotacao_14) * 100,2) | |
crescimento_30 = round(((cotacao_last - cotacao30) / cotacao30) * 100,2) | |
crescimento_60 = round(((cotacao_last - cotacao_60) / cotacao_60) * 100,2) | |
crescimento_90 = round(((cotacao_last - cotacao_90) / cotacao_90) * 100,2) | |
except: | |
exit | |
#CRESCIMENTO VOLUME ULTIMOS X DIAS (ONTEM X DIA COMPARADO) | |
#volume do dia anterior a compra | |
volume_last = dados_acao_filtrado['Volume'][-1:][lista[i]+".SA"][0] | |
#valor cotação x dias atras | |
try: | |
volume_7 = dados_acao_filtrado['Volume'][-7:-6][lista[i]+".SA"][0] | |
volume_14 = dados_acao_filtrado['Volume'][-14:-13][lista[i]+".SA"][0] | |
volume30 = dados_acao_filtrado['Volume'][-30:-29][lista[i]+".SA"][0] | |
volume_60 = dados_acao_filtrado['Volume'][-60:-59][lista[i]+".SA"][0] | |
volume_90 = dados_acao_filtrado['Volume'][-90:-89][lista[i]+".SA"][0] | |
#% da queda ou aumento ultimos x dias | |
crescimento_vol_7 = round(((volume_last - volume_7) / volume_7) * 100,2) | |
crescimento_vol_14 = round(((volume_last - volume_14) / volume_14) * 100,2) | |
crescimento_vol_30 = round(((volume_last - volume30) / volume30) * 100,2) | |
crescimento_vol_60 = round(((volume_last - volume_60) / volume_60) * 100,2) | |
crescimento_vol_90 = round(((volume_last - volume_90) / volume_90) * 100,2) | |
except: | |
exit | |
#RSI | |
try: | |
delta = dados_acao_filtrado['Close'][-90:].diff() | |
up, down = delta.copy(), delta.copy() | |
up[up < 0] = 0 | |
down[down > 0] = 0 | |
period = 14 | |
rUp = up.ewm(com=period - 1, adjust=False).mean() | |
rDown = down.ewm(com=period - 1, adjust=False).mean().abs() | |
delta['RSI'] = 100 - 100 / (1 + rUp / rDown).fillna(0) | |
rsi_0 = delta['RSI'][-1:][0] | |
rsi_7 = delta['RSI'][-7:-6][0] | |
rsi_14 = delta['RSI'][-14:-13][0] | |
rsi_30 = delta['RSI'][-30:-29][0] | |
rsi_60 = delta['RSI'][-60:-59][0] | |
#% da queda ou aumento ultimos x dias | |
cresc_rsi_7 = round(((rsi_0 - rsi_7) / rsi_7) * 100,2) | |
cresc_rsi_14 = round(((rsi_0 - rsi_14) / rsi_14) * 100,2) | |
cresc_rsi_30 = round(((rsi_0 - rsi_30) / rsi_30) * 100,2) | |
cresc_rsi_60 = round(((rsi_0 - rsi_60) / rsi_60) * 100,2) | |
except: | |
exit | |
#BOLINGER | |
try: | |
bolinger = dados_acao_filtrado.copy() | |
bolinger['MA20'] = dados_acao_filtrado['Close'].rolling(20).mean() | |
bolinger['20 Day STD'] = bolinger['Close'].rolling(window=20).std() | |
bolinger['Upper Band'] = bolinger['MA20'] + (bolinger['20 Day STD'] * 2) | |
bolinger['Lower Band'] = bolinger['MA20'] - (bolinger['20 Day STD'] * 2) | |
boolinger_up_0 = bolinger['Upper Band'][-1:][0] | |
boolinger_down_0 = bolinger['Lower Band'][-1:][0] | |
boolinger_up_7 = bolinger['Upper Band'][-7:-6][0] | |
boolinger_down_7 = bolinger['Lower Band'][-7:-6][0] | |
delta_bolinger_0 = round((boolinger_up_0 - boolinger_down_0) / boolinger_down_0 * 100,2) | |
cresc_bolinger_up_7 = round((boolinger_up_0 - boolinger_up_7) / boolinger_up_7 * 100,2) | |
cresc_bolinger_down_7 = round((boolinger_down_0 - boolinger_down_7) / boolinger_down_7 * 100,2) | |
except: | |
exit | |
#MÉDIAS MOVEIS | |
try: | |
time = dados_acao_filtrado.copy() | |
rolling_9 = time['Close'].rolling(window=9) | |
rolling_mean_9 = rolling_9.mean().round(1) | |
rolling_20 = time['Close'].rolling(window=20) | |
rolling_mean_20 = rolling_20.mean().round(1) | |
rolling_72 = time['Close'].rolling(window=72) | |
rolling_mean_72 = rolling_72.mean().round(1) | |
time['MM9'] = rolling_mean_9.fillna(0) | |
time['MM20'] = rolling_mean_20.fillna(0) | |
time['MM72'] = rolling_mean_72.fillna(0) | |
time['cruzamento'] = time['MM9'] - time['MM72'] | |
buy = time.tail(50).loc[(time.tail(50)['cruzamento']==0)] | |
if buy.empty == False: | |
cruzou_mm = 1 | |
else: | |
cruzou_mm = 0 | |
if time['MM72'].iloc[-1] < time['MM9'].iloc[-1]: | |
direcao_cruzada_cima = 1 | |
else: | |
direcao_cruzada_cima = 0 | |
mm9_0 = time['MM9'][-1:][0] | |
mm9_7 = time['MM9'][-7:-6][0] | |
mm9_14 = time['MM9'][-14:-13][0] | |
mm9_30 = time['MM9'][-30:-29][0] | |
mm9_60 = time['MM9'][-60:-59][0] | |
mm20_0 = time['MM20'][-1:][0] | |
mm20_7 = time['MM20'][-7:-6][0] | |
mm20_14 = time['MM20'][-14:-13][0] | |
mm20_30 = time['MM20'][-30:-29][0] | |
mm20_60 = time['MM20'][-60:-59][0] | |
mm72_0 = time['MM72'][-1:][0] | |
mm72_7 = time['MM72'][-7:-6][0] | |
mm72_14 = time['MM72'][-14:-13][0] | |
mm72_30 = time['MM72'][-30:-29][0] | |
mm72_60 = time['MM72'][-60:-59][0] | |
#% da queda ou aumento ultimos x dias | |
cresc_mm9_7 = round(((mm9_0 - mm9_7) / mm9_7) * 100,2) | |
cresc_mm9_14 = round(((mm9_0 - mm9_14) / mm9_14) * 100,2) | |
cresc_mm9_30 = round(((mm9_0 - mm9_30) / mm9_30) * 100,2) | |
cresc_mm9_60 = round(((mm9_0 - mm9_60) / mm9_60) * 100,2) | |
#% da queda ou aumento ultimos x dias | |
cresc_mm20_7 = round(((mm20_0 - mm20_7) / mm20_7) * 100,2) | |
cresc_mm20_14 = round(((mm20_0 - mm20_14) / mm20_14) * 100,2) | |
cresc_mm20_30 = round(((mm20_0 - mm20_30) / mm20_30) * 100,2) | |
cresc_mm20_60 = round(((mm20_0 - mm20_60) / mm20_60) * 100,2) | |
#% da queda ou aumento ultimos x dias | |
cresc_mm72_7 = round(((mm72_0 - mm72_7) / mm72_7) * 100,2) | |
cresc_mm72_14 = round(((mm72_0 - mm72_14) / mm72_14) * 100,2) | |
cresc_mm72_30 = round(((mm72_0 - mm72_30) / mm72_30) * 100,2) | |
cresc_mm72_60 = round(((mm72_0 - mm72_60) / mm72_60) * 100,2) | |
except: | |
exit | |
#try: | |
# pfizer = yf.Ticker(lista[i]) | |
# info = pfizer.info | |
# setor = info['sector'] | |
# atividade = info['industry'] | |
#except: | |
# exit | |
try: | |
#Atribuições | |
df_filled.loc[df_filled['name'].str.contains(lista[i]),'data_compra_1'] = data_compra_1 | |
df_filled.loc[df_filled['name'].str.contains(lista[i]),'Preço_médio_comprado'] = preco_medio_compra | |
df_filled.loc[df_filled['name'].str.contains(lista[i]),'Preço_médio_vendido'] = preco_medio_vendido | |
df_filled.loc[df_filled['name'].str.contains(lista[i]),'Ganho_total'] = Ganho_total | |
#df_filled.loc[df_filled['name'].str.contains(lista[i]),'Setor'] = setor | |
#df_filled.loc[df_filled['name'].str.contains(lista[i]),'Atividade'] = atividade | |
df_filled.loc[df_filled['name'].str.contains(lista[i]),'Rendimento_total_%'] = rendimento_total | |
df_filled.loc[df_filled['name'].str.contains(lista[i]),'Rendimento_ultimos_7_dias'] = crescimento_7 | |
df_filled.loc[df_filled['name'].str.contains(lista[i]),'Rendimento_ultimos_14_dias'] = crescimento_14 | |
df_filled.loc[df_filled['name'].str.contains(lista[i]),'Rendimento_ultimos_30_dias'] = crescimento_30 | |
df_filled.loc[df_filled['name'].str.contains(lista[i]),'Rendimento_ultimos_60_dias'] = crescimento_60 | |
df_filled.loc[df_filled['name'].str.contains(lista[i]),'Rendimento_ultimos_90_dias'] = crescimento_90 | |
df_filled.loc[df_filled['name'].str.contains(lista[i]),'crescimento_vol_ultimos_7_dias'] = crescimento_vol_7 | |
df_filled.loc[df_filled['name'].str.contains(lista[i]),'crescimento_vol_ultimos_14_dias'] = crescimento_vol_14 | |
df_filled.loc[df_filled['name'].str.contains(lista[i]),'crescimento_vol_ultimos_30_dias'] = crescimento_vol_30 | |
df_filled.loc[df_filled['name'].str.contains(lista[i]),'crescimento_vol_ultimos_60_dias'] = crescimento_vol_60 | |
df_filled.loc[df_filled['name'].str.contains(lista[i]),'crescimento_vol_ultimos_90_dias'] = crescimento_vol_90 | |
df_filled.loc[df_filled['name'].str.contains(lista[i]),'rsi'] = rsi_0 | |
df_filled.loc[df_filled['name'].str.contains(lista[i]),'cresc_rsi_ultimos_7_dias'] = cresc_rsi_7 | |
df_filled.loc[df_filled['name'].str.contains(lista[i]),'cresc_rsi_ultimos_14_dias'] = cresc_rsi_14 | |
df_filled.loc[df_filled['name'].str.contains(lista[i]),'cresc_rsi_ultimos_30_dias'] = cresc_rsi_30 | |
df_filled.loc[df_filled['name'].str.contains(lista[i]),'cresc_rsi_ultimos_60_dias'] = cresc_rsi_60 | |
df_filled.loc[df_filled['name'].str.contains(lista[i]),'delta_bolinger_0'] = delta_bolinger_0 | |
df_filled.loc[df_filled['name'].str.contains(lista[i]),'cresc_bolinger_up_7'] = cresc_bolinger_up_7 | |
df_filled.loc[df_filled['name'].str.contains(lista[i]),'cresc_bolinger_down_7'] = cresc_bolinger_down_7 | |
df_filled.loc[df_filled['name'].str.contains(lista[i]),'cruzou_mm'] = cruzou_mm | |
df_filled.loc[df_filled['name'].str.contains(lista[i]),'direcao_cruzada_mm_cima'] = direcao_cruzada_cima | |
df_filled.loc[df_filled['name'].str.contains(lista[i]),'cresc_mm9_ultimos_7_dias'] = cresc_mm9_7 | |
df_filled.loc[df_filled['name'].str.contains(lista[i]),'cresc_mm9_ultimos_14_dias'] = cresc_mm9_14 | |
df_filled.loc[df_filled['name'].str.contains(lista[i]),'cresc_mm9_ultimos_30_dias'] = cresc_mm9_30 | |
df_filled.loc[df_filled['name'].str.contains(lista[i]),'cresc_mm9_ultimos_60_dias'] = cresc_mm9_60 | |
df_filled.loc[df_filled['name'].str.contains(lista[i]),'cresc_mm20_ultimos_7_dias'] = cresc_mm20_7 | |
df_filled.loc[df_filled['name'].str.contains(lista[i]),'cresc_mm20_ultimos_14_dias'] = cresc_mm20_14 | |
df_filled.loc[df_filled['name'].str.contains(lista[i]),'cresc_mm20_ultimos_30_dias'] = cresc_mm20_30 | |
df_filled.loc[df_filled['name'].str.contains(lista[i]),'cresc_mm20_ultimos_60_dias'] = cresc_mm20_60 | |
df_filled.loc[df_filled['name'].str.contains(lista[i]),'cresc_mm72_ultimos_7_dias'] = cresc_mm72_7 | |
df_filled.loc[df_filled['name'].str.contains(lista[i]),'cresc_mm72_ultimos_14_dias'] = cresc_mm72_14 | |
df_filled.loc[df_filled['name'].str.contains(lista[i]),'cresc_mm72_ultimos_30_dias'] = cresc_mm72_30 | |
df_filled.loc[df_filled['name'].str.contains(lista[i]),'cresc_mm72_ultimos_60_dias'] = cresc_mm72_60 | |
except: | |
exit | |
def inputer_predict(data, df_filled): | |
lista = list(df_filled['name']) | |
for i in range(len(df_filled)): | |
dados_acao = pd.DataFrame(data.loc[ : , (['Open','High','Low','Close','Adj Close','Volume'],lista[i]+".SA")]) | |
dados_acao_filtrado = dados_acao.copy() | |
#RENDIMENTO ULTIMOS X DIAS (ONTEM X DIA COMPARADO) | |
#valor da ultima cotação | |
cotacao_last = dados_acao_filtrado['Close'][-1:][lista[i]+".SA"][0] | |
#valor cotação x dias atras | |
try: | |
cotacao_7 = dados_acao_filtrado['Close'][-7:-6][lista[i]+".SA"][0] | |
cotacao_14 = dados_acao_filtrado['Close'][-14:-13][lista[i]+".SA"][0] | |
cotacao30 = dados_acao_filtrado['Close'][-30:-29][lista[i]+".SA"][0] | |
cotacao_60 = dados_acao_filtrado['Close'][-60:-59][lista[i]+".SA"][0] | |
cotacao_90 = dados_acao_filtrado['Close'][-90:-89][lista[i]+".SA"][0] | |
#% da queda ou aumento ultimos x dias | |
crescimento_7 = round(((cotacao_last - cotacao_7) / cotacao_7) * 100,2) | |
crescimento_14 = round(((cotacao_last - cotacao_14) / cotacao_14) * 100,2) | |
crescimento_30 = round(((cotacao_last - cotacao30) / cotacao30) * 100,2) | |
crescimento_60 = round(((cotacao_last - cotacao_60) / cotacao_60) * 100,2) | |
crescimento_90 = round(((cotacao_last - cotacao_90) / cotacao_90) * 100,2) | |
except: | |
exit | |
#CRESCIMENTO VOLUME ULTIMOS X DIAS (ONTEM X DIA COMPARADO) | |
#volume do dia anterior a compra | |
volume_last = dados_acao_filtrado['Volume'][-1:][lista[i]+".SA"][0] | |
#valor cotação x dias atras | |
try: | |
volume_7 = dados_acao_filtrado['Volume'][-7:-6][lista[i]+".SA"][0] | |
volume_14 = dados_acao_filtrado['Volume'][-14:-13][lista[i]+".SA"][0] | |
volume30 = dados_acao_filtrado['Volume'][-30:-29][lista[i]+".SA"][0] | |
volume_60 = dados_acao_filtrado['Volume'][-60:-59][lista[i]+".SA"][0] | |
volume_90 = dados_acao_filtrado['Volume'][-90:-89][lista[i]+".SA"][0] | |
#% da queda ou aumento ultimos x dias | |
crescimento_vol_7 = round(((volume_last - volume_7) / volume_7) * 100,2) | |
crescimento_vol_14 = round(((volume_last - volume_14) / volume_14) * 100,2) | |
crescimento_vol_30 = round(((volume_last - volume30) / volume30) * 100,2) | |
crescimento_vol_60 = round(((volume_last - volume_60) / volume_60) * 100,2) | |
crescimento_vol_90 = round(((volume_last - volume_90) / volume_90) * 100,2) | |
except: | |
exit | |
#RSI | |
try: | |
delta = dados_acao_filtrado['Close'][-90:].diff() | |
up, down = delta.copy(), delta.copy() | |
up[up < 0] = 0 | |
down[down > 0] = 0 | |
period = 14 | |
rUp = up.ewm(com=period - 1, adjust=False).mean() | |
rDown = down.ewm(com=period - 1, adjust=False).mean().abs() | |
delta['RSI'] = 100 - 100 / (1 + rUp / rDown).fillna(0) | |
rsi_0 = delta['RSI'][-1:][0] | |
rsi_7 = delta['RSI'][-7:-6][0] | |
rsi_14 = delta['RSI'][-14:-13][0] | |
rsi_30 = delta['RSI'][-30:-29][0] | |
rsi_60 = delta['RSI'][-60:-59][0] | |
#% da queda ou aumento ultimos x dias | |
cresc_rsi_7 = round(((rsi_0 - rsi_7) / rsi_7) * 100,2) | |
cresc_rsi_14 = round(((rsi_0 - rsi_14) / rsi_14) * 100,2) | |
cresc_rsi_30 = round(((rsi_0 - rsi_30) / rsi_30) * 100,2) | |
cresc_rsi_60 = round(((rsi_0 - rsi_60) / rsi_60) * 100,2) | |
except: | |
exit | |
#BOLINGER | |
try: | |
bolinger = dados_acao_filtrado.copy() | |
bolinger['MA20'] = dados_acao_filtrado['Close'].rolling(20).mean() | |
bolinger['20 Day STD'] = bolinger['Close'].rolling(window=20).std() | |
bolinger['Upper Band'] = bolinger['MA20'] + (bolinger['20 Day STD'] * 2) | |
bolinger['Lower Band'] = bolinger['MA20'] - (bolinger['20 Day STD'] * 2) | |
boolinger_up_0 = bolinger['Upper Band'][-1:][0] | |
boolinger_down_0 = bolinger['Lower Band'][-1:][0] | |
boolinger_up_7 = bolinger['Upper Band'][-7:-6][0] | |
boolinger_down_7 = bolinger['Lower Band'][-7:-6][0] | |
delta_bolinger_0 = round((boolinger_up_0 - boolinger_down_0) / boolinger_down_0 * 100,2) | |
cresc_bolinger_up_7 = round((boolinger_up_0 - boolinger_up_7) / boolinger_up_7 * 100,2) | |
cresc_bolinger_down_7 = round((boolinger_down_0 - boolinger_down_7) / boolinger_down_7 * 100,2) | |
except: | |
exit | |
#MÉDIAS MOVEIS | |
try: | |
time = dados_acao_filtrado.copy() | |
rolling_9 = time['Close'].rolling(window=9) | |
rolling_mean_9 = rolling_9.mean().round(1) | |
rolling_20 = time['Close'].rolling(window=20) | |
rolling_mean_20 = rolling_20.mean().round(1) | |
rolling_72 = time['Close'].rolling(window=72) | |
rolling_mean_72 = rolling_72.mean().round(1) | |
time['MM9'] = rolling_mean_9.fillna(0) | |
time['MM20'] = rolling_mean_20.fillna(0) | |
time['MM72'] = rolling_mean_72.fillna(0) | |
time['cruzamento'] = time['MM9'] - time['MM72'] | |
buy = time.tail(50).loc[(time.tail(50)['cruzamento']==0)] | |
if buy.empty == False: | |
cruzou_mm = 1 | |
else: | |
cruzou_mm = 0 | |
if time['MM72'].iloc[-1] < time['MM9'].iloc[-1]: | |
direcao_cruzada_cima = 1 | |
else: | |
direcao_cruzada_cima = 0 | |
mm9_0 = time['MM9'][-1:][0] | |
mm9_7 = time['MM9'][-7:-6][0] | |
mm9_14 = time['MM9'][-14:-13][0] | |
mm9_30 = time['MM9'][-30:-29][0] | |
mm9_60 = time['MM9'][-60:-59][0] | |
mm20_0 = time['MM20'][-1:][0] | |
mm20_7 = time['MM20'][-7:-6][0] | |
mm20_14 = time['MM20'][-14:-13][0] | |
mm20_30 = time['MM20'][-30:-29][0] | |
mm20_60 = time['MM20'][-60:-59][0] | |
mm72_0 = time['MM72'][-1:][0] | |
mm72_7 = time['MM72'][-7:-6][0] | |
mm72_14 = time['MM72'][-14:-13][0] | |
mm72_30 = time['MM72'][-30:-29][0] | |
mm72_60 = time['MM72'][-60:-59][0] | |
#% da queda ou aumento ultimos x dias | |
cresc_mm9_7 = round(((mm9_0 - mm9_7) / mm9_7) * 100,2) | |
cresc_mm9_14 = round(((mm9_0 - mm9_14) / mm9_14) * 100,2) | |
cresc_mm9_30 = round(((mm9_0 - mm9_30) / mm9_30) * 100,2) | |
cresc_mm9_60 = round(((mm9_0 - mm9_60) / mm9_60) * 100,2) | |
#% da queda ou aumento ultimos x dias | |
cresc_mm20_7 = round(((mm20_0 - mm20_7) / mm20_7) * 100,2) | |
cresc_mm20_14 = round(((mm20_0 - mm20_14) / mm20_14) * 100,2) | |
cresc_mm20_30 = round(((mm20_0 - mm20_30) / mm20_30) * 100,2) | |
cresc_mm20_60 = round(((mm20_0 - mm20_60) / mm20_60) * 100,2) | |
#% da queda ou aumento ultimos x dias | |
cresc_mm72_7 = round(((mm72_0 - mm72_7) / mm72_7) * 100,2) | |
cresc_mm72_14 = round(((mm72_0 - mm72_14) / mm72_14) * 100,2) | |
cresc_mm72_30 = round(((mm72_0 - mm72_30) / mm72_30) * 100,2) | |
cresc_mm72_60 = round(((mm72_0 - mm72_60) / mm72_60) * 100,2) | |
except: | |
exit | |
try: | |
#Atribuições | |
#df_filled.loc[df_filled['name'].str.contains(lista[i]),'data_compra_1'] = data_compra_1 | |
#df_filled.loc[df_filled['name'].str.contains(lista[i]),'Preço_médio_comprado'] = preco_medio_compra | |
#df_filled.loc[df_filled['name'].str.contains(lista[i]),'Preço_médio_vendido'] = preco_medio_vendido | |
#df_filled.loc[df_filled['name'].str.contains(lista[i]),'Ganho_total'] = Ganho_total | |
#df_filled.loc[df_filled['name'].str.contains(lista[i]),'Setor'] = setor | |
#df_filled.loc[df_filled['name'].str.contains(lista[i]),'Atividade'] = atividade | |
#df_filled.loc[df_filled['name'].str.contains(lista[i]),'Rendimento_total_%'] = rendimento_total | |
df_filled.loc[df_filled['name'].str.contains(lista[i]),'Rendimento_ultimos_7_dias'] = crescimento_7 | |
df_filled.loc[df_filled['name'].str.contains(lista[i]),'Rendimento_ultimos_14_dias'] = crescimento_14 | |
df_filled.loc[df_filled['name'].str.contains(lista[i]),'Rendimento_ultimos_30_dias'] = crescimento_30 | |
df_filled.loc[df_filled['name'].str.contains(lista[i]),'Rendimento_ultimos_60_dias'] = crescimento_60 | |
df_filled.loc[df_filled['name'].str.contains(lista[i]),'Rendimento_ultimos_90_dias'] = crescimento_90 | |
df_filled.loc[df_filled['name'].str.contains(lista[i]),'crescimento_vol_ultimos_7_dias'] = crescimento_vol_7 | |
df_filled.loc[df_filled['name'].str.contains(lista[i]),'crescimento_vol_ultimos_14_dias'] = crescimento_vol_14 | |
df_filled.loc[df_filled['name'].str.contains(lista[i]),'crescimento_vol_ultimos_30_dias'] = crescimento_vol_30 | |
df_filled.loc[df_filled['name'].str.contains(lista[i]),'crescimento_vol_ultimos_60_dias'] = crescimento_vol_60 | |
df_filled.loc[df_filled['name'].str.contains(lista[i]),'crescimento_vol_ultimos_90_dias'] = crescimento_vol_90 | |
df_filled.loc[df_filled['name'].str.contains(lista[i]),'rsi'] = rsi_0 | |
df_filled.loc[df_filled['name'].str.contains(lista[i]),'cresc_rsi_ultimos_7_dias'] = cresc_rsi_7 | |
df_filled.loc[df_filled['name'].str.contains(lista[i]),'cresc_rsi_ultimos_14_dias'] = cresc_rsi_14 | |
df_filled.loc[df_filled['name'].str.contains(lista[i]),'cresc_rsi_ultimos_30_dias'] = cresc_rsi_30 | |
df_filled.loc[df_filled['name'].str.contains(lista[i]),'cresc_rsi_ultimos_60_dias'] = cresc_rsi_60 | |
df_filled.loc[df_filled['name'].str.contains(lista[i]),'delta_bolinger_0'] = delta_bolinger_0 | |
df_filled.loc[df_filled['name'].str.contains(lista[i]),'cresc_bolinger_up_7'] = cresc_bolinger_up_7 | |
df_filled.loc[df_filled['name'].str.contains(lista[i]),'cresc_bolinger_down_7'] = cresc_bolinger_down_7 | |
df_filled.loc[df_filled['name'].str.contains(lista[i]),'cruzou_mm'] = cruzou_mm | |
df_filled.loc[df_filled['name'].str.contains(lista[i]),'direcao_cruzada_mm_cima'] = direcao_cruzada_cima | |
df_filled.loc[df_filled['name'].str.contains(lista[i]),'cresc_mm9_ultimos_7_dias'] = cresc_mm9_7 | |
df_filled.loc[df_filled['name'].str.contains(lista[i]),'cresc_mm9_ultimos_14_dias'] = cresc_mm9_14 | |
df_filled.loc[df_filled['name'].str.contains(lista[i]),'cresc_mm9_ultimos_30_dias'] = cresc_mm9_30 | |
df_filled.loc[df_filled['name'].str.contains(lista[i]),'cresc_mm9_ultimos_60_dias'] = cresc_mm9_60 | |
df_filled.loc[df_filled['name'].str.contains(lista[i]),'cresc_mm20_ultimos_7_dias'] = cresc_mm20_7 | |
df_filled.loc[df_filled['name'].str.contains(lista[i]),'cresc_mm20_ultimos_14_dias'] = cresc_mm20_14 | |
df_filled.loc[df_filled['name'].str.contains(lista[i]),'cresc_mm20_ultimos_30_dias'] = cresc_mm20_30 | |
df_filled.loc[df_filled['name'].str.contains(lista[i]),'cresc_mm20_ultimos_60_dias'] = cresc_mm20_60 | |
df_filled.loc[df_filled['name'].str.contains(lista[i]),'cresc_mm72_ultimos_7_dias'] = cresc_mm72_7 | |
df_filled.loc[df_filled['name'].str.contains(lista[i]),'cresc_mm72_ultimos_14_dias'] = cresc_mm72_14 | |
df_filled.loc[df_filled['name'].str.contains(lista[i]),'cresc_mm72_ultimos_30_dias'] = cresc_mm72_30 | |
df_filled.loc[df_filled['name'].str.contains(lista[i]),'cresc_mm72_ultimos_60_dias'] = cresc_mm72_60 | |
except: | |
exit | |
return df_filled | |