Inverse_Transform and multistep data - how to scale and when I tried to ask this question before, but I think it was difficult without revealing the full context.  Right now I'm tinkering with what I find online to informally learn about tensorflow before I formally learn it in the spring.
The model I have created takes normal open, high low, close, volume data and calculates a bunch of other features.  My intent is to use the prior 15 days of OHLCV+Technicals to predict the future 5 Close.
My issue is at the very end when I need to invert the model.predict.  Currently I am using the following workaround:
sc = MinMaxScaler()
test_set_tomorrow = dataset_train.iloc[-time_step:,:].values
scaled_test_set = sc.fit_transform(test_set_tomorrow)
scaled_test_set = test_set_tomorrow
X_test = []
for i in range (0,len(test_set_tomorrow)):
  X_test.append(scaled_test_set[i,:])
X_test = np.array(X_test)
X_test=np.reshape(X_test,(1,time_step,-1))
predicted_price = model.predict(X_test)
predicted_price_fix = np.zeros(shape=(len(predicted_price), X_test.shape[2]))
predicted_price_fix[:,0:5]=predicted_price[:,0:5]
print(predicted_price_fix)
predicted_price=sc.inverse_transform(predicted_price_fix)
print(predicted_price)

Which outputs the following:
[[-0.04685311 -0.04455814 -0.04243669 -0.04118608 -0.03964855  0.
   0.          0.          0.          0.          0.          0.
   0.          0.          0.          0.          0.          0.
   0.          0.          0.          0.          0.          0.
   0.        ]]
[[ 1.56266435e+00  1.59385461e+00  1.49811773e+00  1.56682045e+00
   8.50910050e+05  1.65916667e+00  2.13096538e+00  1.60200000e+00
   1.63600000e+00  1.81628246e+00  2.08335540e+00 -3.99787353e-01
   6.99000000e-02  1.37914286e-01 -3.75699907e-01  1.00000000e+00
   2.61479727e+08  0.00000000e+00  2.01494297e+07  1.58000000e+00
   1.90910833e+00  1.76660253e-01 -4.35308886e+02 -2.06430382e-16
  -4.73584558e-18]]

There are two things which I find out.  The first is the values quite a bit off.  The second, is the fifth value.  It appears to be wildly out of whack.
On the original code:
sc = MinMaxScaler()
test_set_tomorrow = dataset_train.iloc[-time_step:,:].values

Hm, you missed the shuffling, but it's OK -- maybe your data was shuffled earlier.

Original code:
scaled_test_set = sc.fit_transform(test_set_tomorrow)

The model should be trained on the train set not the test set - otherwise, data leakage occurs. It should be either:
sc.fit(dataset_train.iloc[:time_step])
scaled_test_set = sc.transform(test_set_tomorrow)

or
scaled_train_set = sc.fit_transform(train_set_tomorrow)


Original code:
scaled_test_set = test_set_tomorrow

You just erased all the pre-processing. If you check the data, scaled_test_set is exactly dataset_train.iloc[-time_step:, :]

Original code:
X_test = []
for i in range (0,len(test_set_tomorrow)):
  X_test.append(scaled_test_set[i,:])
X_test = np.array(X_test)
X_test = np.reshape(X_test,(1,time_step,-1))

can be done quicker. Note that the MinMaxScaler returns the numpy array already.
X_test = np.expand_dims(scaled_test_set, axis=0)


Finally, you apply the inverse transform to the labels while training on the features. For example, consider the model where given height, we predict weight. You create a map that normalizes inches (or centimeters). In case of centimeters, say the smallest height is 150, but it is not true that the smallest weight is 150 kgs or pounds. Different scalers should be used.