Historical stock price data comes readily available at daily resolution. So we calculated the Granger causality for each pair of stocks we hold data for, at one and two day lags (testing the question “does daily percent change in volume for stock X Granger cause daily percent change in adjusted close price for stock Y?”). If a pairwise causality proves statistically significant, we store the relationship for the given lag.
This naturally led to using a graph database, in this case Neo4j, to store these Granger causality relationships, since basically our procedure assembles a directed graph. Querying the resulting graph for extremely low p-valued relationships produces:
Adding in company sector information, just for kicks:
Apply graph analysis algorithms to find key node companies in the network.
Develop trading algorithms from the data.