Missing 2017 & 2018 data on strategy performance charts

Hi,
Under Analyse The Strategy Performance, the analyse_strategy function seems to miss out on 2017 & 2018 data as they didn’t appear on both charts. Please explain? Also, can have the code to forecast next day’s GARCH_predicted_volatility? E.g today is 1st April, and the code shall print out GARCH_predicted_volatility for 2nd April?

Course Name: Financial Time Series Analysis for Trading, Section No: 25, Unit No: 9, Unit type: Notebook

Hi RR,

The data we are using is from 2020-12-21.

Understand the Model Training and Future Predictions:

When you’re building a machine learning model, especially for time-series or financial data,
the process generally involves two main stages:

Step 1: Training the Model

We start with a dataset that has:

  • Features (X): things the model can “look at” to make a decision
    (e.g., current and past prices of Nifty and Gold).
  • Target (y): what we want the model to predict
    (e.g., the future price of gold).

We split the data into a training set and a testing set, then fit the model using:

model.fit(X_train, y_train)

This tells the model: “Here’s a set of inputs (X_train) and the correct answers (y_train). Learn the pattern.”

Step 2: Making Predictions on New Data

Once trained, the model can now make predictions using:

model.predict(X_test)

This returns predicted values for the test data. These can be compared to actual values (since y_test is known),
and you can calculate how well the model did using metrics like RMSE.

You can also pass in just one new row as long as it contains the same features the model was trained on.

Example:

X_new_test = pd.DataFrame([{
    'nifty': 22000,
    'nifty_lag1': 21800,
    'gold_lag1': 190,
    'gold': 192
}])

prediction = model.predict(X_new_test)

This might be today’s market data, and you’re using it to predict next month’s gold price.

Important Note: Predicting the Future

When you make a prediction for the future (like next month), the actual value hasn’t happened yet.
So you can’t compare it with anything right now.

You’re forecasting based on patterns in past data — but you’ll only know how accurate it is once the real data for next month becomes available.

This is different from evaluating your model on test data, where both input and output already exist.

Summary:

  • model.fit(X_train, y_train): trains your model.
  • model.predict(X_new_test): makes predictions on any new data, even a single row.
  • Ensure X_new_test has the same features the model was trained on.
  • If you’re predicting the future, you have to wait for real data to evaluate the prediction.

I think you are not answering my question, so let me rephrase it:

(1) Under Analyse The Strategy Performance, the analyse_strategy function seems to miss out on 2017 & 2018 data as they didn’t appear on both charts. Please explain?

(2) Also, can have the code to forecast next day’s GARCH_predicted_volatility? E.g today is 1st April, and the code shall print out GARCH_predicted_volatility for 2nd April?