Accurately predicting stock prices can be challenging, as it involves understanding and analyzing various market trends and factors. In this blog post, we will explore how chatGPT, a large language model developed by OpenAI, can be used to predict the stock price of Indonesian Astra Otoparts (AUTO:IDX) based on its historical price data for the past 5 years (2016-2021).
I have a college assignment on “Business Intelligence” subject to use machine learning and deep learning model to predict certain outcomes. The professor stated that the data has lasted a long time and is still updated until now.
With the help of some literature, I tried to complete the assignment by creating a model to predict stock prices based on historical prices. I followed the guide at https://www.analyticsvidhya.com for the code example and explanations. The example was easy enough to follow, but I am facing a challenge in predicting prices for tomorrow, the day after, a week, or a month from now. To get a code example, I asked for input from chatGPT from OpenAI.
First, let’s start by understanding what chatGPT is and how it works. chatGPT is a variant of the GPT (Generative Pre-training Transformer) language model, which was trained on a dataset of billions of words and is capable of generating human-like text. It can be used to generate text in various languages and fine-tuned for specific tasks such as translation, question answering, and language modeling.
Here is the result:
Question and Answer
Here is a sample python code that demonstrates how chatGPT can be used to predict stock prices using the historical data for Indonesian Astra Otoparts (AUTO:IDX):
import numpy as np import pandas as pd from sklearn.preprocessing import MinMaxScaler from keras.models import Sequential from keras.layers import Dense, LSTM # Load the stock data df = pd.read_csv('Tesla_stock_data.csv') # Select the 'Close' column as the feature to predict X = df[['Close']].values # Scale the data using MinMaxScaler scaler = MinMaxScaler(feature_range=(0, 1)) X = scaler.fit_transform(X) # Create a function to split the data into training and testing sets def split_data(X, split=0.8): # Calculate the split index split_index = int(X.shape * split) # Split the data X_train, X_test = X[:split_index], X[split_index:] return X_train, X_test # Split the data into training and testing sets X_train, X_test = split_data(X) # Convert the data into a 3D array to feed into the LSTM model def create_dataset(X, window_size=1): X_3d =  for i in range(X.shape - window_size): X_3d.append(X[i:i+window_size]) return np.array(X_3d) X_train = create_dataset(X_train) X_test = create_dataset(X_test) # Define the LSTM model model = Sequential() model.add(LSTM(50, input_shape=(X_train.shape, X_train.shape))) model.add(Dense(1)) model.compile(loss='mean_squared_error', optimizer='adam') # Train the model on the training data model.fit(X_train, X_train, epochs=100, batch_size=32, shuffle=False) # Use the model to predict the next week's stock prices predictions = model.predict(X_test) # Inverse transform the predictions to get the actual stock prices predictions = scaler.inverse_transform(predictions) # Print the predictions print(predictions)
and the instruction:
Because I don’t have TESLA stock price data (although it’s easily obtained), but I do have data for one stock in Indonesia, AUTO:IDX (Astra Otoparts), I am using this data as a sample to process and test whether the python code is valid or not.
And running sample Python code using Google colab:
The example shows that chatGPT can be used to help the learning process. Not just to copy and paste but to serve as a basis for understanding and further knowledge development. I may often use chatGPT to help me learn many things and accelerate my understanding, especially for college assignments 😊.