Exemple #1
0
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)
Exemple #2
0
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()
Exemple #3
0
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)
Exemple #5
0
# -- 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
Exemple #6
0
# -- ------------------------------------------------------------------------------------ -- #
# -- 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)
Exemple #7
0
# 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']) /
Exemple #8
0
# -- 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)
Exemple #9
0
# -- ------------------------------------------------------------------------------------ -- #
# -- 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
Exemple #10
0
# -- 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)
Exemple #11
0
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
Exemple #12
0
# -- ------------------------------------------------------------------------------------ -- #
# -- 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)
Exemple #13
0
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,