input: Write a function to build and train a Deep Learning model using Keras to predict stock prices. The function should read the data from a CSV file, prepare the data for training, and then train the model using the prepared data. The function should return the trained model.
  assert predict_stock_price(input_data_path='data.csv')!=None
  assert predict_stock_price(input_data_path='data.csv').history!=None
output: def predict_stock_price(input_data_path):
      import pandas as pd
      from sklearn.model_selection import train_test_split
      from sklearn.preprocessing import MinMaxScaler
      from keras.models import Sequential
      from keras.layers import Dense, LSTM
  
      # Load the data
      data = pd.read_csv(input_data_path)
      
      # Prepare the data
      scaler = MinMaxScaler(feature_range=(0, 1))
      scaled_data = scaler.fit_transform(data['Close'].values.reshape(-1, 1))
      
      X = []
      y = []
      for i in range(60, len(scaled_data)):
          X.append(scaled_data[i-60:i, 0])
          y.append(scaled_data[i, 0])
      X, y = np.array(X), np.array(y)
      X = np.reshape(X, (X.shape[0], X.shape[1], 1))
      
      # Split the data
      X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
      
      # Build the model
      model = Sequential()
      model.add(LSTM(units=50, return_sequences=True, input_shape=(X_train.shape[1], 1)))
      model.add(LSTM(units=50, return_sequences=False))
      model.add(Dense(units=25))
      model.add(Dense(units=1))
      
      # Compile the model
      model.compile(optimizer='adam', loss='mean_squared_error')
      
      # Train the model
      model.fit(X_train, y_train, batch_size=32, epochs=10)
      
      return model