es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Función para realizar un seguimiento de las operaciones de trading con acciones.

Tengo el dataframe con la fecha, los precios de apertura de las acciones, y los indicadores de compra y venta. Necesito crear una función que pueda contar todas estas operaciones con mi presupuesto.

    Fecha        Apertura     Compra Venta
0   2019-08-27  36.270000   1   0
1   2019-10-11  31.740000   0   1
2   2020-03-18  28.320000   1   0
3   2020-06-03  41.380001   0   1
4   2020-11-12  61.610001   1   0
5   2020-12-02  69.120003   0   1
6   2021-03-24  64.500000   1   0
7   2021-06-07  67.269997   0   1

Entonces, si tengo un 1 en la columna Compra, necesito comprar acciones con todo el dinero en mi presupuesto. Después, necesito vender todo al precio de apertura cuando df[‘Compra’] == 0.
He intentado crear esto pero está incorrecto y no tengo idea de cómo arreglarlo.

def ganancia(x):
    presupuesto = 100000
    acciones = 0
    for i in df['Compra']:
        if x == 1:
            presupuesto = presupuesto % df['Apertura'][i]
            acciones = presupuesto // df['Apertura'][i]
        if x == 0:
            presupuesto += acciones * df['Apertura'][i]
    return i
ganancia()
Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para crear una función que cuente todas las operaciones con tu presupuesto, puedes modificar tu código existente de la siguiente manera:

    def profit(df, budget):
        stocks = 0
        for i in range(len(df)):
            if df['Buy'][i] == 1:
                stocks += budget // df['Open'][i]
                budget %= df['Open'][i]
            if df['Sell'][i] == 1:
                budget += stocks * df['Open'][i]
                stocks = 0
        return budget
    

    La función profit toma dos argumentos, df y budget. df es el dataframe con la fecha, precios de apertura, indicadores de compra y venta, y budget es tu presupuesto inicial para invertir.

    La función inicializa la variable stocks en 0, la cual lleva el registro del número de acciones que compraste. Luego, itera sobre cada fila del dataframe utilizando un bucle for y una variable de índice i.

    Dentro del bucle, la función verifica si la columna Buy es igual a 1 en el índice actual. Si es así, calcula la cantidad máxima de acciones que puedes comprar con tu presupuesto restante y actualiza las variables stocks y budget en consecuencia.

    Si la columna Sell es igual a 1 en el índice actual, calcula el valor de tus acciones al precio de apertura actual y lo suma a tu presupuesto. Luego, establece la variable stocks en 0, indicando que has vendido todas tus acciones.

    Por último, la función devuelve el presupuesto restante después de que todas las transacciones hayan tenido lugar.

    Para llamar a la función, puedes pasar tu dataframe y presupuesto inicial como argumentos:

    df = pd.read_csv('stocks.csv')
    budget = 100000
    presupuesto_restante = profit(df, budget)
    print(f"Presupuesto restante: {presupuesto_restante:.2f}")
    

    Esto imprimirá el presupuesto restante después de que todas las transacciones en el dataframe hayan tenido lugar.

Comments are closed.