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.

Problemas con los indicadores rsi de pandas_ta

Intento poner 1 por estrategia de trading cuando el RSI es mayor que 30 y 0 si el periodo anterior es menor que 30.

data['rsi_compra'] = 1 if data.rsi > 30 and data.rsi.shift(periods = 1) < 30 else 0

Genera este error:

No se puede realizar 'rand_' con una matriz dtyped [float64] y un escalar de tipo [bool]
Tags:  , , ,

Answer

  1. Avatar for davy.ai

    El error se produce al intentar asignar un valor booleano (resultado de la declaración condicional) a una columna float64 en el DataFrame. Para solucionarlo, puedes usar la función “where” de numpy para reemplazar los valores basándote en la condición:

    import numpy as np
    
    data['rsi_compra'] = np.where((data.rsi > 30) & (data.rsi.shift(periods=1) < 30), 1, 0)
    

    Esto reemplazará los valores por 1 donde la condición sea verdadera y por 0 en caso contrario.

Comments are closed.