def v_seasonality(datos): """ Visualización de la prueba de estacionalidad por medio de gráficas de los datos ya estacionarios Parameters ---------- datos : pd.DataFrame : con información contenida en archivo leido Returns ------- Cuatro gráficas en una imagen que reflejan la prueba de estacionalidad de los datos """ datos = fn.f_leer_archivo( param_archivo='archivos/FedInterestRateDecision-UnitedStates.xlsx', sheet_name=0) datos = datos.set_index('datetime') datos_dif = datos - datos.shift() datos_dif.dropna(inplace=True) serie = datos_dif['actual'] serie = serie.resample('M').mean().ffill() result = STL(serie).fit() charts = result.plot() plt.show()
def v_norm_resids(datos): """ Visualización de la prueba de normalidad con residuales del modelo ARIMA Parameters ---------- datos : pd.DataFrame : con información contenida en archivo leido Returns ------- Gráfica tipo histograma de los residuales del modelo ARIMA """ datos = fn.f_leer_archivo( param_archivo='archivos/FedInterestRateDecision-UnitedStates.xlsx', sheet_name=0) datos = datos.set_index('datetime') datos_dif = datos - datos.shift() datos_dif.dropna(inplace=True) datos_dif_ac = datos_dif['actual'] model = sm.tsa.ARIMA(datos_dif_ac, order=(3, 1, 3)).fit(disp=False) resid = model.resid fig = plt.figure(figsize=(12, 8)) ax0 = fig.add_subplot(111) sb.distplot(resid, fit=stats.norm, ax=ax0) (mu, sigma) = stats.norm.fit(resid) plt.legend( ['Normal dist. ($\mu=$ {:.2f} y $\sigma=$ {:.2f} )'.format(mu, sigma)], loc='best') plt.ylabel('Frecuencia') plt.title('Distribución de residuales') fig = plt.figure(figsize=(12, 8))
def pie(param_data): #Se lee el archivo a graficar df_data = fn.f_leer_archivo(param_archivo=data) #columna de pips df_data = fn.f_columnas_pips(df_data) #Se vuelve a crear el ranking df_1_ranking = fn.f_estadistica_ba2(param_data=df_data) df = df_1_ranking labels = df['simbolo'] values = df['rank'] pastel = go.Figure(data=[ go.Pie( labels=labels, values=values, pull=[0.05, 0.05, 0, 0, 0, 0, 0], ) ]) pastel.update_layout(title="Ranking de Instrumentos") pastel.show() #Se guarda la imagen con el objetivo de tener la visualización de la gráfica en Github if not os.path.exists("images"): os.mkdir("images") pastel.write_image("images/fig1.jpeg") #Guardar imagen return pastel
def v_model_arima_orig(datos): """ Parameters ---------- datos : pd.DataFrame : con información contenida en archivo leido Returns ------- Gráfica del indicador ya estacionario y el modelo ARIMA(3,1,3) ajustado al comportamiento de ese indicador """ datos = fn.f_leer_archivo( param_archivo='archivos/FedInterestRateDecision-UnitedStates.xlsx', sheet_name=0) datos = datos.set_index('datetime') datos_dif = datos - datos.shift() datos_dif.dropna(inplace=True) datos_dif_ac = datos_dif['actual'] model = ARIMA(datos_dif_ac, order=(3, 1, 3)) results = model.fit(disp=-1) predictions_ARIMA_dif = pd.Series(results.fittedvalues, copy=True) predictions_ARIMA_dif_cumsum = predictions_ARIMA_dif.cumsum() plt.plot(datos_dif_ac) plt.plot(predictions_ARIMA_dif_cumsum) plt.title('ARIMA(3,1,3)') plt.show()
# -- ------------------------------------------------------------------------------------ -- # # -- proyecto: Microestructura y Sistemas de Trading - Laboratorio 2 - Behavioral Finance # -- archivo: principal.py - flujo principal del proyecto # -- mantiene: Natasha Gamez # -- repositorio: https://github.com/NatashaGamez/Lab_2_LNGO # -- ------------------------------------------------------------------------------------ -- # import funciones as fn #Datos datos = fn.f_leer_archivo(param_archivo='archivo_tradeview_1.xlsx') #Pip size pip_size = fn.f_pip_size(param_ins='eurusd') #Tranformaciones de tiempo datos = fn.f_columnas_tiempos(param_data=datos) #Transformaciones Pips datos = fn.f_columnas_pips(param_data=datos) # Estadisticas basicas y Raking [df_1_tabla, df_1_ranking] = fn.f_estadisticas_ba(param_data=datos) # Capital acumulado datos = fn.capital_acm(param_data=datos) # Profit diario, profit diario opercaiones buy, profit diario opercaiones sell [df_profit_d, profit_d_acm_c, profit_d_acm_v] = fn.f_profit_diario(param_data=datos) # Medidas de Atribución al Desempeño (MAD) Est_MAD = fn.f_estadisticas_mad(df_profit_d, profit_d_acm_c, profit_d_acm_v) # Segos cognitivos df_be_de = fn.f_be_de(datos)
import funciones as fn import pandas as pd #%% datos = fn.f_leer_archivo('archivo_tradeview_1.xlsx') import funciones as fn # no esta completo def importar_precios(n_archivo): data = pd.read_csv(n_archivo) return data importar_precios('trade3.XLS') def f_pip_size(param_inst): #inst=inst.lower() #pips_inst={'usdjpy':100, # 'gbpjpy':100} return 1
# -- ------------------------------------------------------------------------------------ -- # # -- proyecto: Microestructura y Sistemas de Trading - Laboratorio 2 - Behavioral Finance # -- archivo: principal.py - Codigo principal para el proyecto # -- mantiene: Alejandra Cortes # -- repositorio: https://github.com/alecortees22/LAB_2_ACS # -- ------------------------------------------------------------------------------------ -- # import funciones as fn import visualizaciones as vn import pandas as pd df_data = fn.f_leer_archivo(param_archivo='Statement_1.xlsx') time = fn.f_columns_datos(df_data) pips = fn.f_columns_pips(df_data) estadisticas = fn.f_estadisticas_ba(df_data) eurusd = fn.f_pip_size('eurusd-2') pd = fn.f_profit_diario(df_data) mad = fn.f_estadisticas_mad(df_data) seg_cog = fn.f_be_de(df_data)
# -- ------------------------------------------------------------------------------------ -- # # -- proyecto: Microestructura y Sistemas de Trading - Laboratorio 2 - Behavioral Finance # -- archivo: principal.py - flujo principal del proyecto # -- mantiene: Fernanda Pinedo # -- repositorio: https://github.com/ferpinedot/LAB_2_MFPT # -- ------------------------------------------------------------------------------------ -- # import funciones as fn import visualizaciones as vn # Leer el archivo # Ejemplo del prof # datos = fn.f_leer_archivo(param_archivo='archivos/archivo_tradeview_1.xlsx', sheet_name= 0) # Mi archivo PAP datos = fn.f_leer_archivo(param_archivo='archivos/archivo_pap_.xlsx', sheet_name=0) # Mi archivo OANDA # datos = fn.f_leer_archivo(param_archivo='archivos/archivo_oanda.xlsx', sheet_name= 0) # Tiempo de la operación datos = fn.f_columnas_tiempos(datos) # Número de pips datos = fn.f_columnas_pips(datos) # Capital acumulado ($) datos = fn.f_capital_acm(datos) #graph = vn.profitd(datos) # Estadísticas básicas estadisticas = fn.f_basic_stats(datos)
# -- ------------------------------------------------------------------------------------ -- # # -- proyecto: Microestructura y Sistemas de Trading - Proyecto Final - Behavioral Finance # -- archivo: principal.py - aplicación de las funciones a los datos # -- mantiene: Tamara Mtz. # -- Natasha Gamez # -- María Fernanda Ansoleaga # -- repositorio: https://github.com/NatashaGamez/proyecto_equipo_2 # -- ------------------------------------------------------------------------------------ -- # import funciones as fn import visualizaciones as vn datos = fn.f_leer_archivo(param_archivo='data2.xlsx') df_pe = fn.f_precios(param_data=datos) serie = vn.plot_profit_diario(datos=datos) estacionariedad = fn.f_estacionaria(param_data=datos) autocorr = fn.f_autocorrelation(param_data=datos) pltauto= vn.autocorr(datos) seasonality = vn.f_seasonality(param_data=datos) hetero = fn.f_hetero(param_data=datos) normtest = vn.f_normt(param_data=datos) pltnorm = vn.f_normtest(param_data=datos) outliers = vn.f_outliers(param_data=datos) df_clasificacion = fn.f_clasificacion(param_data=datos) df_metricas = fn.f_metrica(param_data=df_pe)
@author: Estavillo """ # -- ------------------------------------------------------------------------------------ -- # # -- proyecto: Microestructura y Sistemas de Trading - Laboratorio 2 - Behavioral Finance # -- archivo: principal.py - layout general del proyecto # -- mantiene: Juan Pablo Estavillo # -- repositorio: https://github.com/ # -- ------------------------------------------------------------------------------------ -- # import plotly.offline as py # hasta arriba # en el mismo renglon import funciones as fn #aqui están todas las funciones import pandas as pd #pandas aunque no se use import plotly.graph_objects as go #para graficar #%% #leer archivo data = fn.f_leer_archivo('trade3.xlsx') #agregar columna de tiempo data = fn.f_columnas_tiempos(data) #agregar columna de pip data = fn.f_columnas_pips(data) #diccionario con estadísticas de operaciones estadistica_operaciones = fn.f_estadisticas_ba(data) #crear dataframe con los profits de cada dia profit_d = fn.f_profit_diario(data) #aqui se hacen las medidas de atribucion al riesgo Medidas_atribucion_riesgo = fn.f_stats_mad(data)
# -- ------------------------------------------------------------------------------------ -- # # -- proyecto: Microestructura y Sistemas de Trading - Laboratorio 2 - Behavioral Finance # -- archivo: main.py - flujo principal del proyecto # -- mantiene: Hermela Peña # -- repositorio: https://github.com/hermelap/LAB_2_HPH # -- ------------------------------------------------------------------------------------ -- # import funciones as fn import visualizaciones as vs df_data = fn.f_leer_archivo(param_archivo='archivo_oanda.xlsx') fn.f_pip_size(param_ins='usdmxn') df_data = fn.f_columnas_tiempos(param_data=df_data) df_data = fn.f_columnas_pips(param_data=df_data) df_estadisticas_ba = fn.f_estadisticas_ba(param_data=df_data) df_profit_diario = fn.f_profit_diario(param_data=df_data) df_estadisticas_mad = fn.f_estadisticas_mad(param_data=df_data) sesgo = fn.f_be_de(df_data) grafica_1 = vs.pastel( diccionario=df_estadisticas_ba) # Grafica de pastel ranking grafica_2 = vs.linea( datos=df_profit_diario, estadisticos=df_estadisticas_mad) # Grafica de DrawDown y DrawUp
# -- ------------------------------------------------------------------------------------ -- # # -- proyecto: Microestructura y Sistemas de Trading - Laboratorio 2 - Behavioral Finance # -- archivo: main.py - codigo principal del proyecto # -- mantiene: IF Manuel Pintado # -- repositorio: https://github.com/manuelpintado/LAB_2_MPD.git # -- ------------------------------------------------------------------------------------ -- # import funciones as fn # Leer archivo de excel formato xlsx datos = fn.f_leer_archivo(param_archivo='reporte_cuenta.xlsx') # verificar funcionamiento de funcion tamaño pips pip_size = fn.f_pip_size(param_ins='usdmxn') # Calculos de tiempo transcurrido de operaciones datos = fn.f_columnas_tiempos(param_data=datos) # Calculos de pips y capital datos = fn.f_columnas_pips(param_data=datos) # Calculo de estadisticos basicos y ranking de portafolio estadisticos_ba = fn.f_estadisticas_ba(param_data=datos, ver_grafica=False) # Calculo datos diarios del portafolio datos_diarios = fn.f_profit_diario(param_data=datos) # Estadisticos financieros estadisticos_mad = fn.f_estadisticas_mad(param_data=datos, ver_grafica=True) # Sesgos
# -- Rep: https://github.com/ITESOIF/MyST/tree/master/Notas_Python/Notas_RepasoPython -- # # -- Autor: Francisco ME -- # # -- ------------------------------------------------------------------------------------ -- # # -- ------------------------------------------------------------- Importar con funciones -- # import funciones as fn # Para procesamiento de datos import visualizaciones as vs # Para visualizacion de datos import pandas as pd import numpy as np #%% #param_archivo='archivo_tradeview_12.csv' #df_data = fn.f_leer_archivo(param_archivo='archivo_tradeview_12.csv') param_archivo = 'tocsv.csv' df_data = fn.f_leer_archivo(param_archivo='tocsv.csv') #%% pip_sizee = fn.f_pip_size(param_ins='btcusd') #%% df_data = fn.f_columnas_tiempos(datos=df_data) #df_temp = pd.DataFrame(temp) #df_dataf = np.concatenate((df_data, df_temp), axis = 1) #df_dataf = [df_data[:,:], df_temp[:,:]] #%% df_data = fn.f_columnas_pips(datos=df_data)
# -- ------------------------------------------------------------------------------------ -- # # -- proyecto: Microestructura y Sistemas de Trading - Laboratorio 2 - Behavioral Finance # -- archivo: funciones.py - para visualizar loos datos. # -- mantiene: Francisco Rodriguez # -- repositorio:https://github.com/FranciscoRodRam/LAB_2_FRRR # -- ------------------------------------------------------------------------------------ -- # import funciones as fn import visualizaciones as vn #Archivo a analizar. data = 'archivo_tradeview1.xlsx' #--Esta función corresponde a la lectura del archivo. df_data = fn.f_leer_archivo(param_archivo=data) #funcion para conocer el mulplicador PIPS pips = fn.f_pip_size(param_ins='cornusd') #Columna de tiempo df_data = fn.f_columnas_tiempos(param_data=df_data) #columna de pips df_data = fn.f_columnas_pips(df_data) #Cálculo del capital acumulado df_data = fn.f_capital_acum(df_data) #Sesgo df_data = fn.sesgo(df_data) #Extraer mes y día de la fecha df_data =fn.fechas(df_data) #Estadística básica df_1_tabla=fn.f_estadisticas_ba(param_data=df_data)
# -- ------------------------------------------------------------------------------------ -- # # -- proyecto: Microestructura y Sistemas de Trading - Laboratorio 2 - Behavioral Finance # -- archivo: principal.py - flujo principal del proyecto # -- mantiene: Mafer Anso # -- repositorio: https://github.com/MaferAnso/LAB_2_MFAA # -- ------------------------------------------------------------------------------------ -- # import funciones as fn # Funcion para leer los datos datos = fn.f_leer_archivo(param_archivo='archivo_tradeview_1.xlsx', sheet_name=0) # Agregar columna de tiempo datos = fn.f_columnas_tiempos(datos) #Agregar columna de pips datos = fn.f_columnas_pips(datos) #Agregar columna de capital acumulado datos = fn.f_capital_acm(datos) #Estadisticas de la tabla stats = fn.f_estadisticas_ba(datos) #Crear un nuevo dataframe con los profits diarios datos_profit = fn.f_profit_d(datos) #Creacion de tabla con metricas mad = fn.f_estadisticas_mad(datos)
# -- ------------------------------------------------------------------------------------ -- # # -- proyecto: Microestructura y Sistemas de Trading - Laboratorio 2 - Behavioral Finance # -- archivo: datos.py - datos generales para uso en el proyecto # -- mantiene: marioabel96 # -- repositorio: https://github.com/marioabel96/LAB_2_MAGV/ # -- ------------------------------------------------------------------------------------ -- # # importamos el archivo funciones import funciones as fn import pandas as pd data = fn.f_leer_archivo(param_archivo="archivo_tradeview_1.xlsx") data = fn.f_columnas_tiempos(data) # creacion nuevo dataframe donde estaremos haciendo las modificaciones newd = pd.DataFrame(data) # obtenemos los pips de todos los inttrumentos uilizados y anexamos al dataframe pips = [fn.f_pip_size(param_ins=newd['symbol'][i]) for i in range(len(newd))] newd['pips'] = pips newd = fn.f_columnas_pips(newd) estadisticas = fn.f_estadisticas_ba1(newd) ranking = fn.f_estadisticas_ba2(newd)
from statsmodels.graphics.tsaplots import plot_pacf from statsmodels.graphics.gofplots import qqplot import pandas as pd import statsmodels.api as sm from statsmodels.tsa.seasonal import STL import seaborn as sb from statsmodels.tsa.arima_model import ARIMA from pandas.plotting import register_matplotlib_converters register_matplotlib_converters() from scipy import stats from scipy.stats import normaltest #%% # Datos a usar para gráficas datos = fn.f_leer_archivo( param_archivo='archivos/FedInterestRateDecision-UnitedStates.xlsx', sheet_name=0) # Visualización del indicador origial con datos 'actual' def v_indicador_orig(datos): """ Visualización de los datos actuales del indicador Parameters ---------- datos : pd.DataFrame : con información contenida en archivo leido Returns ------- Gráfica de línea de los valores (%) de las tasas de interés del indicador
# -- ------------------------------------------------------------------------------------ -- # # -- proyecto: Microestructura y Sistemas de Trading - Laboratorio 2 - Behavioral Finance # -- archivo: principal.py - flujo principal del proyecto # -- mantiene: Luis Angel Ruiz # -- repositorio: https://github.com/luisangelrp97/LAB_2_LARP # -- ------------------------------------------------------------------------------------ -- # import funciones as fn archivo = "archivo_tradeview_1.xlsx" df_archivo = fn.f_leer_archivo(archivo) datos = df_archivo datos = fn.f_columnas_tiempos(datos) datos = fn.f_columnas_pips(datos) datos = fn.capital_acm(datos) f_estadisticas = fn.f_estadisticas_ba(datos) profit_diario = fn.f_profit_diario(datos) vi.df_1_ranking(f_estadisticas)
# -- ------------------------------------------------------------------------------------ -- # # -- proyecto: Microestructura y Sistemas de Trading - Laboratorio 2 - Behavioral Finance # -- archivo: principal.py - flujo principal del proyecto # -- mantiene: Oscar Flores # -- repositorio: https://github.com/OscarFlores-IFi/LAB_2_OEFH # -- ------------------------------------------------------------------------------------ -- # import funciones as fn import visualizaciones as vz archivo = "archivo_tradeview_1.csv" datos = fn.f_leer_archivo(archivo) datos = fn.f_columnas_tiempos(datos) datos = fn.f_columnas_pips(datos) datos = fn.f_capital_acm(datos) estadisticas = fn.f_estadisticas_ba(datos) vz.plot_ranking(estadisticas['df2']) profit_diario = fn.f_profit_diario(datos) vz.plot_profit_diario(profit_diario) desempenio = fn.f_estadisticas_mad(profit_diario) sesgos = fn.f_sesgos_cognitivos1(datos) df1 = estadisticas['df1'] df2 = estadisticas['df2'] sesgos2 = fn.f_sesgos_cognitivos2(datos, profit_diario) vz.plot_sesgos(sesgos2['resultados']['dataframe'])