Raw prices are useless to the AI because $500 today isn't the same as $500 in 1990. Use relative indicators: RSI (Relative Strength Index): Is it overbought? Moving Average Crossovers: Is the trend up? Distance from MA: (Close / Moving_Average_20) - 1 Volume Change: df['Volume'].pct_change() Fix AI returning the Current market price as the prediction