R/dt_derivados.R

Defines functions dt_dv_indicador_liquidez dt_dv_liq_resumen dt_dv_curva_fwd dt_dv_pa_por_rango dt_dv_reverse_gap

Documented in dt_dv_curva_fwd dt_dv_indicador_liquidez dt_dv_liq_resumen dt_dv_pa_por_rango dt_dv_reverse_gap

#' Descarga los datos dv_reverse_gap
#'
#' Esta función descarga los datos de la tabla dv_reverse_gap para un periodo de análisis y
#' con base en los parametros ingresados
#' @param conexion clase formal. Conexión base de datos
#' @param periodo_analisis clase array date. Debe contener la fecha inicio y fin del análisis
#' @param fecha_analisis clase date. Debe contener la fecha del análisis, si el parametro periodo_analisis es
#' diferente de NULL este parametro no se tendra en cuenta. Por defecto NULL
#' @param seudonimo clase character. Debe ser igual a "REAL" o "FICTICIO".Por defecto "REAL"
#' @export

dt_dv_reverse_gap <- function(conexion,periodo_analisis=NULL,fecha_analisis=NULL,seudonimo="REAL"){

  # Se verifica si la descarga va hacer para una fecha de análisis
  if(is.null(periodo_analisis) & !is.null(fecha_analisis)) periodo_analisis <- rep(fecha_analisis,2)

  # Se covierte el periodo de analisis a SQL
  periodo_analisis_sql <-  dt_periodo_analisis_sql(periodo_analisis)

  # Descarga datos
  datos <-   dbGetQuery(conexion, glue("SELECT FECHA, MIEMBRO_{dt_id_seudonimo(seudonimo)} AS MIEMBRO_ID_SEUDONIMO,
                                       CUENTA_GARANTIA_ID, CUENTA_GARANTIA_TIPO,  FLUCTUACION, DELTA_GARANTIA,
                                       REVERSE_GAP_GARANTIA_T1, RIESGO_T1, REVERSE_GAP_GARANTIA_T2, RIESGO_T2
                                       FROM DV_REVERSE_GAP WHERE FECHA BETWEEN {periodo_analisis_sql[1]} AND
                                       {periodo_analisis_sql[2]}"))

  return(datos)
}


#' Descarga los datos dv_pa_por_rango
#'
#' Esta función descarga los datos de la tabla dv_pa_por_rango para un periodo de análisis y
#' con base en los parametros ingresados
#' @param conexion clase formal. Conexión base de datos
#' @param periodo_analisis clase array date. Debe contener la fecha inicio y fin del análisis
#' @param fecha_analisis clase date. Debe contener la fecha del análisis, si el parametro periodo_analisis es
#' diferente de NULL este parametro no se tendra en cuenta. Por defecto NULL
#' @param seudonimo clase character. Debe ser igual a "REAL" o "FICTICIO".Por defecto "REAL"
#' @export

dt_dv_pa_por_rango <- function(conexion,periodo_analisis=NULL,fecha_analisis=NULL,seudonimo="REAL"){

  # Se verifica si la descarga va hacer para una fecha de análisis
  if(is.null(periodo_analisis) & !is.null(fecha_analisis)) periodo_analisis <- rep(fecha_analisis,2)

  # Se covierte el periodo de analisis a SQL
  periodo_analisis_sql <-  dt_periodo_analisis_sql(periodo_analisis)

  # Descarga datos
  datos <-   dbGetQuery(conexion, glue("SELECT FECHA, MIEMBRO_{dt_id_seudonimo(seudonimo)} AS MIEMBRO_ID_SEUDONIMO,
                                            CUENTA_GARANTIA_TIPO, PRODUCTO_TIPO, RANGO, POSICION_VENDEDORA_VALORADA, POSICION_COMPRADORA_VALORADA,
                                            POSICION_NETA_VALORADA FROM DV_PA_POR_RANGO
                                            WHERE FECHA BETWEEN {periodo_analisis_sql[1]} AND
                                            {periodo_analisis_sql[2]}"))

  return(datos)
}


#' Descarga los datos dv_curva_fwd
#'
#' Esta función descarga los datos de la tabla dv_curva_fwd para un periodo de análisis y
#' con base en los parametros ingresados
#' @param conexion clase formal. Conexión base de datos
#' @param periodo_analisis clase array date. Debe contener la fecha inicio y fin del análisis
#' @param fecha_analisis clase date. Debe contener la fecha del análisis, si el parametro periodo_analisis es
#' diferente de NULL este parametro no se tendra en cuenta. Por defecto NULL
#' @export

dt_dv_curva_fwd <- function(conexion,periodo_analisis=NULL,fecha_analisis=NULL){

  # Se verifica si la descarga va hacer para una fecha de análisis
  if(is.null(periodo_analisis) & !is.null(fecha_analisis)) periodo_analisis <- rep(fecha_analisis,2)

  # Se covierte el periodo de analisis a SQL
  periodo_analisis_sql <-  dt_periodo_analisis_sql(periodo_analisis)

  # Descarga datos
  datos <-  dbGetQuery(conexion, glue("SELECT FECHA, NODO, NODO_DIAS,PRECIO, PF, DEVALUACION
                                           FROM DV_CURVA_FWD
                                           WHERE FECHA BETWEEN {periodo_analisis_sql[1]} AND
                                           {periodo_analisis_sql[2]}"))

  return(datos)
}

#' Descarga los datos dv_liq_resumen
#'
#' Esta función descarga los datos de la tabla dv_liq_resumen para un periodo de análisis y
#' con base en los parametros ingresados
#' @param conexion clase formal. Conexión base de datos
#' @param periodo_analisis clase array date. Debe contener la fecha inicio y fin del análisis
#' @param fecha_analisis clase date. Debe contener la fecha del análisis, si el parametro periodo_analisis es
#' diferente de NULL este parametro no se tendra en cuenta. Por defecto NULL
#' @param seudonimo clase character. Debe ser igual a "REAL" o "FICTICIO".Por defecto "REAL"
#' @export

dt_dv_liq_resumen <- function(conexion,periodo_analisis=NULL,fecha_analisis=NULL,seudonimo="REAL"){

  # Se verifica si la descarga va hacer para una fecha de análisis
  if(is.null(periodo_analisis) & !is.null(fecha_analisis)) periodo_analisis <- rep(fecha_analisis,2)

  # Se covierte el periodo de analisis a SQL
  periodo_analisis_sql <-  dt_periodo_analisis_sql(periodo_analisis)

  # Descarga datos
  datos <- dbGetQuery(conexion , glue("SELECT FECHA,
                                        MIEMBRO_LIQ_{dt_id_seudonimo(seudonimo)} AS MIEMBRO_LIQ_ID_SEUDONIMO,
                                        MIEMBRO_LIQ_TIPO, CUENTA_GARANTIA_TIPO, PRODUCTO_NOMBRE,
                                        PRODUCTO_TIPO, PRODUCTO_SUBTIPO, PRODUCTO_ORIGEN, LIQUIDACION
                                        FROM DV_LIQ_RESUMEN
                                        WHERE FECHA BETWEEN {periodo_analisis_sql[1]}
                                        AND {periodo_analisis_sql[2]}"))

  # Se modifica el dataframe datos (Se completan los datos con la función complete)
  datos <- datos %>%
    complete(FECHA,nesting(MIEMBRO_LIQ_ID_SEUDONIMO,MIEMBRO_LIQ_TIPO, CUENTA_GARANTIA_TIPO,
                           PRODUCTO_NOMBRE, PRODUCTO_TIPO,PRODUCTO_SUBTIPO,PRODUCTO_ORIGEN),
             fill = list(LIQUIDACION=0)) %>%
    mutate(FECHA_ANO_MES=format(FECHA, "%Y-%m"),.after="FECHA")

  return(datos)
}

#' Descarga los datos dv_indicador_liquidez
#'
#' Esta función descarga los datos de la tabla dv_indicador_liquidez para un periodo de análisis y
#' con base en los parametros ingresados
#' @param conexion clase formal. Conexión base de datos
#' @param periodo_analisis clase array date. Debe contener la fecha inicio y fin del análisis
#' @param fecha_analisis clase date. Debe contener la fecha del análisis, si el parametro periodo_analisis es
#' diferente de NULL este parametro no se tendra en cuenta. Por defecto NULL
#' @param seudonimo clase character. Debe ser igual a "REAL" o "FICTICIO".Por defecto "REAL"
#' @export

dt_dv_indicador_liquidez <- function(conexion,periodo_analisis=NULL,fecha_analisis=NULL,seudonimo="REAL"){

  # Se verifica si la descarga va hacer para una fecha de análisis
  if(is.null(periodo_analisis) & !is.null(fecha_analisis)) periodo_analisis <- rep(fecha_analisis,2)

  # Se covierte el periodo de analisis a SQL
  periodo_analisis_sql <-  dt_periodo_analisis_sql(periodo_analisis)

  # Descarga datos
  datos <-  dbGetQuery(conexion, glue("SELECT FECHA,
                                      MIEMBRO_LIQ_{dt_id_seudonimo(seudonimo)}_1 AS MIEMBRO_LIQ_ID_SEUDONIMO_1,
                                      MIEMBRO_LIQ_{dt_id_seudonimo(seudonimo)}_2 AS MIEMBRO_LIQ_ID_SEUDONIMO_2,
                                      LIQUIDACION_1, LIQUIDACION_2, LIQUIDACION_ESTRESADA_1, LIQUIDACION_ESTRESADA_2,
                                      GARANTIAS_CASH_1, GARANTIAS_CASH_2, GARANTIAS_TES_1, GARANTIAS_TES_2,
                                      GARANTIAS_CASH_DISPONIBLES, TITULOS_APT, LNC_BCO_BOGOTA, LNC_BANCOLOMBIA, LNC_DAVIVIENDA, CTA_APT
                                      FROM DV_INDICADOR_LIQUIDEZ
                                      WHERE FECHA BETWEEN {periodo_analisis_sql[1]}
                                      AND {periodo_analisis_sql[2]}"))

  return(datos)
}
apalacio9502/crccdatatools documentation built on April 11, 2022, 3:34 p.m.