Example #1
0
import datos
import pandas as pd
from datetime import datetime

# Datos para descargar precios
OA_In = [
    'EUR_USD', 'USD_JPY', 'EUR_JPY', 'AUD_USD', 'GBP_USD', 'USD_CHF',
    'AUD_JPY', 'EUR_AUD', 'EUR_GBP', 'GBP_JPY', 'USD_CAD', 'AUD_CAD',
    'EUR_CAD', 'GBP_AUD', 'USD_HKD', 'GBP_HKD', 'CAD_HKD', 'USD_MXN'
]  # Instrumentos
OA_Gn = "H4"  # Granularidad de velas
fini = pd.to_datetime("2019-10-01 00:00:00").tz_localize(
    'GMT')  # Fecha inicial
ffin = pd.to_datetime(
    datetime.now().strftime('%Y-%m-%d %H:%M:%S')).tz_localize(
        'GMT')  # Fecha final

for ticker in OA_In:
    # Descargar precios masivos
    df_pe = fn.f_precios_masivos(p0_fini=fini,
                                 p1_ffin=ffin,
                                 p2_gran=OA_Gn,
                                 p3_inst=ticker,
                                 p4_oatk=datos.token,
                                 p5_ginc=4900)

    # Calcular bandas de bollinger
    df_pe = fn.Bollinger_Bands(df=df_pe, window=20, ticker=ticker)

    fn.accion(df_pe, ticker)  #Funcion para tomar decision
Example #2
0
import funciones as fn                              # Para procesamiento de datos
import visualizaciones as vs                        # Para visualizacion de datos
import pandas as pd                                 # Procesamiento de datos
from datos import OA_Ak                             # Importar token para API de OANDA

# -- --------------------------------------------------------- Descargar precios de OANDA -- #

# token de OANDA
OA_In = "EUR_USD"                  # Instrumento
OA_Gn = "D"                        # Granularidad de velas
fini = pd.to_datetime("2019-07-06 00:00:00").tz_localize('GMT')  # Fecha inicial
ffin = pd.to_datetime("2019-12-06 00:00:00").tz_localize('GMT')  # Fecha final

# Descargar precios masivos
df_pe = fn.f_precios_masivos(p0_fini=fini, p1_ffin=ffin, p2_gran=OA_Gn,
                             p3_inst=OA_In, p4_oatk=OA_Ak, p5_ginc=4900)

# -- --------------------------------------------------------------- Graficar OHLC plotly -- #

vs_grafica1 = vs.g_velas(p0_de=df_pe.iloc[0:120, :])
vs_grafica1.show()

# -- ------------------------------------------------------------------- Conteno de velas -- #

# multiplicador de precios
pip_mult = 10000

# -- 0A.1: Hora
df_pe['hora'] = [df_pe['TimeStamp'][i].hour for i in range(0, len(df_pe['TimeStamp']))]

# -- 0A.2: Dia de la semana.
time_delta = pd.to_timedelta('00:31:00')
granularity = 'M1'
instrument = "EUR_USD"
oatk = '107596e9d65c' + '1bbc9175953d917140' + '12-f975c6201dddad03ac1592232c0ea0ea'
try:
    # Si tenemos los datos ya descargados, los importamos.
    datos_instrumento = pickle.load(open('precios.sav', 'rb'))
except:
    # Si no tenemos los datos descargados, los descargamos y los guardamos.
    print(
        'no se pudo cargar archivos de pickle, se descargarán todos nuevamente.'
    )
    datos_instrumento = {
        i: fn.f_precios_masivos(i,
                                i + time_delta,
                                granularity,
                                instrument,
                                oatk,
                                p5_ginc=4900)
        for i in datos.datetime
    }
    pickle.dump(datos_instrumento, open('precios.sav', 'wb'))

# Claisificar las ocurrencias según parámetros; Actual, Consensys, Previous
clasificacion = fn.f_clasificacion_ocurrencia(datos)
#print(clasificacion)

# DataFrame de escenarios.
df_escenarios = fn.f_df_escenarios(datos_instrumento, clasificacion)

df_escenarios[df_escenarios.escenario == 'A']
#print(df_escenarios)