def profit_dd_du_line(profit_d): """ Parameters ---------- profit_d : función : Función utilizada para el dataframe con el pd.DataFrame(datos) Returns ------- graph : gráfica de línea con plotly mostrando el profit acumulado """ profit_d = fn.f_profit_diario(datos) profs = go.Figure() profs.add_trace( go.Scatter(x=profit_d.timestamp, y=[ None, None, None, None, 4529.32, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, 4989.32, None, None, None, None, None, None, None, None, None, None, None, None ], name='drawup', connectgaps=True, mode='lines', line={ 'dash': 'dash', 'color': 'green' })) profs.add_trace( go.Scatter(x=profit_d.timestamp, y=[ None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, 4989.32, None, None, None, None, None, None, None, 4117.03, None, None, None, None ], name='drawdown', connectgaps=True, mode='lines', line={ 'dash': 'dash', 'color': 'red' })) profs.add_trace( go.Scatter(x=profit_d.timestamp, y=profit_d.profit_acm_d, name='profit acumulado', mode='lines', marker=dict(color='Black'))) profs.update_layout(title="Profit acumulado al día", xaxis_title="Tiempo (fechas)", yaxis_title="Profit ($)") #profs.show() py.iplot(profs)
def drawdown(datos): datos_1 = fn.f_profit_diario(datos) Draw_d_0 = datos_1[['timestamp', 'profit_acm_d']] Draw_d_0.set_index('timestamp', inplace=True) Draw_d_1 = Draw_d_0['profit_acm_d'].cummax() drawdown = (Draw_d_0['profit_acm_d'] - Draw_d_1) / Draw_d_1 plt.title('Drawdown') plt.ylabel('%') drawdown.plot(linestyle='--', color='red') plt.show()
def profit_acum(profit_d): """ Parameters ---------- profit_d : función : Función utilizada para el dataframe con el pd.DataFrame(datos) Returns ------- graph: gráfica de barras con plotly mostrando el profit acumulado """ profit_d = fn.f_profit_diario(datos) fig = go.Figure( data=[go.Bar(x=profit_d['timestamp'], y=profit_d['profit_acm_d'])], layout_title_text="A fig.show()") # fig.show() py.iplot(fig)
# -- ------------------------------------------------------------------------------------ -- # # -- 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)
# -- 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) profits = fn.f_profit_diario(newd) medap = fn.f_estadisticas_mad(profits, newd).T
# -- ------------------------------------------------------------------------------------ -- # # -- 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)
# Agregar la columna de los tiempos fn.f_columna_tiempos(data) # Agregar columna de pips fn.f_columna_pips(data) # DataFrames de Estadisticas basicas y ranking df_estadistic = fn.f_estadistica_ba(data) # -- PART III -- # Agregar capital acumulado fn.f_columna_capital_acm(data) # DataFrame de profits df_profit = fn.f_profit_diario(data) # Agregar rendimientos fn.log_dailiy_rends(df_profit, 'profit_acm') # Estadisticas de metricas de desempeño df_profit_estad = fn.f_estadisticas_mad(data) # -- PART IV -- # Operaciones ganadora vs perdedora (ocurrencia) sesgos = fn.f_sesgos_cognitivo(data) # Porcentaje de profit ganadoras / profit perdedoras porcentaje = abs( sum(data[data['profit/cap'] > 0]['profit/cap']) /
# -- archivo: principal.py - flujo principal del proyecto # -- mantiene: mauanaya # -- repositorio: https://github.com/mauanaya/LAB_2_VMAA # -- ------------------------------------------------------------------------------------ -- # import funciones as fn #%% datos = fn.f_leer_archivo(param_archivo='archivo_tradeview_1.xlsx') #%% fn.f_pip_size(param_ins='audusd') #%% datos = fn.f_columnas_tiempo(param_data=datos) #%% datos = fn.f_columnas_pips(param_data=datos) #%% stats = fn.f_estadisticas_ba(param_data=datos) #%% datos = fn.f_capital_acum(param_data=datos) #%% df_profit_diario = fn.f_profit_diario(param_data=datos)["df"] df_profit_diario_c = fn.f_profit_diario(param_data=datos)["df_c"] df_profit_diario_v = fn.f_profit_diario(param_data=datos)["df_v"] df_sp = fn.f_profit_diario(param_data=datos)["sp"] #%% df_mad = fn.f_estadisticas_mad(param_data=df_profit_diario, param_data_1=df_profit_diario_c, param_data_2=df_profit_diario_v) #%% df_disposition_effect = fn.f_be_de(param_data=datos)
# -- ------------------------------------------------------------------------------------ -- # # -- 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
# -- 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 sesgos_cognitivos = fn.f_be_de(param_data=datos, ver_grafica=False)
f_estadisticas_b = fn.f_estadisticas_ba(datos=df_data) #%% df_1_ranking = fn.f_rank(datos=df_data) #%% df_data = fn.capital_acm(datos=df_data) #%% #df_profit_acm_d = fn.f_profit_diario(datos = df_data) profit_diario_acum = fn.f_profit_diario(datos=df_data) #%% estadisticas_mad = fn.f_estadisticas_mad(datos=df_data) #%%sesgos cognitivos #%% #Graphs1 = fn.graph1(datos = df_1_ranking) Graphs1 = fn.graph1(datos=df_1_ranking) #%% Graphs2 = fn.graph2(input1=df_data) #, input2 = estadisticas_mad) #Graphs3 = fn.graph1(datos = df_1_ranking) #%% graph pytplot
# -- ------------------------------------------------------------------------------------ -- # # -- 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)
import matplotlib.pyplot as plt import plotly.graph_objects as go import plotly.offline as py import plotly.io as pio pio.renderers.default = "browser" #%% datos = fn.f_leer_archivo(param_archivo='archivo_tradeview_1.xlsx') fn.f_pip_size(param_ins='audusd') datos = fn.f_columnas_tiempo(param_data=datos) datos = fn.f_columnas_pips(param_data=datos) datos = fn.f_columnas_capital_acum(param_data=datos) datos = fn.f_columnas_log(param_data=datos) df_1tabla = fn.f_estadisticas_ba(param_data=datos) df_1ranking = fn.f_estadistica_ba2(param_data=datos) diario = fn.f_profit_diario(param_archivo='archivo_tradeview_1.xlsx') equidistante = fn.f_profit_diario_eq(param_archivo='archivo_tradeview_1.xlsx') estadisticas_mad = fn.f_estadisticas_mad(param_data=equidistante) #%%grafica del ranking abierta en browser ya que al parecer mi version de spyder no esta actualizada y no se podian ver aqui mismo graf = fn.f_estadistica_ba2(param_data=datos) df = pd.DataFrame(graf) # pull is given as a fraction of the pie radius fig = go.Figure() labels = df['symbol'] values = df['rank'] fig = go.Figure(data=[ go.Pie(labels=labels,