I am by far no expert on time-series but these are my thoughts for what it is worth.
Hopefully someone else could add to this to help you further on your way.
Does it make sense?
To me it doesn't really make a lot of sense.
When I do panel data analysis I base the choice of my variables on the results in the literature. There should be a theoretical basis for your model.
I would just use the Granger causality test as a method of analysis.
This paper might be of interest of you, where they use a Granger test in a panel data setting.
If the time series are non-stationary could I run the Granger CT or should I have to make time series stationary with some cointegration process before?
Yes you should make the time-series stationary as the VAR-model that you use to do the test assumes that the data is stationary.
If your time-series has a unit root, often first differencing will eliminate this unit root.
How can I do it with Stata?
First differencing can be done by using the D-command (don't forget to time-set your data first)
So if you have your time-series called gdp then you first difference it by:
gen gdpdiff=D.gdp
You can set up the VAR model by using the var-command.
For help on this simply type
help var
So the command for your VAR-model could be:
var fdi gdpdiff
Use varsoc to test the optimal length of the number of lags that need to be included. So in the command below I test the first 20 lags.
varsoc, lag(20)
The run your model with the desired number of lags, for instance
var fdi gdpdiff, lag(1/10)
After fitting the var-model you can do the Granger causality test using:
vargranger
How can I interpret the results?
I found this post quite useful on how to conduct and interpret a Granger causality test (it is done in R).
Be aware that the null hypothesis is one on non Granger causality.
Follow this procedure (Engle-Granger Test for Cointegration):
1) Test to see if your series are stationary using adfuller test (stock prices and GDP levels are usually not)
2) If they are not, difference them and see if the differenced series are now stationary (they usually are).
3) If they are, your ORIGINAL series are said to be each integrated (I did not say co-integrated) of order 1; concisely noted as I(1).
4) If they are not both I(1), you can say safely say that they can not be co-integrated of order 1.
5) If they are both I(1), run a simple OLS regression of one of the other.
6) Check the residual of the OLS for stationarity. If they are stationary, then your original series are co-integrated of order 1.
Shortcomings of this method: 1) It may matter which variable you regress on the other, 2) it works only when you have two variables.
For a better test, you can use Johansen's procedure (https://github.com/josef-pkt/statsmodels/commit/29f0aa27d284ac0026e90ff9d877f7920a2c6056)
http://nbviewer.jupyter.org/github/mapsa/seminario-doc-2014/blob/master/cointegration-example.ipynb.
Best Answer
If you have two time series, then the univariate unit-root test results coincide nicely with the cointegration test results. Both indicate that the series are stationary. Moreoever, this is as expected; financial returns are normally considered not to have unit roots.
However, you could think about cointegration between the stock price and the level of the stock index. They will both be integrated of order one (as they are cumulative sums of processes that do not contain unit roots, as per your current analysis), so there is at least the theoretical potential for cointegration. Whether cointegration would make sense in practice is another question and depends on the application. Here your subject-matter expertise will come in handy.
In any case, once you decide on presence/absence of cointegration between the stock price and the level of the stock index, you can proceed to Granger causality testing.