コード例 #1
0
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()
コード例 #2
0
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))
コード例 #3
0
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
コード例 #4
0
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()
コード例 #5
0
ファイル: principal.py プロジェクト: NatashaGamez/Lab_2_LNGO
# -- ------------------------------------------------------------------------------------ -- #
# -- 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)
コード例 #6
0
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
コード例 #7
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)
コード例 #8
0
# -- ------------------------------------------------------------------------------------ -- #
# -- 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)
コード例 #9
0
# -- ------------------------------------------------------------------------------------ -- #
# -- 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)



コード例 #10
0
ファイル: principal.py プロジェクト: estavillo97/LAB_2_JPEU
@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)
コード例 #11
0
ファイル: main.py プロジェクト: hermelap/LAB_2_HPH
# -- ------------------------------------------------------------------------------------ -- #
# -- 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
コード例 #12
0
# -- ------------------------------------------------------------------------------------ -- #
# -- 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
コード例 #13
0
ファイル: principal.py プロジェクト: juanma8anav/LAB_2_JMON
# -- 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)
コード例 #14
0
# -- ------------------------------------------------------------------------------------ -- #
# -- 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)
コード例 #15
0
# -- ------------------------------------------------------------------------------------ -- #
# -- 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)
コード例 #16
0
ファイル: principal.py プロジェクト: marioabel96/LAB_2_MAGV
# -- ------------------------------------------------------------------------------------ -- #

# -- 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)
コード例 #17
0
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
コード例 #18
0
ファイル: principal.py プロジェクト: luisangelrp97/LAB_2_LARP
# -- ------------------------------------------------------------------------------------ -- #
# -- 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)
コード例 #19
0
# -- ------------------------------------------------------------------------------------ -- #
# -- 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'])